models.py•11.2 kB
# generated by fastapi-codegen:
# filename: openapi.yaml
# timestamp: 2025-06-29T07:46:09+00:00
from __future__ import annotations
from enum import Enum
from typing import List, Optional
from uuid import UUID
from pydantic import BaseModel, Field, RootModel
class Abschlussbelegdaten(BaseModel):
Abschluss_Beginn_Datum_Uhrzeit: str = Field(
..., alias='Abschluss-Beginn-Datum-Uhrzeit'
)
Abschluss_Ende_Datum_Uhrzeit: str = Field(..., alias='Abschluss-Ende-Datum-Uhrzeit')
class AuthResult(BaseModel):
accessToken: Optional[str] = None
registrierkasseUuid: Optional[UUID] = None
class BelegTypenEnum(Enum):
Belegkreisinitialisierung = 'Belegkreisinitialisierung'
Kassenbericht = 'Kassenbericht'
Monatsabschluss = 'Monatsabschluss'
Startbeleg = 'Startbeleg'
Storno = 'Storno'
Systembeleg = 'Systembeleg'
Training = 'Training'
class UnternehmenIDTyp(Enum):
steuernummer = 'steuernummer'
uid = 'uid'
gln = 'gln'
class BelegeGruppeItem(BaseModel):
Belege_kompakt: List[str] = Field(..., alias='Belege-kompakt', min_length=1)
Signaturzertifikat: str
Zertifizierungsstellen: List[str] = Field(..., min_length=1)
class Exportformat(BaseModel):
Belege_Gruppe: Optional[List[BelegeGruppeItem]] = Field(
None, alias='Belege-Gruppe', min_length=1
)
class Monatsbeleg(BaseModel):
Beleg_UUID: Optional[UUID] = Field(None, alias='Beleg-UUID')
FON_Geprueft_Datum_Uhrzeit: Optional[str] = Field(
None, alias='FON-Geprueft-Datum-Uhrzeit'
)
FON_Geprueft_Erfolgreich: Optional[bool] = Field(
None, alias='FON-Geprueft-Erfolgreich'
)
Jahr: Optional[int] = None
Monat: Optional[int] = None
class Satz(Enum):
NORMAL = 'NORMAL'
ERMAESSIGT1 = 'ERMAESSIGT1'
ERMAESSIGT2 = 'ERMAESSIGT2'
BESONDERS = 'BESONDERS'
NULL = 'NULL'
class Posten(BaseModel):
Bezeichnung: str
BruttoBetrag: int = Field(..., description='The amount in cents')
Externer_Beleg_Belegkreis: Optional[str] = Field(
None, alias='Externer-Beleg-Belegkreis'
)
Externer_Beleg_Bezeichnung: Optional[str] = Field(
None, alias='Externer-Beleg-Bezeichnung'
)
Externer_Beleg_Referenz: Optional[str] = Field(
None, alias='Externer-Beleg-Referenz'
)
Menge: int
NettoBetrag: int = Field(..., description='The amount in cents')
Satz_1: Satz = Field(..., alias='Satz')
class Rabatt(BaseModel):
Betrag_Brutto: int = Field(
..., alias='Betrag-Brutto', description='The amount in cents'
)
Betrag_Netto: int = Field(
..., alias='Betrag-Netto', description='The amount in cents'
)
Bezeichnung: str
Satz_1: Optional[Satz] = Field(None, alias='Satz')
class Registrierkasse(BaseModel):
Benutzerschluessel: Optional[str] = Field(
None,
description='The base64 encoded AES 256 key used for encrypting the "Umsatzzaehler".',
)
Kassen_ID: Optional[str] = Field(
None,
alias='Kassen-ID',
description='The (RKSV) "Kassenidentifikationsnummer" of this particular `Registrierkasse`.',
)
Signaturerstellungseinheit_UUID: Optional[UUID] = Field(
None,
alias='Signaturerstellungseinheit-UUID',
description='The `_uuid` of the paired "Signaturerstellungseinheit".',
)
field_href: Optional[str] = Field(
None,
alias='_href',
description='URL of the particular `Registrierkasse` instance.',
)
field_uuid: Optional[str] = Field(
None,
alias='_uuid',
description='Unique ID of the particular `Registrierkasse` instance.',
)
class Zahlung(BaseModel):
Betrag: int = Field(..., description='The amount in cents')
Bezeichnung: str
Referenz: Optional[str] = None
class Dialect(Enum):
escpos = 'escpos'
escposlite = 'escposlite'
star = 'star'
text = 'text'
class Encoding(Enum):
raw = 'raw'
base64 = 'base64'
class Format(Enum):
export = 'export'
beleg = 'beleg'
uuidlist = 'uuidlist'
class Order(Enum):
asc = 'asc'
desc = 'desc'
class RegistrierkassenRegistrierkasseUuidMonatsbelegeGetResponse(
RootModel[List[Monatsbeleg]]
):
root: List[Monatsbeleg]
class Belegdaten(BaseModel):
Externer_Beleg_Belegkreis: Optional[str] = Field(
None, alias='Externer-Beleg-Belegkreis'
)
Externer_Beleg_Bezeichnung: Optional[str] = Field(
None, alias='Externer-Beleg-Bezeichnung'
)
Externer_Beleg_Referenz: Optional[str] = Field(
None, alias='Externer-Beleg-Referenz'
)
Kunde: Optional[str] = None
Notizen: Optional[List[str]] = None
Posten_1: Optional[List[Posten]] = Field(None, alias='Posten')
Rabatte: Optional[List[Rabatt]] = None
Storno: Optional[bool] = Field(None, description='Storno?')
Storno_Beleg_UUID: Optional[UUID] = Field(
None,
alias='Storno-Beleg-UUID',
description='The `Beleg-UUID` property of the `Beleg` to be cancelled',
)
Storno_Text: Optional[str] = Field(None, alias='Storno-Text')
Training: Optional[bool] = Field(None, description='Training?')
Unternehmen_Adresse1: Optional[str] = Field(None, alias='Unternehmen-Adresse1')
Unternehmen_Adresse2: Optional[str] = Field(None, alias='Unternehmen-Adresse2')
Unternehmen_Fusszeile: Optional[str] = Field(None, alias='Unternehmen-Fusszeile')
Unternehmen_ID: Optional[str] = Field(None, alias='Unternehmen-ID')
Unternehmen_ID_Typ: Optional[UnternehmenIDTyp] = Field(
None, alias='Unternehmen-ID-Typ'
)
Unternehmen_Kopfzeile: Optional[str] = Field(None, alias='Unternehmen-Kopfzeile')
Unternehmen_Name: Optional[str] = Field(None, alias='Unternehmen-Name')
Unternehmen_Ort: Optional[str] = Field(None, alias='Unternehmen-Ort')
Unternehmen_PLZ: Optional[str] = Field(None, alias='Unternehmen-PLZ')
Zahlungen: Optional[List[Zahlung]] = None
class SignierteBelegdaten(BaseModel):
Beleg_Datum_Uhrzeit: Optional[str] = Field(None, alias='Beleg-Datum-Uhrzeit')
Belegnummer: Optional[str] = None
Betrag_Brutto: Optional[int] = Field(None, alias='Betrag-Brutto')
Betrag_Netto: Optional[int] = Field(None, alias='Betrag-Netto')
Betrag_Satz_Besonders_Brutto: Optional[int] = Field(
None,
alias='Betrag-Satz-Besonders-Brutto',
description='The total amount in cents',
)
Betrag_Satz_Besonders_Netto: Optional[int] = Field(
None,
alias='Betrag-Satz-Besonders-Netto',
description='The total amount in cents',
)
Betrag_Satz_Ermaessigt_1_Brutto: Optional[int] = Field(
None,
alias='Betrag-Satz-Ermaessigt-1-Brutto',
description='The total amount in cents',
)
Betrag_Satz_Ermaessigt_1_Netto: Optional[int] = Field(
None,
alias='Betrag-Satz-Ermaessigt-1-Netto',
description='The total amount in cents',
)
Betrag_Satz_Ermaessigt_2_Brutto: Optional[int] = Field(
None,
alias='Betrag-Satz-Ermaessigt-2-Brutto',
description='The total amount in cents',
)
Betrag_Satz_Ermaessigt_2_Netto: Optional[int] = Field(
None,
alias='Betrag-Satz-Ermaessigt-2-Netto',
description='The total amount in cents',
)
Betrag_Satz_Normal_Brutto: Optional[int] = Field(
None, alias='Betrag-Satz-Normal-Brutto', description='The total amount in cents'
)
Betrag_Satz_Normal_Netto: Optional[int] = Field(
None, alias='Betrag-Satz-Normal-Netto', description='The total amount in cents'
)
Betrag_Satz_Null_Brutto: Optional[int] = Field(
None, alias='Betrag-Satz-Null-Brutto', description='The total amount in cents'
)
Betrag_Satz_Null_Netto: Optional[int] = Field(
None, alias='Betrag-Satz-Null-Netto', description='The total amount in cents'
)
Externer_Beleg_Belegkreis: Optional[str] = Field(
None, alias='Externer-Beleg-Belegkreis'
)
Externer_Beleg_Bezeichnung: Optional[str] = Field(
None, alias='Externer-Beleg-Bezeichnung'
)
Externer_Beleg_Referenz: Optional[str] = Field(
None, alias='Externer-Beleg-Referenz'
)
Kassen_ID: Optional[str] = Field(None, alias='Kassen-ID')
Kunde: Optional[str] = None
Notizen: Optional[List[str]] = None
Posten_1: Optional[List[Posten]] = Field(None, alias='Posten')
Rabatte: Optional[List[Rabatt]] = None
Storno: Optional[bool] = Field(None, description='Storno?')
Storno_Beleg_UUID: Optional[UUID] = Field(
None,
alias='Storno-Beleg-UUID',
description='The `Beleg-UUID` property of the `Beleg` to be cancelled',
)
Storno_Text: Optional[str] = Field(None, alias='Storno-Text')
Training: Optional[bool] = Field(None, description='Training?')
Unternehmen_Adresse1: Optional[str] = Field(None, alias='Unternehmen-Adresse1')
Unternehmen_Adresse2: Optional[str] = Field(None, alias='Unternehmen-Adresse2')
Unternehmen_Fusszeile: Optional[str] = Field(None, alias='Unternehmen-Fusszeile')
Unternehmen_ID: Optional[str] = Field(None, alias='Unternehmen-ID')
Unternehmen_ID_Typ: Optional[UnternehmenIDTyp] = Field(
None, alias='Unternehmen-ID-Typ'
)
Unternehmen_Kopfzeile: Optional[str] = Field(None, alias='Unternehmen-Kopfzeile')
Unternehmen_Name: Optional[str] = Field(None, alias='Unternehmen-Name')
Unternehmen_Ort: Optional[str] = Field(None, alias='Unternehmen-Ort')
Unternehmen_PLZ: Optional[str] = Field(None, alias='Unternehmen-PLZ')
Zahlungen: Optional[List[Zahlung]] = None
Zertifikat_Seriennummer: Optional[str] = Field(
None, alias='Zertifikat-Seriennummer'
)
class Beleg(BaseModel):
Beleg_Codes: Optional[List[str]] = Field(None, alias='Beleg-Codes')
Beleg_Typen: Optional[List[BelegTypenEnum]] = Field(None, alias='Beleg-Typen')
Belegdaten: Optional[SignierteBelegdaten] = None
JWS: Optional[str] = Field(
None, description='The signed `Beleg` as a JWS signature token.'
)
QR: Optional[str] = Field(
None,
description='The portion of the `JWS` token to be used for generating QR codes.',
)
QR_Link: Optional[str] = Field(
None, alias='QR-Link', description='A hyperlink that retrieves the `QR` data.'
)
Registrierkasse_UUID: Optional[UUID] = Field(
None,
alias='Registrierkasse-UUID',
description='The `_uuid` of the `Registrierkasse` that has issued this `Beleg`.',
)
Signaturerstellungseinheit_UUID: Optional[UUID] = Field(
None,
alias='Signaturerstellungseinheit-UUID',
description='The `_uuid` of the `Signaturerstellungseinheit` that has signed this `Beleg`.',
)
field_href: Optional[str] = Field(
None, alias='_href', description='URL of the particular `Beleg` instance.'
)
field_uuid: Optional[str] = Field(
None, alias='_uuid', description='Unique ID of the particular `Beleg` instance.'
)
class Belegformat(BaseModel):
Belege: Optional[List[Beleg]] = None
class Belege(Belegformat, Exportformat):
pass