U
    9ºYjZ8  ã                   @   s  d dl mZ d dlmZ d dlZd dlmZ d dlZG dd„ dejƒZ	G dd„ dejƒZ
G d	d
„ d
ejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZdd„ ZG dd„ dejƒZdS )é    )Úmodels)ÚUserN)Útimezonec                   @   sV  e Zd Zejeejdddd�Zejddd�Z	ejddd�Z
ejddd�Zejddd�Zejddd�Zejddd�Zejddddd�Zejddd�Zejddd�Zejddd�Zejdd	�Zejdddd
�Zejdddd
�Zejddd�Zejddd�Zejddd�Zejdddd
�Zejdd�Zejdd�Zejdd�Z ejdd�Z!G dd„ dƒZ"dS )ÚProfilesTZuser_profiles©Ú	on_deleteÚnullÚblankÚrelated_nameéÿ   ©Ú
max_lengthr   úuploads/ú../static/dummy.png©Ú	upload_tor   r	   Údefault)r   )r   r   r	   r   ©r   é   ©Úauto_now_add©Úauto_nowc                   @   s   e Zd ZdZdS )zProfiles.MetaÚprofileN©Ú__name__Ú
__module__Ú__qualname__Údb_table© r   r   ú>C:\Users\psant\Downloads\HOTSTARBACKEND\school\myapp\models.pyÚMeta-   s   r!   N)#r   r   r   r   Ú
ForeignKeyr   ÚCASCADEÚuserÚ	CharFieldÚnameÚphoneÚemailÚaddressZservicenameZgenderÚ	FileFieldÚprofilesÚpasswordZ	gstnumberZpincodeÚ	DateFieldÚdojZgstZcompanylogoZ
alteremailZalteremail1Zalteremail2ÚpanÚSmallIntegerFieldÚroleÚstatusÚDateTimeFieldÚ
created_atÚ
updated_atr!   r   r   r   r    r   
   s.   r   c                   @   sÐ   e Zd Zejeejdddd�Zejdddd�Z	ejdddd�Z
ejdddd�Zejddd�Zejdddd�Zejd	ddd�Zejd	ddd�Zejddd�Zejd
d�Zejdd�Zejdd�ZG dd„ dƒZdS )ÚClientTÚclientsr   r   ©r   r   r	   é   ©r   r	   é2   é
   r   r   r   r   c                   @   s   e Zd ZdZdS )zClient.MetaÚclientNr   r   r   r   r    r!   C   s   r!   N)r   r   r   r   r"   r   r#   r$   r%   Zclient_namer'   Ú
EmailFieldr(   Ú	TextFieldr)   Zaadharr/   r.   Zremarksr0   r2   r3   r4   r5   r!   r   r   r   r    r6   2   s   r6   c                   @   sä   e Zd Zejeejdddd�Zejddddd�Z	ej
ddd	d
�Zejdddd�Zejdddd�Zejdddd�Zejdddd�Zejddd�ZdZejed�Zejdddd�Zejdd�Zejdd�Zejdd�ZG dd„ dƒZdS )ÚStudentTZstudentsr   r   r   r   r<   é   ç        )Ú
max_digitsÚdecimal_placesr   r   r8   r9   r:   ))r   ZNormal)é   ÚSpecial)rA   ZBoth)Úchoicesr   r   r   r   c                   @   s   e Zd ZdZdS )zStudent.MetaZstudentNr   r   r   r   r    r!   g   s   r!   N)r   r   r   r   r"   r   r#   r$   r*   ZphotoÚDecimalFieldZmonthly_feesr%   ZstudentNameZ
parentNameZmobilenumberÚager?   r)   ZCLASS_TYPE_CHOICESÚIntegerFieldZ	classTypeZdateOfJoiningr0   r2   r3   r4   r5   r!   r   r   r   r    r@   H   s   r@   c                   @   sP   e Zd Zejddd�Zejdd�Zejddd�Zej	ddd�Z
G d	d
„ d
ƒZdS )ÚOtpr   Tr   r   r   é   ©r   r	   )r	   r   c                   @   s   e Zd ZdZdgZdS )zOtp.MetaÚotpÚpkN)r   r   r   r   Úorderingr   r   r   r    r!   r   s   r!   N)r   r   r   r   r%   r(   r0   r2   rN   r3   Zotp_created_atr!   r   r   r   r    rK   l   s
   rK   c                   @   s–   e Zd Zejdd�Zejdddd�Zejddd�Zejdd	d�Zejd
ddd�Z	ejdddd�Z
ejdd�Zejdd�Zejdd�ZG dd„ dƒZdS )ÚTeaméd   ©r   r<   T©r   r	   r   u   ðŸ��©r   r   r9   z#1565C0é–   r   r   r   r   c                   @   s   e Zd ZdgZdS )z	Team.Metaú-created_atN©r   r   r   rP   r   r   r   r    r!   ƒ   s   r!   N)r   r   r   r   r%   r&   Z
short_nameZ
logo_emojiZ
logo_colorZhome_groundZcaptain_namerJ   r2   r3   r4   r5   r!   r   r   r   r    rQ   x   s   rQ   c                   @   sˆ   e Zd ZddddgZejdejdd�Zejdd	�Z	ejd
ddd�Z
ejdedd�Zejdd�Zejdd�Zejdd�ZG dd„ dƒZdS )ÚPlayer)ÚBATZBatsman)ZBOWLZBowler)ÚALLzAll-Rounder)ZWKzWicket KeeperrQ   Zplayers©r   r
   rV   rS   r9   TrT   r<   rZ   ©r   rG   r   r   r   r   r   c                   @   s   e Zd ZdgZdS )zPlayer.Metar&   NrX   r   r   r   r    r!   �   s   r!   N)r   r   r   ZROLE_CHOICESr   r"   r#   Úteamr%   r&   Z	player_idr1   rJ   r2   r3   r4   r5   r!   r   r   r   r    rY   ˆ   s"   üýrY   c                   @   sž  e Zd ZddddgZddgZejddejd	�Zejdd
