+
    bj                     L   ^ RI HtHtHtHtHtHt ^ RIHtH	t	H
t
 ^ RIHtHt ^ RIHt  ! R R]]4      t ! R R]]4      t ! R	 R
]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      tR# )    )	BaseModelFieldfield_validatorEmailStrValidationInfomodel_validator)OptionalListLiteral)datetimedate)Enumc                   "    ] tR t^tRtRtRtRtR# )SortDirectionzEnumeration for sort directionsascdesc N)__name__
__module____qualname____firstlineno____doc__ASCDESC__static_attributes__r       HD:\Projects\python\client-ideal-oms_pyapi\app\schemas\request_schemas.pyr   r      s    )
CDr   r   c                   &    ] tR t^tRtRtRtRtRtR# )DatabaseTypezEnumeration for database typesmysqlmongodb	cassandrar   N)	r   r   r   r   r   MYSQLMONGODB	CASSANDRAr   r   r   r   r   r      s    (EGIr   r   c                   ~   a  ] tR t^t o Rt]! RRR7      t]! RRR7      t]! R4      ]	R 4       4       t
V 3R ltR	tV tR
# )TimeSeriesDataPointz*Schema for a single time series data point.z@Date/timestamp in ISO format (YYYY-MM-DD or YYYY-MM-DD HH:MM:SS)descriptionz!Numeric value for the time seriesdsc                     \         P                  ! VP                  RR4      4       V#   \         d    \        R4      hi ; i)zValidate date formatZz+00:00z>Date must be in ISO format (YYYY-MM-DD or YYYY-MM-DD HH:MM:SS))r   fromisoformatreplace
ValueError)clsvs   &&r   validate_date!TimeSeriesDataPoint.validate_date   sC    	_""199S(#;<H 	_]^^	_s	   '* Ac                2   < V ^8  d   Qh/ S[ ;R&   S[;R&   # )   r*   y)strfloat)format__classdict__s   "r   __annotate__ TimeSeriesDataPoint.__annotate__   s      	h  J	 r   r   N)r   r   r   r   r   r   r*   r6   r   classmethodr2   __annotate_func__r   __classdictcell__r:   s   @r   r'   r'      sJ     4C%ghBS&IJAT_  _  r   r'   c                      a  ] tR t^)t o Rt]! RRR7      t]! RRR7      t]! RRR7      t]! RR	R7      t	]! R
R^2RR7      t
]! RR^dRR7      t]! RR^dRR7      t]! RRRRR7      t]! RRRRR7      tV 3R ltRtV tR# )ProphetConfigz&Schema for Prophet model configurationadditivezSeasonality moder(   TzEnable yearly seasonalityzEnable weekly seasonalityFzEnable daily seasonalityg?gMbP?zChangepoint prior scalegeler)   g      $@g{Gz?zSeasonality prior scalezHolidays prior scaleg?g        g      ?zChangepoint rangeu!   Confidence interval width (0–1)c                $  < V ^8  d   Qh/ S[ S[R
,          ,          ;R&   S[ S[,          ;R&   S[ S[,          ;R&   S[ S[,          ;R&   S[ S[,          ;R&   S[ S[,          ;R&   S[ S[,          ;R&   S[ S[,          ;R&   S[ S[,          ;R	&   # )r5   seasonality_modeyearly_seasonalityweekly_seasonalitydaily_seasonalitychangepoint_prior_scaleseasonality_prior_scaleholidays_prior_scalechangepoint_rangeinterval_width)rC   multiplicative)r	   r   boolr8   )r9   r:   s   "r   r;   ProphetConfig.__annotate__)   s      w'CDE   !]  !]   ~\  &e_   &e_   #5/  $   % * UO + r   r   N)r   r   r   r   r   r   rH   rI   rJ   rK   rL   rM   rN   rO   rP   r>   r   r?   r@   s   @r   rB   rB   )   s     0HM 2I */tA\)]).tA\)](-eA[(\/42+D0 05#+D0 -2#+A- */)<* ',*M'N+  r   rB   c                   r   a  ] tR t^Ct o Rt]! R^RR7      t]! R^^dRR7      t]! RRR	7      tV 3R
 lt	Rt
V tR# )ProphetTrainRequestz#Schema for training a Prophet model.zTime series data points
min_lengthr)   NzOptional model identifier)rW   
max_lengthr)   zProphet model configurationr(   c                n   < V ^8  d   Qh/ S[ S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   # )r5   datamodel_idconfig)r
   r'   r	   r7   rB   )r9   r:   s   "r   r;    ProphetTrainRequest.__annotate__C   s;      "
#e  smp	 
 ]#\ r   r   )r   r   r   r   r   r   rZ   r[   r\   r>   r   r?   r@   s   @r   rU   rU   C   s<     -&+CAKd&eD#DQ3TopH&+D>[&\F  r   rU   c                   p   a  ] tR t^Kt o Rt]! ^^RRR7      t]! RRR7      t]! RR	R7      tV 3R
 lt	Rt
V tR# )ProphetForecastRequestzSchema for generating forecastsm  Number of periods to forecastrD   DForecast frequencyr(   Tz#Include historical data in responsec                |   < V ^8  d   Qh/ S[ S[,          ;R&   S[ S[R,          ,          ;R&   S[ S[,          ;R&   # )r5   periodsfreqinclude_historyrb   HWMQY)r	   intr   rR   )r9   r:   s   "r   r;   #ProphetForecastRequest.__annotate__K   s?      c]a  778
9h	 
 d^d r   r   N)r   r   r   r   r   r   re   rf   rg   r>   r   r?   r@   s   @r   r_   r_   K   s:     )"2!A`aG<A#Sg<hD&+D>c&dO  r   r_   c                      a  ] tR t^St o Rt]! ^^RRR7      t]! RRR7      t]! RR	R
RR7      t]! RRRRR7      t	V 3R lt
RtV tR# )ProphetPlotRequestz$Schema for generating forecast plotsr`   ra   rD   rb   rc   r(   i   i  i  zPlot width in pixelsiX  i,  i  zPlot height in pixelsc                   < V ^8  d   Qh/ S[ S[,          ;R&   S[ S[R,          ,          ;R&   S[ S[,          ;R&   S[ S[,          ;R&   # )r5   re   rf   widthheightrh   )r	   rn   r   )r9   r:   s   "r   r;   ProphetPlotRequest.__annotate__S   sP      c]a  778
9h	 
 C=Z  SM\ r   r   N)r   r   r   r   r   r   re   rf   rs   rt   r>   r   r?   r@   s   @r   rq   rq   S   sO     ."2!A`aG<A#Sg<hD CYZE!##$D[\F  r   rq   c                   F   a  ] tR t^\t o Rt]! R^RR7      tV 3R ltRtV t	R# )ProphetValidateRequestz&Schema for validating time series data.z#Time series data points to validaterV   c                6   < V ^8  d   Qh/ S[ S[,          ;R&   # )r5   rZ   )r
   r'   )r9   r:   s   "r   r;   #ProphetValidateRequest.__annotate__\   s      "
#q r   r   N)
r   r   r   r   r   r   rZ   r>   r   r?   r@   s   @r   rw   rw   \   s     0&+CAKp&qD  r   rw   c                   Z   a  ] tR t^dt o Rt]! R^ RR7      t]! RRR7      tV 3R ltR	t	V t
R# )
RegressionTrainRequestz8Schema for training a regression or classification model.z!Company ID to scope training datagtr)   Nz)Optional XGBoost hyperparameter overridesr(   c                B   < V ^8  d   Qh/ S[ ;R&   S[S[,          ;R&   # )r5   
company_idr\   )rn   r	   dict)r9   r:   s   "r   r;   #RegressionTrainRequest.__annotate__d   s!     W  TNa r   r   )r   r   r   r   r   r   r   r\   r>   r   r?   r@   s   @r   r{   r{   d   s+     BCA3VWJ"45`aF  r   r{   c                   Z   a  ] tR t^jt o Rt]! R^ RR7      t]! RRR7      tV 3R ltR	t	V t
R# )
CollectionRiskScoreRequestz)Schema for scoring client collection risk.
Company IDr|   Nz*Specific client IDs to score; omit for allr(   c                R   < V ^8  d   Qh/ S[ ;R&   S[S[S[ ,          ,          ;R&   # )r5   r   
client_idsrn   r	   r
   )r9   r:   s   "r   r;   'CollectionRiskScoreRequest.__annotate__j   s&     @  c#k r   r   )r   r   r   r   r   r   r   r   r>   r   r?   r@   s   @r   r   r   j   s*     3CA<@J&+D>j&kJ  r   r   c                      a  ] tR t^pt o Rt]! R^ RR7      t]! R^ RR7      t]! RRR7      t]! RR	R7      t	V 3R
 lt
RtV tR# )SalesTargetPredictRequestz-Schema for predicting sales target attainment.r   r|   zAccount year to predict forNzFilter by product head IDsr(   zFilter by district IDsc                   < V ^8  d   Qh/ S[ ;R&   S[ ;R&   S[S[S[ ,          ,          ;R&   S[S[S[ ,          ,          ;R&   # )r5   r   account_year_idproduct_head_idsdistrict_idsr   )r9   r:   s   "r   r;   &SalesTargetPredictRequest.__annotate__p   sI     @  V  tCy)a	 
 49%Y r   r   )r   r   r   r   r   r   r   r   r   r   r>   r   r?   r@   s   @r   r   r   p   sG     7CA<@J 8UVO,1$D`,a(-d@X(YL  r   r   N)pydanticr   r   r   r   r   r   typingr	   r
   r   r   r   enumr   r7   r   r   r'   rB   rU   r_   rq   rw   r{   r   r   r   r   r   <module>r      s    a a * * # C 3 _) _"I 4]) ]eY e] ]rY rbY bl lZ	 Zr   