
    !\i                     V    d Z ddlmZmZ ddlmZmZ ddlmZmZm	Z	m
Z
  G d de      Zy)z Mock data source for development    )ListOptional)datetime	timedelta)BaseDataSource	MatchData
LeagueDataTeamDatac            
       t    e Zd ZdZd Zddedee   fdZ	 	 ddede	e
   d	e	e
   dee   fd
Zdede	e   fdZy)
MockSourcez(Mock data source for testing/developmentc                     t        ddd      t        ddd      t        dd	d
      g| _        t        ddd      t        ddd      t        ddd      t        ddd      g| _        y )Npremier_leaguezPremier LeagueEngland)	source_idnamecountryla_ligazLa LigaSpain
bundesliga
BundesligaGermanyteam_1Team Ateam_2Team Bteam_3zTeam Cteam_4zTeam D)r	   mock_leaguesr
   
mock_teams)selfs    $/app/app/data_sources/mock_source.py__init__zMockSource.__init__
   sn    !18HR[\GLL)T
 xh	Jxh	JxhHxhH	
    sportreturnc                     | j                   S )zGet mock leagues)r   )r    r$   s     r!   get_leagueszMockSource.get_leagues   s       r#   Nleague_source_id	from_dateto_datec                    g }t        j                         j                  dddd      }t        d      D ]  }|t	        |      z   }|r||k  r|r||kD  r"|t        | j                        z  }|dz   t        | j                        z  }	|dk  rdnd	}
|
dk(  rd
|z   dz  nd}|
dk(  rd|z   dz  nd}|j                  t        d| d| || j                  |   j                  | j                  |	   j                  ||
||d| 	              |S )zGet mock matches   r   )hourminutesecondmicrosecond
   days      finished	scheduled      N   match__zhttps://mock.com/match/match_)	r   r(   home_team_nameaway_team_name
match_datestatus
home_score
away_score
source_url)
r   nowreplaceranger   lenr   appendr   r   )r    r(   r)   r*   matches	base_dateir?   home_idxaway_idxr@   rA   rB   s                r!   get_matcheszMockSource.get_matches   s.    LLN**1QTU*V	rA"YA%66JZ)3:/3t//HAT__!55H $%q5ZkF(.*(<!a%1$J(.*(<!a%1$JNN9"#3"4AaS9!1#x8==#x8==%%%:1#>
 
! 8 r#   match_source_idc           
      b    t        |dddt        j                         t        d      z   d      S )zGet mock match detailsr   r   r   r4   r2   r7   )r   r(   r=   r>   r?   r@   )r   r   rD   r   )r    rO   s     r!   get_match_detailszMockSource.get_match_detailsD   s1    %-##||~	q(99
 	
r#   )football)NN)__name__
__module____qualname____doc__r"   strr   r	   r'   r   r   r   rN   rQ    r#   r!   r   r      s|    2
! !d:6F ! )-&*	&& H%& (#	&
 
i&P	
 	
)9L 	
r#   r   N)rV   typingr   r   r   r   app.data_sources.baser   r   r	   r
   r   rX   r#   r!   <module>r[      s"    & ! ( Q QF
 F
r#   