Ë
    ‘“ÉizR  ã                   ó\  — d dl m Z  d dlmZ d dlmZ d dlmZ d dlZd dlZd dl	Z	d dl
Z
d dlZd dlmZmZ  e«       Zdedefd	„Z ej$                  d
«      Zexs dj)                  «       j)                  d«      j)                  d«      Zes  ej*                  «       j-                  d«      Z	  eej/                  d«      «      Zdedefd„Zdedefd„Z G d„ dej<                  e«      Z G d„ dej<                  «      Z  G d„ dej<                  «      Z! G d„ dej<                  «      Z" G d„ dej<                  «      Z# G d„ dej<                  «      Z$ G d„ dej<                  «      Z% G d „ d!ej<                  «      Z& G d"„ d#ej<                  «      Z' G d$„ d%ej<                  «      Z( G d&„ d'ej<                  «      Z) G d(„ d)ej<                  «      Z* G d*„ d+ej<                  «      Z+ G d,„ d-ej<                  «      Z, G d.„ d/ej<                  «      Z- G d0„ d1ej<                  «      Z. G d2„ d3ej<                  «      Z/ G d4„ d5ej<                  «      Z0 G d6„ d7ej<                  «      Z1 G d8„ d9ej<                  «      Z2y# eee
j6                  f$ r!  e ee«      j/                  d«      «      ZY �Œèw xY w):é    )Údatetime)Ú
SQLAlchemy)Ú	UserMixin)ÚFernetN)Úgenerate_password_hashÚcheck_password_hashÚvalueÚreturnc                 ó®   — t        j                  | j                  d«      «      j                  «       }t	        j
                  |«      j                  d«      S )Núutf-8)ÚhashlibÚsha256ÚencodeÚdigestÚbase64Úurlsafe_b64encodeÚdecode)r	   r   s     úDD:\satge\Panafrican Journalism Award\project\projet\models\models.pyÚ_derive_fernet_keyr      s>   € Ü�^‰^˜EŸL™L¨Ó1Ó2×9Ñ9Ó;€FÜ×#Ñ# FÓ+×2Ñ2°7Ó;Ð;ó    ÚENCRYPTION_KEYÚ Ú"Ú'r   Údatac                 ój   — | €y t         j                  | j                  «       «      j                  «       S ©N)ÚfernetÚencryptr   r   ©r   s    r   Úencrypt_datar!   !   ó(   € Ø€|ØÜ�>‰>˜$Ÿ+™+›-Ó(×/Ñ/Ó1Ð1r   c                 ój   — | €y t         j                  | j                  «       «      j                  «       S r   )r   Údecryptr   r   r    s    r   Údecrypt_datar%   &   r"   r   c                   óp  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  d«      d¬«      Z	ej                  ej                  d«      dd¬«      Z
ej                  ej                  d	«      d¬«      Zej                  ej                  d
ddd¬«      d¬«      Zej                  ej                  d¬«      Zej                  ej                   ej$                  ¬«      Zej)                  dddd¬«      Zej)                  ddd¬«      Zej                  ej                  d	«      «      Zej                  ej                  d	«      «      Zej                  ej                  d	«      «      Zej                  ej                  d	«      «      Zej                  ej6                  «      Zej                  ej6                  «      Zej                  ej6                  «      Zej                  ej6                  «      Zej                  ej                  d	«      «      Z ej                  ej                  d¬«      Z!ej                  ej                  d«      «      Z"ej                  ej                  d	«      «      Z#ej                  ej                  d«      «      Z$de%ddfd„Z&de%de'fd„Z(y)ÚUserÚuserT©Úprimary_keyé–   F©Únullableéx   ©Úuniquer-   éÿ   ÚADMINÚJURYÚ
JOURNALISTÚ
user_roles©Úname©ÚdefaultÚReviewÚjuryzReview.jury_id)ÚbackrefÚlazyÚforeign_keysz"Review.admin_overridden_by_user_id)r=   r>   é@   Úpasswordr
   Nc                 ó$   — t        |«      | _        y r   )r   Úpassword_hash©Úselfr@   s     r   Úset_passwordzUser.set_passwordQ   s   € Ü3°HÓ=ˆÕr   c                 ó.   — t        | j                  |«      S r   )r   rB   rC   s     r   Úcheck_passwordzUser.check_passwordT   s   € Ü" 4×#5Ñ#5°xÓ@Ð@r   ))Ú__name__Ú
