o
    "\i	                  
   @   s   d Z ddlmZmZmZ ddlmZ ddlmZ ddl	m	Z	 ddl
mZ ddlmZ ddlmZ dd	lmZ e ZG d
d deZededddedddeddddeefdee dee dedefddZdS )zPrediction API endpoints    )	APIRouterDependsQuery)Session)Optional)datetime)get_db)PredictionRepository)ModelRepository)	BaseModelc                   @   sp   e Zd ZU eed< eed< eed< eed< eed< eed< eed< eed< ee ed	< eed
< G dd dZ	dS )PredictionResponseidmatch_idhome_team_nameaway_team_name
match_dateprob_home_win	prob_drawprob_away_win
confidencemodel_versionc                   @   s   e Zd ZdZdS )zPredictionResponse.ConfigTN)__name__
__module____qualname__from_attributes r   r   R/var/www/www-root/data/www/176.119.141.140/sports-predictor/app/api/predictions.pyConfig   s    r   N)
r   r   r   int__annotations__strr   floatr   r   r   r   r   r   r      s   
 r   z/predictions/upcomingNz	League ID)descriptionlatestzModel versiond      i  )geleleaguer   limitdbc                    s   d }| r|   rzt| }W n ttfy   d }Y nw t|}t|}|dkr.| }n||}|s7g S |j||j	|d}g }	|D ],}
|
j
}|	t|
j	|
j|jj|jj|j|
j|
j|
j|
j|jt|
dd t|
dd d qD|	S )Nr#   )	league_idmodel_idr)   analysis_textanalysis_generated_at)r   r   r   r   r   r   r   r   r   r   r-   r.   )stripr   
ValueError	TypeErrorr	   r
   
get_latestget_by_versionget_upcomingr   matchappendr   r   	home_teamname	away_teamr   r   r   r   r   versiongetattr)r(   r   r)   r*   r+   prediction_repo
model_repomodelpredictionsresultpredr5   r   r   r   get_upcoming_predictions   sL   




rB   )__doc__fastapir   r   r   sqlalchemy.ormr   typingr   r   app.core.db.databaser   .app.core.db.repositories.prediction_repositoryr	   )app.core.db.repositories.model_repositoryr
   pydanticr   routerr   getr    r   rB   r   r   r   r   <module>   s2    

