o
    Þ!\i’  ã                   @   s†   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„ dƒƒZ
e	G dd	„ d	ƒƒZe	G d
d„ dƒƒZG dd„ deƒZdS )zBase data source interfaceé    )ÚABCÚabstractmethod)ÚListÚOptional)Údatetime)Ú	dataclassc                   @   sr   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< dS )Ú	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   © r   r   úT/var/www/www-root/data/www/176.119.141.140/sports-predictor/app/data_sources/base.pyr      s   
 r   c                   @   ó2   e Zd ZU dZeed< eed< dZee ed< dS )Ú
LeagueDatazLeague data structurer	   ÚnameNÚcountry©r   r   r   r   r   r   r   r   r   r   r   r   r      ó
   
 r   c                   @   r   )ÚTeamDatazTeam data structurer	   r   Nr   r   r   r   r   r   r!      r    r!   c                   @   sv   e Zd ZdZeddedee fdd„ƒZe		dded	e	e
 d
e	e
 dee fdd„ƒZedede	e fdd„ƒZdS )ÚBaseDataSourcezBase interface for data sourcesÚfootballÚsportÚreturnc                 C   ó   dS )zGet available leaguesNr   )Úselfr$   r   r   r   Úget_leagues)   ó   zBaseDataSource.get_leaguesNr
   Ú	from_dateÚto_datec                 C   r&   )zGet matches for a leagueNr   )r'   r
   r*   r+   r   r   r   Úget_matches.   s   zBaseDataSource.get_matchesÚmatch_source_idc                 C   r&   )zGet detailed match informationNr   )r'   r-   r   r   r   Úget_match_details8   r)   z BaseDataSource.get_match_details)r#   )NN)r   r   r   r   r   r   r   r   r(   r   r   r   r,   r.   r   r   r   r   r"   &   s$    üþýüû	r"   N)r   Úabcr   r   Útypingr   r   r   Údataclassesr   r   r   r!   r"   r   r   r   r   Ú<module>   s    