__module__Ú__qualname__Ú__tablename__ÚdbÚColumnÚIntegerÚidÚStringÚfullnameÚemailrB   ÚEnumÚroleÚBooleanÚ	is_activeÚDateTimer   ÚutcnowÚ
created_atÚrelationshipÚreviewsÚoverridden_reviewsÚtitleÚtitle_enÚtitle_ptÚtitle_arÚTextÚbioÚbio_enÚbio_ptÚbio_arÚ
photo_pathÚ	publishedÚcountryÚorganizationÚphoneÚstrrE   ÚboolrG   © r   r   r'   r'   0   s.  „ Ø€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ�y‰y˜Ÿ™ 3›°%ˆyÓ8€HØ�I‰I�b—i‘i “n¨T¸EˆIÓB€EØ—I‘I˜bŸi™i¨›n°u�IÓ=€MØ�9‰9�R—W‘W˜W f¨lÀ�WÓNÐY^ˆ9Ó_€DØ—	‘	˜"Ÿ*™*¨d�	Ó3€IØ—‘˜2Ÿ;™;°·±�Ó@€Jà�o‰o˜h°¸TÐP`ˆoÓa€GØŸ™ØØØ9ð )ó Ðð �I‰I�b—i‘i “nÓ%€EØ�y‰y˜Ÿ™ 3›Ó(€HØ�y‰y˜Ÿ™ 3›Ó(€HØ�y‰y˜Ÿ™ 3›Ó(€HØ
�)‰)�B—G‘GÓ
€CØ�Y‰Y�r—w‘wÓ€FØ�Y‰Y�r—w‘wÓ€FØ�Y‰Y�r—w‘wÓ€FØ—‘˜2Ÿ9™9 S›>Ó*€JØ—	‘	˜"Ÿ*™*¨d�	Ó3€Ià�i‰i˜Ÿ	™	 #›Ó'€GØ—9‘9˜RŸY™Y s›^Ó,€LØ�I‰I�b—i‘i “mÓ$€Eð> Sð >¨Tó >ðA sð A¨tô Ar   r'   c                   óV  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  d«      d¬«      Z	ej                  ej                  d«      «      Z
ej                  ej                  d«      «      Zej                  ej                  d«      «      Zej                  ej                  d«      «      Zej                  ej                  d«      «      Zej                  ej                  d¬«      Zej                  ej"                  ej&                  ¬«      Zy	)
ÚPartnerÚpartnerTr)   é    Fr,   r1   r8   N)rH   rI   rJ   rK   rL   rM   rN   rO   rP   r7   Úname_enÚname_ptÚname_arÚwebsiteÚ	logo_pathrU   rg   rW   r   rX   rY   rm   r   r   ro   ro   X   sÕ   „ Ø€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ�9‰9�R—Y‘Y˜s“^¨eˆ9Ó4€DØ�i‰i˜Ÿ	™	 #›Ó'€GØ�i‰i˜Ÿ	™	 #›Ó'€GØ�i‰i˜Ÿ	™	 #›Ó'€GØ�i‰i˜Ÿ	™	 #›Ó'€GØ—	‘	˜"Ÿ)™) C›.Ó)€IØ—	‘	˜"Ÿ*™*¨d�	Ó3€IØ—‘˜2Ÿ;™;°·±�Ó@�Jr   ro   c                   ó.  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  d«      d¬«      Z	ej                  ej                  d«      «      Z
ej                  ej                  d«      «      Zej                  ej                  d«      «      Zej                  ej                  d«      «      Zej                  ej                  «      Zej                  ej                  «      Zej                  ej                  «      Zej                  ej                  «      Zej                  ej                  d«      «      Zej                  ej(                  d¬«      Zej                  ej,                  ej0                  ¬«      Zy	)
Ú
JuryMemberÚjury_memberTr)   rq   Fr,   r1   r8   N)rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rU   rg   rW   r   rX   rY   rm   r   r   rx   rx   f   s  „ Ø!€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ�y‰y˜Ÿ™ 3›°%ˆyÓ8€HØ�I‰I�b—i‘i “nÓ%€EØ�y‰y˜Ÿ™ 3›Ó(€HØ�y‰y˜Ÿ™ 3›Ó(€HØ�y‰y˜Ÿ™ 3›Ó(€HØ
�)‰)�B—G‘GÓ
€CØ�Y‰Y�r—w‘wÓ€FØ�Y‰Y�r—w‘wÓ€FØ�Y‰Y�r—w‘wÓ€FØ—‘˜2Ÿ9™9 S›>Ó*€JØ—	‘	˜"Ÿ*™*¨d�	Ó3€IØ—‘˜2Ÿ;™;°·±�Ó@�Jr   rx   c                   óì  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  d«      d¬«      Z	ej                  ej                  d«      «      Z
ej                  ej                  d«      «      Zej                  ej                  d«      «      Zej                  ej                  d¬«      Zej                  ej                  «      Zej                  ej                  «      Zej                  ej                  «      Zej                  ej                  d¬«      Zej                  ej&                  d¬«      Zej                  ej*                  ej.                  ¬«      Zy	)
ÚFAQÚfaqTr)   r1   Fr,   r   r8   N)rH   rI   rJ   rK   rL   rM   rN   rO   rP   ÚquestionÚquestion_enÚquestion_ptÚquestion_arra   ÚanswerÚ	answer_enÚ	answer_ptÚ	answer_arÚpositionrU   rg   rW   r   rX   rY   rm   r   r   r{   r{   x   s  „ Ø€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ�y‰y˜Ÿ™ 3›°%ˆyÓ8€HØ—)‘)˜BŸI™I c›NÓ+€KØ—)‘)˜BŸI™I c›NÓ+€KØ—)‘)˜BŸI™I c›NÓ+€KØ�Y‰Y�r—w‘w¨ˆYÓ/€FØ—	‘	˜"Ÿ'™'Ó"€IØ—	‘	˜"Ÿ'™'Ó"€IØ—	‘	˜"Ÿ'™'Ó"€IØ�y‰y˜Ÿ™¨QˆyÓ/€HØ—	‘	˜"Ÿ*™*¨d�	Ó3€IØ—‘˜2Ÿ;™;°·±�Ó@�Jr   r{   c                   óÀ  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  dd¬«      Zej                  ej                  d«      «      Z
ej                  ej                  d«      «      Zej                  ej                  d«      «      Zej                  ej                  d«      «      Zej                  ej                  «      Zej                  ej                  «      Zej                  ej"                  d¬«      Zej                  ej&                  «      Zej                  ej&                  «      Zej                  ej,                  «      Zej                  ej,                  «      Zej                  ej,                  «      Zej                  ej,                  «      Zej                  ej,                  «      Zej                  ej,                  «      Zej                  ej,                  «      Zej                  ej,                  «      Zej?                  ddd¬	«      Z ej?                  d
dd¬	«      Z!ej?                  ddd¬	«      Z"y)ÚEditionÚeditionTr)   Fr/   r1   r8   ÚLaureate©r<   r=   ÚApplicationÚEditionJuryMembershipN)#rH   rI   rJ   rK   rL   rM   rN   rO   ÚyearrP   ÚthemeÚtheme_enÚtheme_ptÚtheme_arÚDateÚ
start_dateÚend_daterU   rV   rW   Úapplications_start_atÚapplications_end_atra   Ú
conditionsÚconditions_enÚconditions_ptÚconditions_arÚprizesÚ	prizes_enÚ	prizes_ptÚ	prizes_arrZ   Ú	laureatesÚapplicationsÚjury_membershipsrm   r   r   r‡   r‡   ‰   s¼  „ Ø€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ�9‰9�R—Z‘Z¨°uˆ9Ó=€DØ�I‰I�b—i‘i “nÓ%€EØ�y‰y˜Ÿ™ 3›Ó(€HØ�y‰y˜Ÿ™ 3›Ó(€HØ�y‰y˜Ÿ™ 3›Ó(€HØ—‘˜2Ÿ7™7Ó#€JØ�y‰y˜Ÿ™Ó!€HØ—	‘	˜"Ÿ*™*¨d�	Ó3€IàŸI™I b§k¡kÓ2ÐØŸ)™) B§K¡KÓ0ÐØ—‘˜2Ÿ7™7Ó#€JØ—I‘I˜bŸg™gÓ&€MØ—I‘I˜bŸg™gÓ&€MØ—I‘I˜bŸg™gÓ&€MØ�Y‰Y�r—w‘wÓ€FØ—	‘	˜"Ÿ'™'Ó"€IØ—	‘	˜"Ÿ'™'Ó"€IØ—	‘	˜"Ÿ'™'Ó"€Ià—‘ 
°IÀD�ÓI€IØ—?‘? =¸)È$�?ÓO€Là—‘Ð'>È	ÐX\�Ó]Ñr   r‡   c                   óž  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  d«      dd¬«      Z	ej                  ej                  d«      «      Z
ej                  ej                  d«      «      Zej                  ej                  d«      «      Zej                  ej                  «      Zej                  ej                  «      Zej                  ej                  «      Zej                  ej                  «      Zej                  ej                  «      Zej                  ej                  «      Zej                  ej                  «      Zej                  ej                  «      Zej                  ej,                  ej0                  ¬«      Zej5                  ddd¬	«      Zej5                  d
dd¬	«      Zy)ÚCategoryÚcategoryTr)   r+   F)r-   r0   r8   r‹   rŠ   r‰   N)rH   rI   rJ   rK   rL   rM   rN   rO   rP   r7   rr   rs   rt   ra   ÚdescriptionÚdescription_enÚdescription_ptÚdescription_arr—   r˜   r™   rš   rW   r   rX   rY   rZ   r    rŸ   rm   r   r   r£   r£   §   sM  „ Ø€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ�9‰9�R—Y‘Y˜s“^¨e¸Dˆ9ÓA€DØ�i‰i˜Ÿ	™	 #›Ó'€GØ�i‰i˜Ÿ	™	 #›Ó'€GØ�i‰i˜Ÿ	™	 #›Ó'€GØ—)‘)˜BŸG™GÓ$€KØ—Y‘Y˜rŸw™wÓ'€NØ—Y‘Y˜rŸw™wÓ'€NØ—Y‘Y˜rŸw™wÓ'€NØ—‘˜2Ÿ7™7Ó#€JØ—I‘I˜bŸg™gÓ&€MØ—I‘I˜bŸg™gÓ&€MØ—I‘I˜bŸg™gÓ&€MØ—‘˜2Ÿ;™;°·±�Ó@€Jà—?‘? =¸*È4�?ÓP€LØ—‘ 
°JÀT�ÓJ�Ir   r£   c            	       óÜ  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  d«      dd¬«      Z	ej                  ej                  ej                  d«      d¬«      Zej                  ej                  ej                  d	«      d¬«      Zej                  ej                  ej                  d
«      d¬«      Zej                  dej                  d¬«      Zej                  dej                  d¬«      Zej                  dej                  «      Zej                  dej                  d¬«      Zej                  dej                  «      Zej                  dej                  «      Zej                  dej                  «      Zej                  dej                  «      Zej                  dej                  «      Zej                  dej                  «      Zej                  dej                  «      Zej                  ej5                  ddddd¬«      d¬«      Zej                  ej8                  ej<                  ¬«      ZejA                  ddd¬«      Z!ejA                  ddd¬«      Z"ejA                  d dd¬«      Z#ejA                  d!dd¬"«      Z$ejA                  d#dd¬«      Z%ejA                  d$egd¬%«      Z&e'd&„ «       Z(e(jR                  d'„ «       Z(e'd(„ «       Z*e*jR                  d)„ «       Z*e'd*„ «       Z+e+jR                  d+„ «       Z+e'd,„ «       Z,e,jR                  d-„ «       Z,e'd.„ «       Z-e-jR                  d/„ «       Z-e'd0„ «       Z.e.jR                  d1„ «       Z.e'd2„ «       Z/e/jR                  d3„ «       Z/e'd4„ «       Z0e0jR                  d5„ «       Z0e'd6„ «       Z1e1jR                  d7„ «       Z1e'd8„ «       Z2e2jR                  d9„ «       Z2e'd:„ «       Z3e3jR                  d;„ «       Z3y<)=r‹   ÚapplicationTr)   r?   )r0   Úindexúcategory.idFr,   ú
edition.idúuser.idrQ   rR   rh   Úproject_titleÚproject_title_enÚproject_title_ptÚproject_title_arr¥   r¦   r§   r¨   Ú	SUBMITTEDÚUNDER_REVIEWÚSELECTEDÚREJECTEDÚapplication_statusr6   r8   ÚApplicationFilerŠ   ÚApplicationStatusHistoryr:   r‰   )r<   ÚuselistÚApplicationAssignmentr'   )r>   r=   c                 ó,   — t        | j                  «      S r   ©r%   Ú	_fullname©rD   s    r   rQ   zApplication.fullnameæ   ó   € ä˜DŸN™NÓ+Ð+r   c                 ó$   — t        |«      | _        y r   ©r!   r¾   ©rD   r	   s     r   rQ   zApplication.fullnameê   ó   € ä% eÓ,ˆ�r   c                 ó,   — t        | j                  «      S r   ©r%   Ú_emailr¿   s    r   rR   zApplication.emailî   ó   € ä˜DŸK™KÓ(Ð(r   c                 ó$   — t        |«      | _        y r   ©r!   rÇ   rÃ   s     r   rR   zApplication.emailò   ó   € ä" 5Ó)ˆ�r   c                 ó,   — t        | j                  «      S r   )r%   Ú_countryr¿   s    r   rh   zApplication.countryö   ó   € ä˜DŸM™MÓ*Ð*r   c                 ó$   — t        |«      | _        y r   )r!   rÍ   rÃ   s     r   rh   zApplication.countryú   ó   € ä$ UÓ+ˆ�r   c                 ó,   — t        | j                  «      S r   )r%   Ú_project_titler¿   s    r   r¯   zApplication.project_titleþ   s   € ä˜D×/Ñ/Ó0Ð0r   c                 ó$   — t        |«      | _        y r   )r!   rÒ   rÃ   s     r   r¯   zApplication.project_title  s   € ä*¨5Ó1ˆÕr   c                 ó,   — t        | j                  «      S r   )r%   Ú_project_title_enr¿   s    r   r°   zApplication.project_title_en  ó   € ä˜D×2Ñ2Ó3Ð3r   c                 ó$   — t        |«      | _        y r   )r!   rÕ   rÃ   s     r   r°   zApplication.project_title_en
  ó   € ä!-¨eÓ!4ˆÕr   c                 ó,   — t        | j                  «      S r   )r%   Ú_project_title_ptr¿   s    r   r±   zApplication.project_title_pt  rÖ   r   c                 ó$   — t        |«      | _        y r   )r!   rÚ   rÃ   s     r   r±   zApplication.project_title_pt  rØ   r   c                 ó,   — t        | j                  «      S r   )r%   Ú_project_title_arr¿   s    r   r²   zApplication.project_title_ar  rÖ   r   c                 ó$   — t        |«      | _        y r   )r!   rÝ   rÃ   s     r   r²   zApplication.project_title_ar  rØ   r   c                 ó,   — t        | j                  «      S r   )r%   Ú_descriptionr¿   s    r   r¥   zApplication.description  s   € ä˜D×-Ñ-Ó.Ð.r   c                 ó$   — t        |«      | _        y r   )r!   rà   rÃ   s     r   r¥   zApplication.description"  s   € ä(¨Ó/ˆÕr   c                 ó,   — t        | j                  «      S r   )r%   Ú_description_enr¿   s    r   r¦   zApplication.description_en&  ó   € ä˜D×0Ñ0Ó1Ð1r   c                 ó$   — t        |«      | _        y r   )r!   rã   rÃ   s     r   r¦   zApplication.description_en*  ó   € ä+¨EÓ2ˆÕr   c                 ó,   — t        | j                  «      S r   )r%   Ú_description_ptr¿   s    r   r§   zApplication.description_pt.  rä   r   c                 ó$   — t        |«      | _        y r   )r!   rè   rÃ   s     r   r§   zApplication.description_pt2  ræ   r   c                 ó,   — t        | j                  «      S r   )r%   Ú_description_arr¿   s    r   r¨   zApplication.description_ar6  rä   r   c                 ó$   — t        |«      | _        y r   )r!   rë   rÃ   s     r   r¨   zApplication.description_ar:  ræ   r   N)4rH   rI   rJ   rK   rL   rM   rN   rO   rP   Úreference_codeÚ
