From cdcd613db085447a7475e124c6fbaaff33de89f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20F=C3=B6rster?= Date: Wed, 12 Mar 2025 16:01:01 +0100 Subject: [PATCH] prepare parsing for new pipeline format --- src/delta_barth/api/requests.py | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/src/delta_barth/api/requests.py b/src/delta_barth/api/requests.py index 3b93719..423ce04 100644 --- a/src/delta_barth/api/requests.py +++ b/src/delta_barth/api/requests.py @@ -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) -> ...: ...