
    !\i                     D   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e      Zej)                  d       edd       edd       edd       eddd       ee      fdee   dee	   dee	   dedef
d       Zy)zMatch API endpoints    )	APIRouterDependsQuery)Session)Optional)datetime)get_db)MatchRepository)LeagueRepository)	BaseModelc                       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   ed<   ee   ed	<    G d
 d      Zy)MatchResponseid	league_idleague_namehome_team_nameaway_team_name
match_datestatus
home_score
away_scorec                       e Zd ZdZy)MatchResponse.ConfigTN)__name__
__module____qualname__from_attributes     /app/app/api/matches.pyConfigr      s    r   r!   N)	r   r   r   int__annotations__strr   r   r!   r   r   r    r   r      sG    GNK r   r   z/matches/upcomingNz	League ID)descriptionz	From datezTo dated      i  )geleleague	from_dateto_datelimitdbc                 D  K   d }| r| j                         r	 t        |       }t	        |      }t        |      }|j                  ||||      }g }	|D ]  }
|j                  |
j                        }|	j                  t        |
j                  |
j                  |r|j                  nd|
j                  j                  |
j                  j                  |
j                  |
j                   |
j"                  |
j$                  	              |	S # t        t        f$ r d }Y w xY ww)N)r   r+   r,   r-   Unknown)	r   r   r   r   r   r   r   r   r   )stripr"   
ValueError	TypeErrorr
   r   get_upcoming	get_by_idr   appendr   r   name	home_team	away_teamr   r   r   r   )r*   r+   r,   r-   r.   r   
match_repoleague_repomatchesresultmatch
league_objs               r    get_upcoming_matchesr@      s     I&,,.	FI !$J"2&K%%	 & G F **5??;
mxxoo+5
9 ??// ??//''<<''''

 
	  M9 I& 	I	s(   D D	 C&D 	DD DD )__doc__fastapir   r   r   sqlalchemy.ormr   typingr   r   app.core.db.databaser	   )app.core.db.repositories.match_repositoryr
   *app.core.db.repositories.league_repositoryr   pydanticr   routerr   getr$   r"   r@   r   r   r    <module>rK      s     - - "   ' E G 	I   !$K@$)$K$H"')"DsqT*&/'SM'!' h' 	'
 	' !'r   