o
    .áMj8  ã                   @   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                   @   ó   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-   ó    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   
   s0    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                   @   r   )zClient.MetaÚclientNr   r    r    r    r!   r"   C   r#   r"   N)r   r   r   r   r$   r   r%   r&   r'   Zclient_namer)   Ú
EmailFieldr*   Ú	TextFieldr+   Zaadharr1   r0   Zremarksr2   r4   r5   r6   r7   r"   r    r    r    r!   r8   2   s    r8   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   r:   r;   r<   ))r   ZNormal)é   ÚSpecial)rC   ZBoth)Úchoicesr   r   r   r   c                   @   r   )zStudent.MetaZstudentNr   r    r    r    r!   r"   g   r#   r"   N)r   r   r   r   r$   r   r%   r&   r,   ZphotoÚDecimalFieldZmonthly_feesr'   ZstudentNameZ
parentNameZmobilenumberÚagerA   r+   ZCLASS_TYPE_CHOICESÚIntegerFieldZ	classTypeZdateOfJoiningr2   r4   r5   r6   r7   r"   r    r    r    r!   rB   H   s     rB   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*   r2   r4   rP   r5   Zotp_created_atr"   r    r    r    r!   rM   l   s    rM   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   r;   z#1565C0é–   r   r   r   r   c                   @   ó   e Zd ZdgZdS )z	Team.Metaú-created_atN©r   r   r   rR   r    r    r    r!   r"   ƒ   ó    
r"   N)r   r   r   r   r'   r(   Z
short_nameZ
logo_emojiZ
logo_colorZhome_groundZcaptain_namerL   r4   r5   r6   r7   r"   r    r    r    r!   rS   x   s    rS   c                   @   s„   e Zd Zg d¢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 KeeperrS   Zplayers©r   r
   rX   rU   r;   TrV   r>   r^   ©r   rI   r   r   r   r   r   c                   @   rY   )zPlayer.Metar(   Nr[   r    r    r    r!   r"   �   r\   r"   N)r   r   r   ZROLE_CHOICESr   r$   r%   Úteamr'   r(   Z	player_idr3   rL   r4   r5   r6   r7   r"   r    r    r    r!   r]   ˆ   s    ýr]   c                   @   sš  e Zd Zg d¢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BowlrS   Zmatches_as_a)r
   r   Zmatches_as_bZ	toss_winsT)r
   r   r   r	   r>   )r   rI   r	   r   Zbatting_matchesZbowling_matchesr]   Zstriker_matchesZnon_striker_matchesZbowler_matchesr   éÈ   rV   r;   rd   ra   r   r<   r   r   c                   @   rY   )z
Match.MetarZ   Nr[   r    r    r    r!   r"   Ö   r\   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bowlerrL   ÚoversZvenuer/   r   ÚnowZ
match_dater4   Zteam_a_runsZteam_a_wicketsZteam_a_ballsZteam_b_runsZteam_b_wicketsZteam_b_ballsÚ	TimeFieldZ
match_timer5   r6   r7   r"   r    r    r    r!   rc   ¡   s:    þrc   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.rc   Z
live_scorer`   r   r   r   z[]Tr   c                 C   s   zt  | j¡W S    g  Y 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 )NrN   iúÿÿÿ)rs   ÚappendÚlenrn   Údumpsrp   )rr   ZballÚoverr    r    r!   Úadd_to_this_overõ   s
   
zLiveScore.add_to_this_overc                 C   s   | j d › d| j d › �S )NrN   Ú.)Úballsrq   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Úwicketsrq   r    r    r!   Ú__str__ÿ   s   zLiveScore.__str__N)r   r   r   Ú__doc__r   ÚOneToOneFieldr%   ÚmatchrL   Úinningsr   r€   rz   ÚextrasZinnings1_runsZinnings1_wicketsZinnings1_ballsÚtargetrA   rp   r5   r7   rs   rx   r{   r�   r    r    r    r!   rm   Û   s$    rm   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`   r]   ©r   r   r   r   FrT   TrV   c                 C   s$   | j dkrdS t| j| j  d dƒS )Nr   rD   rT   r   )rz   Úroundr   rq   r    r    r!   Ústrike_rate  s   zBatsmanScore.strike_ratec                   @   r   )zBatsmanScore.Meta©re   Úplayerr…   N©r   r   r   Úunique_togetherr    r    r    r!   r"     r#   r"   c                 C   s   | j j› d| j› d| j› d�S )Nú: ú(ú))r�   r(   r   rz   rq   r    r    r!   r�     s   zBatsmanScore.__str__N)r   r   r   r‚   r   r$   rm   r%   re   r�   rL   r…   r   rz   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`   r]   r‰   r   r   r>   z0.0rW   r   c                 C   s8   zt | jƒ}|dkrt| j| dƒW S dW S    Y dS )Nr   r   rD   )Úfloatrj   rŠ   r   )rr   Úor    r    r!   Úeconomy&  s   
 zBowlerFigure.economyc                   @   r   )zBowlerFigure.MetarŒ   NrŽ   r    r    r    r!   r"   -  r#   r"   c              	   C   s,   | j j› d| j› d| j› d| j› d| j› �	S )Nr�   ú-)r�   r(   rj   Úmaidensr   r€   rq   r    r    r!   r�   0  s   ,zBowlerFigure.__str__N)r   r   r   r‚   r   r$   rm   r%   re   r�   rL   r…   r'   rj   rz   rš   r   r€   r”   r˜   r"   r�   r    r    r    r!   r•     s    
r•   c                 C   s   d| j › d|› �S )Nzrecordings/match_r}   )r~   )ÚinstanceÚfilenamer    r    r!   Úrecording_pathH  s   r�   c                   @   s²   e Zd ZdZg d¢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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)re   zLive now)ZendedZEndedrc   Ústreamr`   é@   T)r   Úuniquerh   rO   )r   r	   r   r>   rŸ   ra   r   r   r<   r   c                 C   s   d| j › d| j› �S )NzStream for Match r|   )r~   r4   rq   r    r    r!   r�   ^  s   zMatchStream.__str__c                 C   s   d| j › d�S )Nz/hls/z/index.m3u8)Ú
stream_keyrq   r    r    r!   Úget_hls_urla  s   zMatchStream.get_hls_urlc                 C   s   | j r
d| j› d�S d S )Nz/api/stream/recording/r}   )Ú	recordingr~   rq   r    r    r!   Úget_recording_urld  s   zMatchStream.get_recording_urlN)r   r   r   r‚   ZSTATUSr   rƒ   r%   r„   r'   r£   Zhls_urlr,   r�   r¥   r4   ÚPositiveIntegerFieldZviewer_countr5   Z
started_atZended_atr6   r�   r¤   r¦   r    r    r    r!   rž   L  s    rž   )Ú	django.dbr   Údjango.contrib.auth.modelsr   ÚuuidÚdjango.utilsr   rn   ÚModelr   r8   rB   rM   rS   r]   rc   rm   rˆ   r•   r�   rž   r    r    r    r!   Ú<module>   s"    ($:(-