ForeignKeyÚcategory_idÚ
edition_idÚjournalist_idra   r¾   rÇ   rÍ   rÒ   rÕ   rÚ   rÝ   rà   rã   rè   rë   rS   ÚstatusrW   r   rX   rY   rZ   ÚfilesÚstatus_historyr[   ÚlaureateÚassignmentsÚ
journalistÚpropertyrQ   ÚsetterrR   rh   r¯   r°   r±   r²   r¥   r¦   r§   r¨   rm   r   r   r‹   r‹   ½   sT  „ Ø!€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ—Y‘Y˜rŸy™y¨›}°TÀ�YÓF€NØ—)‘)˜BŸJ™J¨¯©°mÓ(DÈu�)ÓU€KØ—‘˜2Ÿ:™: r§}¡}°\Ó'BÈU�ÓS€JØ—I‘I˜bŸj™j¨"¯-©-¸	Ó*BÈT�IÓR€Mð —	‘	˜* b§g¡g¸�	Ó>€IØ�Y‰Y�w §¡°%ˆYÓ8€FØ�y‰y˜ B§G¡GÓ,€HØ—Y‘Y˜°·±À%�YÓH€NØŸ	™	Ð"4°b·g±gÓ>ÐØŸ	™	Ð"4°b·g±gÓ>ÐØŸ	™	Ð"4°b·g±gÓ>ÐØ—9‘9˜]¨B¯G©GÓ4€LØ—i‘iÐ 0°"·'±'Ó:€OØ—i‘iÐ 0°"·'±'Ó:€OØ—i‘iÐ 0°"·'±'Ó:€Oà�Y‰Y�r—w‘wØ�^ Z°Ø!ð ó ð ð ó €Fð
 —‘˜2Ÿ;™;°·±�Ó@€Jð �O‰OÐ-°}È4ˆOÓP€EØ—_‘_Ð%?ÈÐ]a�_Ób€NØ�o‰o˜h°ÀDˆoÓI€GØ�‰˜z°=È%ˆÓP€HØ—/‘/Ð"9À=ÐW[�/Ó\€Kà—‘ °}°oÈD�ÓQ€Jð
 ñ,ó ð,ð ‡_�_ñ-ó ð-ð ñ)ó ð)ð ‡\�\ñ*ó ð*ð ñ+ó ð+ð ‡^�^ñ,ó ð,ð ñ1ó ð1ð ×Ññ2ó ð2ð ñ4ó ð4ð ×Ññ5ó ð5ð ñ4ó ð4ð ×Ññ5ó ð5ð ñ4ó ð4ð ×Ññ5ó ð5ð ñ/ó ð/ð ×Ññ0ó ð0ð ñ2ó ð2ð ×Ññ3ó ð3ð ñ2ó ð2ð ×Ññ3ó ð3ð ñ2ó ð2ð ×Ññ3ó ñ3r   r‹   c                   óv  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  ej                  d«      d¬«      Z	ej                  ej                  d«      d¬«      Zej                  ej                  d«      «      Zej                  ej                  ej                  ¬	«      Zy
)r¸   Úapplication_fileTr)   úapplication.idFr,   r1   é2   r8   N)rH   rI   rJ   rK   rL   rM   rN   rO   rî   Úapplication_idrP   Ú	file_pathÚ	file_typerW   r   rX   Úuploaded_atrm   r   r   r¸   r¸   ?  sŠ   „ Ø&€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ—Y‘Y˜rŸz™z¨2¯=©=Ð9IÓ+JÐUZ�YÓ[€NØ—	‘	˜"Ÿ)™) C›.°5�	Ó9€IØ—	‘	˜"Ÿ)™) B›-Ó(€IØ—)‘)˜BŸK™K°·±�)ÓA�Kr   r¸   c                   óÌ  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  ej                  d«      d¬«      Z	ej                  ej                  ej                  d«      d¬«      Z
ej                  ej                  «      Zej                  dej                  «      Zej                  d	ej                  «      Zej                  d
ej                  «      Zej                  dej                  «      Zej                  ej$                  «      Zej                  ej(                  d¬«      Zej                  ej(                  d¬«      Zej                  ej(                  d¬«      Zej                  ej$                  «      Zej                  ej                  ej                  d«      «      Zej                  ej$                  ej6                  ¬«      Zej;                  ddd¬«      fZed„ «       Z e jB                  d„ «       Z ed„ «       Z"e"jB                  d„ «       Z"ed„ «       Z#e#jB                  d„ «       Z#ed„ «       Z$e$jB                  d„ «       Z$y)r:   ÚreviewTr)   rü   Fr,   r®   ÚcommentÚ
comment_enÚ
comment_ptÚ
comment_arr8   rþ   Újury_idÚuq_review_application_juryr6   c                 ó,   — t        | j                  «      S r   )r%   Ú_commentr¿   s    r   r  zReview.commentd  rÎ   r   c                 ó$   — t        |«      | _        y r   )r!   r  rÃ   s     r   r  zReview.commenth  rÐ   r   c                 ó,   — t        | j                  «      S r   )r%   Ú_comment_enr¿   s    r   r  zReview.comment_enl  ó   € ä˜D×,Ñ,Ó-Ð-r   c                 ó$   — t        |«      | _        y r   )r!   r  rÃ   s     r   r  zReview.comment_enp  ó   € ä'¨Ó.ˆÕr   c                 ó,   — t        | j                  «      S r   )r%   Ú_comment_ptr¿   s    r   r  zReview.comment_ptt  r  r   c                 ó$   — t        |«      | _        y r   )r!   r  rÃ   s     r   r  zReview.comment_ptx  r  r   c                 ó,   — t        | j                  «      S r   )r%   Ú_comment_arr¿   s    r   r  zReview.comment_ar|  r  r   c                 ó$   — t        |«      | _        y r   )r!   r  rÃ   s     r   r  zReview.comment_ar€  r  r   N)%rH   rI   rJ   rK   rL   rM   rN   rO   rî   rþ   r  ÚFloatÚscorera   r  r  r  r  rW   Úsubmitted_atrU   Úvisible_to_journalistÚvisible_score_to_journalistÚvisible_comment_to_journalistÚadmin_overridden_atÚadmin_overridden_by_user_idr   rX   rY   ÚUniqueConstraintÚ__table_args__rø   r  rù   r  r  r  rm   r   r   r:   r:   I  s;  „ Ø€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ—Y‘Y˜rŸz™z¨2¯=©=Ð9IÓ+JÐUZ�YÓ[€NØ�i‰i˜Ÿ
™
 B§M¡M°)Ó$<ÀuˆiÓM€Gà�I‰I�b—h‘hÓ€EØ�y‰y˜ B§G¡GÓ,€HØ—)‘)˜L¨"¯'©'Ó2€KØ—)‘)˜L¨"¯'©'Ó2€KØ—)‘)˜L¨"¯'©'Ó2€Kà—9‘9˜RŸ[™[Ó)€LØŸI™I b§j¡j¸%˜IÓ@ÐØ"$§)¡)¨B¯J©JÀ )Ó"FÐØ$&§I¡I¨b¯j©jÀ% IÓ$HÐ!ØŸ)™) B§K¡KÓ0ÐØ"$§)¡)¨B¯J©J¸¿¹ÀiÓ8PÓ"QÐà—‘˜2Ÿ;™;°·±�Ó@€Jð 	×ÑÐ,¨iÐ>ZÐÓ[ð€Nð
 ñ+ó ð+ð ‡^�^ñ,ó ð,ð ñ.ó ð.ð ×Ññ/ó ð/ð ñ.ó ð.ð ×Ññ/ó ð/ð ñ.ó ð.ð ×Ññ/ó ñ/r   r:   c                   óÐ  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  ej                  d«      d¬«      Z	ej                  ej                  ej                  d«      d¬«      Z