ejd	�Z	ejddej
ddd�Zejdeddd�Zejddej
ddd�Zejddej
ddd�Zejddej
ddd�Zejddej
ddd�Zejddej
ddd�Zejdd�Zejdddd�Zejejd�Zejdedd�Zejdd�Zejdd�Zejdd�Zejdd�Zejdd�Zejdd�Z ejejd�Zej!ddd�Z"ej#dd�Z$ej#dd�Z%G d d!„ d!ƒZ&d"S )#ÚMatch)ÚupcomingZUpcoming)ÚliveZLive)Ú	completedZ	Completed)Ú	cancelledZ	Cancelled)ZbatZBat)ZbowlZBowlrQ   Zmatches_as_a)r
   r   Zmatches_as_bZ	toss_winsT)r
   r   r   r	   r<   )r   rG   r	   r   Zbatting_matchesZbowling_matchesrY   Zstriker_matchesZnon_striker_matchesZbowler_matchesr   éÈ   rT   r9   r`   r]   r   r:   r   r   c                   @   s   e Zd ZdgZdS )z
Match.MetarW   NrX   r   r   r   r    r!   Ö   s   r!   N)'r   r   r   ZSTATUS_CHOICESZTOSS_CHOICEr   r"   r#   Zteam_aZteam_bÚSET_NULLZtoss_winnerr%   Ztoss_choiceZbatting_teamZbowling_teamZstrikerZnon_strikerZbowlerrJ   ÚoversZvenuer-   r   ÚnowZ
match_dater2   Zteam_a_runsZteam_a_wicketsZteam_a_ballsZteam_b_runsZteam_b_wicketsZteam_b_ballsÚ	TimeFieldZ
match_timer3   r4   r5   r!   r   r   r   r    r_   ¡   s@   üþr_   c                   @   sÆ   e Zd ZdZejdejdd�Zejdd�Z	ejdd�Z
ejdd�Zejdd�Zejdd�Zejdd�Zejdd�Zejdd�Zejdd�Zejdd�Zejd	d
�Zdd„ Zdd„ Zdd„ Zdd„ ZdS )Ú	LiveScorez6One LiveScore per match. Tracks current innings state.r_   Z
live_scorer\   r   r   r   z[]Tr   c                 C   s$   zt  | j¡W S    g  Y S X d S )N)ÚjsonÚloadsÚthis_over_list©Úselfr   r   r    Úthis_over_jsonñ   s      zLiveScore.this_over_jsonc                 C   s:   |   ¡ }| |¡ t|ƒdkr*|dd … }t |¡| _d S )NrL   iúÿÿÿ)ro   ÚappendÚlenrj   Údumpsrl   )rn   ZballÚoverr   r   r    Úadd_to_this_overõ   s
    
zLiveScore.add_to_this_overc                 C   s   | j d › d| j d › �S )NrL   Ú.)Úballsrm   r   r   r    Ú	overs_strü   s    zLiveScore.overs_strc                 C   s   d| j › d| j› d| j› �S )NzLiveScore Match#õ    â€” ú/)Úmatch_idÚrunsÚwicketsrm   r   r   r    Ú__str__ÿ   s    zLiveScore.__str__N)r   r   r   Ú__doc__r   ÚOneToOneFieldr#   ÚmatchrJ   Úinningsr{   r|   rv   ÚextrasZinnings1_runsZinnings1_wicketsZinnings1_ballsÚtargetr?   rl   r3   r5   ro   rt   rw   r}   r   r   r   r    ri   Û   s"   ri   c                   @   s¬   e Zd ZdZejeejdd�Zejdejd�Z	ej
dd�Zej
dd�Zej
dd�Zej
dd�Zej
dd�Zejd	d�Zejd
ddd�Zedd„ ƒZG dd„ dƒZdd„ ZdS )ÚBatsmanScorez"Per-batsman score in a live match.Zbatsmanscoresr\   rY   ©r   r   r   r   FrR   TrT   c                 C   s$   | j dkrdS t| j| j  d dƒS )Nr   rB   rR   r   )rv   Úroundr{   rm   r   r   r    Ústrike_rate  s    
 zBatsmanScore.strike_ratec                   @   s   e Zd ZdZdS )zBatsmanScore.Meta©ra   Úplayerr�   N©r   r   r   Úunique_togetherr   r   r   r    r!     s   r!   c                 C   s   | j j› d| j› d| j› d�S )Nú: ú(ú))r‰   r&   r{   rv   rm   r   r   r    r}     s    zBatsmanScore.__str__N)r   r   r   r~   r   r"   ri   r#   ra   r‰   rJ   r�   r{   rv   ZfoursZsixesÚBooleanFieldZis_outr%   Z	dismissalÚpropertyr‡   r!   r}   r   r   r   r    r„     s   
r„   c                   @   sž   e Zd ZdZejeejdd�Zejdejd�Z	ej
dd�Zejdd	d
�Zej
dd�Zej
dd�Zej
dd�Zej
dd�Zedd„ ƒZG dd„ dƒZdd„ ZdS )ÚBowlerFigurez#Per-bowler figures in a live match.Zbowlerfiguresr\   rY   r…   r   r   r<   z0.0rU   r   c                 C   s<   z(t | jƒ}|dkr$t| j| dƒndW S    Y dS X d S )Nr   r   rB   )Úfloatrf   r†   r{   )rn   Úor   r   r    Úeconomy&  s
    
 zBowlerFigure.economyc                   @   s   e Zd ZdZdS )zBowlerFigure.Metarˆ   NrŠ   r   r   r   r    r!   -  s   r!   c              	   C   s,   | j j› d| j› d| j› d| j› d| j› �	S )NrŒ   ú-)r‰   r&   rf   Úmaidensr{   r|   rm   r   r   r    r}   0  s    zBowlerFigure.__str__N)r   r   r   r~   r   r"   ri   r#   ra   r‰   rJ   r�   r%   rf   rv   r–   r{   r|   r�   r”   r!   r}   r   r   r   r    r‘     s   
r‘   c                 C   s   d| j › d|› �S )Nzrecordings/match_ry   )rz   )ÚinstanceÚfilenamer   r   r    Úrecording_pathE  s    r™   c                   @   sÄ   e Zd ZdZdddgZejdejdd�Zej	dd	d
�Z
ej	dd	d�Zejed	d	d�Zej	dd	d	d�Zej	dedd�Zejdd�Zejd	d	d�Zejd	d	d�Zejd	d�Zdd„ Zdd„ Zdd„ ZdS )ÚMatchStreamz;Tracks live stream state and recording file for each match.)ÚidlezNot started)ra   zLive now)ZendedZEndedr_   Ústreamr\   é@   T)r   Úuniquerd   rM   )r   r	   r   i,  rT   r<   r›   r]   r   r   r:   r   c                 C   s   d| j › d| j› �S )NzStream for Match rx   )rz   r2   rm   r   r   r    r}   ]  s    zMatchStream.__str__c                 C   s   d| j › d�S )Nz/hls/z/index.m3u8)Ú
stream_keyrm   r   r   r    Úget_hls_url`  s    zMatchStream.get_hls_urlc                 C   s   | j rd| j› d�S d S )Nz/api/stream/recording/ry   )Ú	recordingrz   rm   r   r   r    Úget_recording_urlc  s    zMatchStream.get_recording_urlN)r   r   r   r~   ZSTATUSr   r   r#   r€   r%   rŸ   Zhls_urlr*   r™   r¡   Zrecording_urlr2   ÚPositiveIntegerFieldZviewer_countr3   Z
started_atZended_atr4   r}   r    r¢   r   r   r   r    rš   I  s$   ýrš   )Ú	django.dbr   Údjango.contrib.auth.modelsr   ÚuuidÚdjango.utilsr   rj   ÚModelr   r6   r@   rK   rQ   rY   r_   ri   r„   r‘   r™   rš   r   r   r   r    Ú<module>   s    ($:(*