prepare parsing for new pipeline format

This commit is contained in:
Florian Förster 2025-03-12 16:01:01 +01:00
parent 5bee01c5dd
commit cdcd613db0

View File

@ -8,19 +8,21 @@ from pydantic import BaseModel, PositiveInt, SkipValidation
from delta_barth.api.common import combine_route
from delta_barth.errors import STATUS_HANDLER
from delta_barth.types import DelBarApiError, Status
from delta_barth.types import DelBarApiError, ExportResponse, ResponseType, Status
if TYPE_CHECKING:
from delta_barth.api.common import Session
from delta_barth.types import PipeResult
# ** sales data
# ** import
class SalesPrognosisRequestP(BaseModel):
FirmaId: SkipValidation[int | None]
BuchungsDatum: SkipValidation[Datetime | None]
class SalesPrognosisResponseEntry(BaseModel):
class SalesPrognosisResponseEntry(ResponseType):
artikelId: PositiveInt
firmaId: PositiveInt
betrag: float # negative values are filtered out later
@ -28,10 +30,27 @@ class SalesPrognosisResponseEntry(BaseModel):
buchungsDatum: Datetime
class SalesPrognosisResponse(BaseModel):
class SalesPrognosisResponse(ResponseType):
daten: tuple[SalesPrognosisResponseEntry, ...]
# ** export
class SalesPrognosisResult(BaseModel):
jahr: PositiveInt
monat: PositiveInt
betrag: float
vorhersage: float
class SalesPrognosisResults(BaseModel):
daten: tuple[SalesPrognosisResult, ...]
class SalesPrognosisResultsExport(ExportResponse):
response: SalesPrognosisResults
status: Status
def get_sales_prognosis_data(
session: Session,
company_id: int | None = None,
@ -62,3 +81,6 @@ def get_sales_prognosis_data(
status = STATUS_HANDLER.api_error(err)
return response, status
def parse_sales_prognosis_response(pipe: PipeResult) -> ...: ...