ej                  ej                  ej                  d«      d¬«      Zej                  ej                  ej                  ¬«      Zej!                  d	d
d¬«      fZy)r»   Úapplication_assignmentTr)   rü   Fr,   r®   r8   rþ   r  Úuq_application_juryr6   N)rH   rI   rJ   rK   rL   rM   rN   rO   rî   rþ   r  Úassigned_by_user_idrW   r   rX   Úassigned_atr   r!  rm   r   r   r»   r»   …  s¾   „ Ø,€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ—Y‘Y˜rŸz™z¨2¯=©=Ð9IÓ+JÐUZ�YÓ[€NØ�i‰i˜Ÿ
™
 B§M¡M°)Ó$<ÀuˆiÓM€GØŸ)™) B§J¡J°·±¸iÓ0HÐSW˜)ÓXÐØ—)‘)˜BŸK™K°·±�)ÓA€Kð 	×ÑÐ,¨iÐ>SÐÓTð�Nr   r»   c                   ó  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  ej                  d«      d¬«      Z	ej                  ej                  ej                  d«      d¬«      Z
ej                  ej                  ej                  d«      d¬«      Zej                  ej                  ej                  ¬	«      Zej!                  d
d¬«      Zej!                  dd¬«      Zej'                  dddd¬«      fZy)rŒ   Úedition_jury_membershipTr)   r­   Fr,   r®   r¬   r8   r'   ©r=   r£   rð   Újury_user_idrï   Úuq_edition_jury_user_catr6   N)rH   rI   rJ   rK   rL   rM   rN   rO   rî   rð   r*  rï   rW   r   rX   rY   rZ   Ú	jury_userr¤   r   r!  rm   r   r   rŒ   rŒ   “  sß   „ Ø-€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ—‘˜2Ÿ:™: r§}¡}°\Ó'BÈU�ÓS€JØ—9‘9˜RŸZ™Z¨¯©°yÓ)AÈE�9ÓR€LØ—)‘)˜BŸJ™J¨¯©°mÓ(DÈt�)ÓT€KØ—‘˜2Ÿ;™;°·±�Ó@€Jà—‘ ¨T�Ó2€IØ�‰˜z°ˆÓ5€Hð 	×Ñ˜L¨.¸-ÐNhÐÓið�Nr   rŒ   c                   óö  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  ej                  d«      d¬«      Z	ej                  ej                  ej                  d«      d¬«      Z
ej                  ej                  ej                  d«      d¬«      Zej                  ej                  «      Zej                  ej                  «      Zej                  ej                  «      Zej                  ej                   «      Zej                  ej                  ej                  d	«      «      Zej                  ej&                  d¬
«      Zej                  ej                   «      Zy)r‰   rõ   Tr)   rü   Fr,   r­   r¬   r®   r8   N)rH   rI   rJ   rK   rL   rM   rN   rO   rî   rþ   rð   rï   Úrankr  Ú	avg_scoreÚreviews_countrW   Úselected_atÚselected_by_user_idrU   rg   Úpublished_atrm   r   r   r‰   r‰   ¤  s  „ Ø€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ—Y‘Y˜rŸz™z¨2¯=©=Ð9IÓ+JÐUZ�YÓ[€NØ—‘˜2Ÿ:™: r§}¡}°\Ó'BÈU�ÓS€JØ—)‘)˜BŸJ™J¨¯©°mÓ(DÈu�)ÓU€Kà�9‰9�R—Z‘ZÓ €DØ—	‘	˜"Ÿ(™(Ó#€IØ—I‘I˜bŸj™jÓ)€MØ—)‘)˜BŸK™KÓ(€KØŸ)™) B§J¡J°·±¸iÓ0HÓIÐà—	‘	˜"Ÿ*™*¨e�	Ó4€IØ—9‘9˜RŸ[™[Ó)�Lr   r‰   c                   ó²  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  d«      d¬«      Z	ej                  ej                  d«      «      Z
ej                  ej                  d«      «      Zej                  ej                  d«      «      Zej                  ej                  d¬«      Zej                  ej                  «      Zej                  ej                  «      Zej                  ej                  «      Zej                  ej$                  d¬«      Zej                  ej(                  ej,                  ¬«      Zy)	ÚNewsÚnewsTr)   r1   Fr,   r8   N)rH   rI   rJ   rK   rL   rM   rN   rO   rP   r]   r^   r_   r`   ra   ÚcontentÚ
content_enÚ
content_ptÚ
content_arrU   rg   rW   r   rX   rY   rm   r   r   r5  r5  ¶  sõ   „ Ø€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ�I‰I�b—i‘i “n¨uˆIÓ5€EØ�y‰y˜Ÿ™ 3›Ó(€HØ�y‰y˜Ÿ™ 3›Ó(€HØ�y‰y˜Ÿ™ 3›Ó(€HØ�i‰i˜Ÿ™¨%ˆiÓ0€GØ—‘˜2Ÿ7™7Ó#€JØ—‘˜2Ÿ7™7Ó#€JØ—‘˜2Ÿ7™7Ó#€JØ—	‘	˜"Ÿ*™*¨e�	Ó4€IØ—‘˜2Ÿ;™;°·±�Ó@�Jr   r5  c                   ó,  — e Zd ZdZej                  ej                  d¬«      Zej                  dej                  d¬«      Z	ej                  dej                  d¬«      Z
ej                  dej                  d¬«      Zej                  d	ej                  «      Zej                  d
ej                  «      Zej                  dej                  «      Zej                  ej                  ej"                  ¬«      Zed„ «       Zej*                  d„ «       Zed„ «       Zej*                  d„ «       Zed„ «       Zej*                  d„ «       Zed„ «       Zej*                  d„ «       Zed„ «       Zej*                  d„ «       Zed„ «       Zej*                  d„ «       Zy)ÚContactMessageÚcontact_messageTr)   rQ   Fr,   rR   ÚmessageÚ
message_enÚ
message_ptÚ
message_arr8   c                 ó,   — t        | j                  «      S r   r½   r¿   s    r   rQ   zContactMessage.fullnameÓ  rÀ   r   c                 ó$   — t        |«      | _        y r   rÂ   rÃ   s     r   rQ   zContactMessage.fullname×  rÄ   r   c                 ó,   — t        | j                  «      S r   rÆ   r¿   s    r   rR   zContactMessage.emailÛ  rÈ   r   c                 ó$   — t        |«      | _        y r   rÊ   rÃ   s     r   rR   zContactMessage.emailß  rË   r   c                 ó,   — t        | j                  «      S r   )r%   Ú_messager¿   s    r   r>  zContactMessage.messageã  rÎ   r   c                 ó$   — t        |«      | _        y r   )r!   rG  rÃ   s     r   r>  zContactMessage.messageç  rÐ   r   c                 ó,   — t        | j                  «      S r   )r%   Ú_message_enr¿   s    r   r?  zContactMessage.message_enë  r  r   c                 ó$   — t        |«      | _        y r   )r!   rJ  rÃ   s     r   r?  zContactMessage.message_enï  r  r   c                 ó,   — t        | j                  «      S r   )r%   Ú_message_ptr¿   s    r   r@  zContactMessage.message_ptó  r  r   c                 ó$   — t        |«      | _        y r   )r!   rM  rÃ   s     r   r@  zContactMessage.message_pt÷  r  r   c                 ó,   — t        | j                  «      S r   )r%   Ú_message_arr¿   s    r   rA  zContactMessage.message_arû  r  r   c                 ó$   — t        |«      | _        y r   )r!   rP  rÃ   s     r   rA  zContactMessage.message_arÿ  r  r   N)rH   rI   rJ   rK   rL   rM   rN   rO   ra   r¾   rÇ   rG  rJ  rM  rP  rW   r   rX   rY   rø   rQ   rù   rR   r>  r?  r@  rA  rm   r   r   r<  r<  Æ  sÉ  „ Ø%€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ—	‘	˜* b§g¡g¸�	Ó>€IØ�Y‰Y�w §¡°%ˆYÓ8€FØ�y‰y˜ B§G¡G°eˆyÓ<€HØ—)‘)˜L¨"¯'©'Ó2€KØ—)‘)˜L¨"¯'©'Ó2€KØ—)‘)˜L¨"¯'©'Ó2€KØ—‘˜2Ÿ;™;°·±�Ó@€Jð ñ,ó ð,ð ‡_�_ñ-ó ð-ð ñ)ó ð)ð ‡\�\ñ*ó ð*ð ñ+ó ð+ð ‡^�^ñ,ó ð,ð ñ.ó ð.ð ×Ññ/ó ð/ð ñ.ó ð.ð ×Ññ/ó ð/ð ñ.ó ð.ð ×Ññ/ó ñ/r   r<  c                   óþ  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  ej                  d«      d¬«      Z	ej                  ej                  d«      «      Zej                  ej                  d«      «      Zej                  ej                  d«      «      Zej                  ej                  d	d
dd¬«      d¬«      Zej                  ej                   ej$                  ¬«      Zy)Ú
LoginEventÚlogin_eventTr)   r®   r,   r.   é   r?   ÚLOGINÚLOGOUTÚLOGIN_FAILEDÚlogin_event_typer6   Fr8   N)rH   rI   rJ   rK   rL   rM   rN   rO   rî   Úuser_idrP   rR   rT   Ú
ip_addressrS   ÚeventrW   r   rX   rY   rm   r   r   rS  rS    s¿   „ Ø!€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ�i‰i˜Ÿ
™
 B§M¡M°)Ó$<ÀtˆiÓL€GØ�I‰I�b—i‘i “nÓ%€EØ�9‰9�R—Y‘Y˜r“]Ó#€DØ—‘˜2Ÿ9™9 R›=Ó)€JØ�I‰I�b—g‘g˜g x°ÐFX�gÓYÐdiˆIÓj€EØ—‘˜2Ÿ;™;°·±�Ó@�Jr   rS  c                   óæ  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  ej                  d«      d¬«      Z	ej                  ej                  ej                  d«      d¬«      Z
ej                  ej                  ej                  d«      d¬«      Zej                  ej                  d	«      «      Zej                  ej                  ej                   ¬
«      Zy)ÚDocumentAccessLogÚdocument_access_logTr)   r®   Fr,   rü   zapplication_file.idr?   r8   N)rH   rI   rJ   rK   rL   rM   rN   rO   rî   rZ  rþ   Úapplication_file_idrP   r[  rW   r   rX   rY   rm   r   r   r^  r^    sµ   „ Ø)€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ�i‰i˜Ÿ
™
 B§M¡M°)Ó$<ÀuˆiÓM€GØ—Y‘Y˜rŸz™z¨2¯=©=Ð9IÓ+JÐUZ�YÓ[€NØŸ)™) B§J¡J°·±Ð>SÓ0TÐ_d˜)ÓeÐØ—‘˜2Ÿ9™9 R›=Ó)€JØ—‘˜2Ÿ;™;°·±�Ó@�Jr   r^  c                   ó$  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  ej                  d«      d¬«      Z	ej                  ej                  d«      dd¬«      Zej                  ej                  d¬«      Zej                  ej                  «      Zej                  ej                  d	«      «      Zej                  ej                  ej"                  ¬
«      Zej'                  dd¬«      Zedefd„«       Zy)ÚPasswordResetRequestÚpassword_reset_requestTr)   r®   Fr,   é€   r/   r?   r8   r'   r)  r
   c                  ó,   — t        j                  d«      S )Né    )ÚsecretsÚtoken_urlsaferm   r   r   Úgenerate_tokenz#PasswordResetRequest.generate_token(  s   € ä×$Ñ$ RÓ(Ð(r   N)rH   rI   rJ   rK   rL   rM   rN   rO   rî   rZ  rP   Ú
token_hashrW   Ú
expires_atÚused_atr[  r   rX   rY   rZ   r(   Ústaticmethodrk   ri  rm   r   r   rb  rb    sÝ   „ Ø,€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ�i‰i˜Ÿ
™
 B§M¡M°)Ó$<ÀuˆiÓM€GØ—‘˜2Ÿ9™9 S›>°$À�ÓG€JØ—‘˜2Ÿ;™;°�Ó7€JØ�i‰i˜Ÿ™Ó$€GØ—‘˜2Ÿ9™9 R›=Ó)€JØ—‘˜2Ÿ;™;°·±�Ó@€Jà�?‰?˜6¨ˆ?Ó-€Dàð)˜Cò )ó ñ)r   rb  c                   ó  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  ej                  d«      d¬«      Z	ej                  ej                  d«      «      Zej                  ej                  d«      d¬«      Zej                  ej                  ej                  d«      «      Zej                  ej                  «      Zej                  ej                   ej$                  ¬	«      Zy
)r¹   Úapplication_status_historyTr)   rü   Fr,   rf  r®   r8   N)rH   rI   rJ   rK   rL   rM   rN   rO   rî   rþ   rP   Úfrom_statusÚ	to_statusÚchanged_by_user_idra   ÚreasonrW   r   rX   rY   rm   r   r   r¹   r¹   -  sº   „ Ø0€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ—Y‘Y˜rŸz™z¨2¯=©=Ð9IÓ+JÐUZ�YÓ[€NØ—)‘)˜BŸI™I b›MÓ*€KØ—	‘	˜"Ÿ)™) B›-°%�	Ó8€IØŸ™ 2§:¡:¨r¯}©}¸YÓ/GÓHÐØ�Y‰Y�r—w‘wÓ€FØ—‘˜2Ÿ;™;°·±�Ó@�Jr   r¹   c                   ó*  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  d«      d¬«      Z	ej                  ej                  ddd	d
¬«      d¬«      Zej                  ej                  ej                  d«      «      Zej                  dej                  «      Zej                  ej                  d«      «      Zej                  ej"                  ej&                  ¬«      Zed„ «       Zej.                  d„ «       Zy)ÚEmailLogÚ	email_logTr)   rý   Fr,   ÚPENDINGÚSENTÚFAILEDÚemail_statusr6   r8   rü   Úto_emailr1   c                 ó,   — t        | j                  «      S r   )r%   Ú	_to_emailr¿   s    r   r{  zEmailLog.to_emailD  rÀ   r   c                 ó$   — t        |«      | _        y r   )r!   r}  rÃ   s     r   r{  zEmailLog.to_emailH  rÄ   r   N)rH   rI   rJ   rK   rL   rM   rN   rO   rP   ÚkindrS   rò   rî   rþ   ra   r}  ÚsubjectrW   r   rX   rY   rø   r{  rù   rm   r   r   ru  ru  9  sç   „ Ø€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ�9‰9�R—Y‘Y˜r“]¨Uˆ9Ó3€DØ�Y‰Y�r—w‘w˜y¨&°(À�wÓPÐZcˆYÓd€FØ—Y‘Y˜rŸz™z¨2¯=©=Ð9IÓ+JÓK€NØ—	‘	˜* b§g¡gÓ.€IØ�i‰i˜Ÿ	™	 #›Ó'€GØ—‘˜2Ÿ;™;°·±�Ó@€Jàñ,ó ð,ð ‡_�_ñ-ó ñ-r   ru  c                   ó"  — e Zd ZdZej                  ej                  d¬«      Zej                  ej                  ej                  d«      d¬«      Z	ej                  ej                  d«      d¬«      Zej                  ej                  d«      «      Zej                  ej                  «      Zej                  ej                  d«      «      Zej                  ej                  «      Zej                  ej"                  ej&                  ¬	«      Zy
)ÚActionAuditLogÚaction_audit_logTr)   r®   r,   éP   Fr?   r8   N)rH   rI   rJ   rK   rL   rM   rN   rO   rî   rZ  rP   ÚactionÚentity_typeÚ	entity_idr[  ra   ÚdetailsrW   r   rX   rY   rm   r   r   r‚  r‚  M  sÂ   „ Ø&€Mà	�‰�2—:‘:¨4ˆÓ	0€BØ�i‰i˜Ÿ
™
 B§M¡M°)Ó$<ÀtˆiÓL€GØ�Y‰Y�r—y‘y “}¨uˆYÓ5€FØ—)‘)˜BŸI™I b›MÓ*€KØ—	‘	˜"Ÿ*™*Ó%€IØ—‘˜2Ÿ9™9 R›=Ó)€JØ�i‰i˜Ÿ™Ó €GØ—‘˜2Ÿ;™;°·±�Ó@�Jr   r‚  )3r   Úflask_sqlalchemyr   Úflask_loginr   Úcryptography.fernetr   Úosr   r   Úbinasciirg  Úwerkzeug.securityr   r   rL   rk   r   ÚgetenvÚraw_keyÚstripÚgenerate_keyr   r   r   Ú
ValueErrorÚ	TypeErrorÚErrorr!   r%   ÚModelr'   ro   rx   r{   r‡   r£   r‹   r¸   r:   r»   rŒ   r‰   r5  r<  rS  r^  rb  r¹   ru  r‚  rm   r   r   Ú<module>r—     so  ðÝ Ý 'Ý !Ý &Û 	Û Û Û Û ß Iáƒ\€ð
<˜cð < có <ð
 ˆ"�)‰)Ð$Ó
%€ØŠ=�b×
Ñ
Ó
!×
'Ñ
'¨Ó
,×
2Ñ
2°3Ó
7€áØ!ˆf×!Ñ!Ó#×*Ñ*¨7Ó3€GðAÙ�G—N‘N 7Ó+Ó,€Fð2�sð 2˜só 2ð
2�sð 2˜só 2ô%Aˆ2�8‰8�Yô %AôPAˆb�h‰hô AôA�—‘ô Aô$Aˆ"�(‰(ô Aô"^ˆb�h‰hô ^ô<Kˆr�x‰xô Kô,3�"—(‘(ô 3ôDB�b—h‘hô Bô9/ˆR�X‰Xô 9/ôx˜BŸH™Hô ô˜BŸH™Hô ô"*ˆr�x‰xô *ô$Aˆ2�8‰8ô Aô ;/�R—X‘Xô ;/ô|	A�—‘ô 	AôA˜Ÿ™ô Aô)˜2Ÿ8™8ô )ô$	A˜rŸx™xô 	Aô-ˆr�x‰xô -ô(
A�R—X‘Xõ 
Aøð_ 	�I˜xŸ~™~Ð.ò AÙÑ& wÓ/×6Ñ6°wÓ?Ó@ƒFðAús   Â+I8 É8/J+Ê*J+