
    !\i                         d Z ddlmZmZ ddlmZmZ ddlmZ ddlm	Z	 e	 G d d             Z
e	 G d d	             Ze	 G d
 d             Z G d de      Zy)zBase data source interface    )ABCabstractmethod)ListOptional)datetime)	dataclassc                       e Zd ZU dZeed<   eed<   eed<   eed<   eed<   eed<   dZee	   ed	<   dZ
ee	   ed
<   dZee   ed<   y)	MatchDatazMatch data structure	source_idleague_source_idhome_team_nameaway_team_name
match_datestatusN
home_score
away_score
source_url)__name__
__module____qualname____doc__str__annotations__r   r   r   intr   r        /app/app/data_sources/base.pyr
   r
      sQ    NK $J$ $J$ $J$r   r
   c                   :    e Zd ZU dZeed<   eed<   dZee   ed<   y)
LeagueDatazLeague data structurer   nameNcountryr   r   r   r   r   r   r!   r   r   r   r   r   r      s    N
I!GXc]!r   r   c                   :    e Zd ZU dZeed<   eed<   dZee   ed<   y)TeamDatazTeam data structurer   r    Nr!   r"   r   r   r   r$   r$      s    N
I!GXc]!r   r$   c                       e Zd ZdZeddedee   fd       Ze	 	 ddede	e
   de	e
   dee   fd	       Zed
ede	e   fd       Zy)BaseDataSourcezBase interface for data sourcessportreturnc                      y)zGet available leaguesNr   )selfr'   s     r   get_leagueszBaseDataSource.get_leagues)        	r   Nr   	from_dateto_datec                      y)zGet matches for a leagueNr   )r*   r   r-   r.   s       r   get_matcheszBaseDataSource.get_matches.   s     	r   match_source_idc                      y)zGet detailed match informationNr   )r*   r1   s     r   get_match_detailsz BaseDataSource.get_match_details8   r,   r   )football)NN)r   r   r   r   r   r   r   r   r+   r   r   r
   r0   r3   r   r   r   r&   r&   &   s    ) d:6F    )-&*	 H% (#	
 
i   )9L  r   r&   N)r   abcr   r   typingr   r   r   dataclassesr   r
   r   r$   r&   r   r   r   <module>r8      sk      # !  ! 
% 
% 
% " " " " " "S r   