Ë
    š¨ôiÛ:  ã                   ó¦  — d dl mZ d dlmZ d dlmZ d dlmZ  G d„ dej                  «      Z	 G d„ d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d dlZd dl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y)$é    )Úmodels)ÚAbstractUser)Úsettings)ÚTenantc                   óp   — e Zd ZdZdZdZdZdZedfedfedfed	fed
ffZ e	j                  ed¬«      Zd„ Zy)ÚRoleé   é   é   é   é   zPersonnel entreprisezPersonnel ACREMACzAdministrateur entrepriseÚAdministrateurzResponsable PaysT)ÚchoicesÚprimary_keyc                 ó"   — | j                  «       S ©N)Úget_id_display©Úselfs    ú$/var/www/html/acx/accounts/models.pyÚ__str__zRole.__str__   s   € Ø×"Ñ"Ó$Ð$ó    N)Ú__name__Ú
__module__Ú__qualname__ÚPERSONALÚWRITERÚAPPROVERÚADMINÚCOUNTRY_MANAGERÚROLE_CHOICESr   ÚPositiveSmallIntegerFieldÚidr   © r   r   r   r      sl   „ Ø€HØ€FØ€HØ€EØ€Oð 
Ð)Ð*Ø	Ð$Ð%Ø	Ð.Ð/Ø	Ð Ð!Ø	Ð,Ð-ð€Lð 
*ˆ×	)Ñ	)°,ÈDÔ	Q€Bó%r   r   c                   ó²   — e Zd Z ej                  ddd¬«      Z ej                  ddd¬«      Z ej                  d¬«      Z ej                  d¬«      Z
d„ Zy	)
ÚUseré   T)Ú
max_lengthÚnullÚblankéx   )ÚuniqueF©Údefaultc                 óv   — | j                   dz   | j                  z   j                  «       }|xs | j                  S )Nú )Ú
first_nameÚ	last_nameÚstripÚusername)r   Úfulls     r   r   zUser.__str__$   s1   € Ø—‘ #Ñ%¨¯©Ñ6×=Ñ=Ó?ˆØÒ$�t—}‘}Ð$r   N)r   r   r   r   Ú	CharFieldÚ	telephoneÚdepartementÚ
EmailFieldÚemailÚBooleanFieldÚmust_change_passwordr   r$   r   r   r&   r&      sX   „ Ø �× Ñ ¨B°TÀÔF€IØ"�&×"Ñ"¨c¸ÀDÔI€KØˆF×Ñ TÔ*€Eà.˜6×.Ñ.°uÔ=Ðó%r   r&   c                   ó¦  — e Zd Z G d„ dej                  «      Z ej                  eej                  d¬«      Z	 ej                  e
j                  ej                  d¬«      Z ej                  ed¬«      Z ej                   dej"                  ej$                  ¬«      Z ej(                  d	¬
«      Z ej,                  d¬«      Z G d„ d«      Zd„ Zy)Ú
Membershipc                   ó   — e Zd ZdZdZdZy)úMembership.Status)Úinvitedu   InvitÃ©)ÚactiveÚActif)Ú	suspendedÚSuspenduN)r   r   r   ÚINVITEDÚACTIVEÚ	SUSPENDEDr$   r   r   ÚStatusr@   *   s   „ Ø&ˆØ"ˆØ+‰	r   rI   Úmemberships©Ú	on_deleteÚrelated_nameT©r*   é   ©r(   r   r.   Fr-   ©Úauto_now_addc                   ó   — e Zd ZdZy)úMembership.Meta)ÚtenantÚuserN©r   r   r   Úunique_togetherr$   r   r   ÚMetarT   8   s   „ Ø,‰r   rY   c                 ó8   — | j                   › d| j                  › �S )Nz @ )rV   rU   r   s    r   r   zMembership.__str__;   s   € Ø—)‘)�˜C §¡˜}Ð-Ð-r   N)r   r   r   r   ÚTextChoicesrI   Ú
ForeignKeyr   ÚCASCADErU   r   ÚAUTH_USER_MODELrV   ÚManyToManyFieldr   Úrolesr6   r   rG   Ústatusr;   Úis_ownerÚDateTimeFieldÚ
created_atrY   r   r$   r   r   r>   r>   )   s¶   „ ô,�×#Ñ#ô ,ð
 ˆV×Ñ˜v°·±ÈmÔ\€FØˆ6×Ñ˜X×5Ñ5ÀÇÁÐ^kÔl€Dà"ˆF×"Ñ" 4¨tÔ4€EØˆV×Ñ¨°V·^±^ÈVÏ]É]Ô[€Fà"ˆv×"Ñ"¨5Ô1€HØ%�×%Ñ%°4Ô8€J÷-ñ -ó.r   r>   c                   ól  — e Zd Zg d¢Z ej
                  d¬«      Z ej                  d¬«      Z ej
                  ded¬«      Z	 ej                  d	¬
«      Z ej                  ej                  ej                  ddd¬«      Z ej"                  d¬«      Z ej"                  d¬«      Z G d„ d«      Zd„ Zy)ÚDocumentTemplate))ÚamiableÚAmiable)Ú	juridiqueÚ	Juridique)ÚaccordÚAccord)ÚpaiementÚPaiement)ÚautreÚAutreéÜ   ©r(   TrN   r'   ro   rP   ztemplates/documents/©Ú	upload_toÚdocument_templates©rL   r)   r*   rM   rQ   ©Úauto_nowc                   ó   — e Zd ZdgZy)úDocumentTemplate.Metaú-created_atN©r   r   r   Úorderingr$   r   r   rY   rz   T   ó	   „ Ø!�?‰r   rY   c                 ó   — | j                   S r   )Útitler   s    r   r   zDocumentTemplate.__str__W   s   € Ø�z‰zÐr   N)r   r   r   ÚCATEGORY_CHOICESr   r6   r€   Ú	TextFieldÚdescriptionÚcategoryÚ	FileFieldÚfiler\   r   r^   ÚSET_NULLÚ
created_byrc   rd   Ú
updated_atrY   r   r$   r   r   rf   rf   @   s¹   „ òÐð #�&×"Ñ"¨cÔ2€EØ"�&×"Ñ"¨Ô.€KØ"�&×"Ñ"¨bÐ:JÐT[Ô\€HØ"�&×"Ñ"Ð-CÔD€DØ#�&×#Ñ#Ø× Ñ ¨F¯O©OØ˜Ð,@ô€Jð &�×%Ñ%°4Ô8€JØ%�×%Ñ%¨tÔ4€J÷#ñ #ór   rf   c                   ó¼  — e Zd Z G d„ dej                  «      Z ej                  eej                  d¬«      Z	 ej                  e
j                  ej                  ddd¬«      Z ej                  dej                  ¬	«      Z ej"                  d¬
«      Z ej&                  ddd¬«      Z ej*                  d¬«      Z ej.                  d¬«      Z G d„ d«      Zd„ Zy)ÚAdminTenantMessagec                   ó   — e Zd ZdZdZy)úAdminTenantMessage.SenderSide)ÚadminzSuper Admin)rU   r   N)r   r   r   r   ÚTENANTr$   r   r   Ú
SenderSider�   \   s   „ Ø(ˆØ#‰r   r�   Úplatform_messagesrK   TÚsent_platform_messagesrv   é
   )r(   r   rN   zplatform_messages/)rt   r)   r*   Fr-   rQ   c                   ó   — e Zd ZdgZy)úAdminTenantMessage.Metard   Nr|   r$   r   r   rY   r•   m   s	   „ Ø �>‰r   rY   c                 óV   — d| j                   › d| j                  › d| j                  d›�S )Nú[ú] õ    â€” z%Y-%m-%d %H:%M)Úsender_siderU   rd   r   s    r   r   zAdminTenantMessage.__str__p   s-   € Ø�4×#Ñ#Ð$ B t§{¡{ m°5¸¿¹ÈÐ8XÐYÐYr   N)r   r   r   r   r[   r�   r\   r   r]   rU   r   r^   r‡   Úsenderr6   r   rš   r‚   Úcontentr…   r†   r;   Úis_readrc   rd   rY   r   r$   r   r   r‹   r‹   [   sÙ   „ ô$�V×'Ñ'ô $ð ˆV×ÑØ˜&Ÿ.™.Ð7Jô€Fð ˆV×ÑØ× Ñ ¨F¯O©OØ˜Ð,Dô€Fð #�&×"Ñ"¨b¸*×:LÑ:LÔM€KØ"�&×"Ñ"¨Ô.€GØ"�&×"Ñ"Ð-AÈÐTXÔY€DØ%�&×%Ñ%¨eÔ4€GØ&�&×&Ñ&°DÔ9€J÷"ñ "óZr   r‹   c                   ó²  — e Zd ZdZ ej
                  d¬«      Z ej                  ej                  ej                  ddd¬«      Z ej                  eej                  ddd¬«      Z ej
                  ddd¬«      Z ej                  dd¬	«      Z ej
                  d
dd¬«      Z ej$                  dd¬	«      Z ej(                  d¬«      Z G d„ d«      Zd„ Zy)ÚAuditLogzK
    Journal des actions d'administration (RBAC, tenants, users, etc.)
    éP   rr   TÚaudit_actionsrv   Ú
audit_logs)r(   r*   r)   )r*   r)   éÿ   rQ   c                   ó   — e Zd ZdgZy)úAuditLog.Metaz-idNr|   r$   r   r   rY   r¥   �   s	   „ Ø�7‰r   rY   c                 óT   — | j                   › d| j                  › d| j                  › d�S )Nz by ú (ú))ÚactionÚactorrd   r   s    r   r   zAuditLog.__str__’   s(   € Ø—+‘+�˜d 4§:¡: ,¨b°·±Ð0AÀÐCÐCr   N)r   r   r   Ú__doc__r   r6   r©   r\   r   r^   r‡   rª   r   rU   Úentity_typeÚPositiveIntegerFieldÚ	entity_idÚentity_labelÚ	JSONFieldÚmetadatarc   rd   rY   r   r$   r   r   rŸ   rŸ   t   så   „ ñð ˆV×Ñ¨Ô,€FØˆF×ÑØ× Ñ Ø—/‘/ØØØ$ô€Eð ˆV×ÑØØ—/‘/ØØØ!ô€Fð #�&×"Ñ"¨b¸À4ÔH€KØ+�×+Ñ+°$¸TÔB€IØ#�6×#Ñ#¨s¸$ÀTÔJ€Làˆv×Ñ d°Ô6€HØ%�×%Ñ%°4Ô8€J÷ñ óDr   rŸ   Nc                   óÐ  — e Zd ZdZ G d„ dej
                  «      Z ej                  dej                  ej                  ¬«      Z
 ej                  ddd¬	«      Z ej                  d
dd¬	«      Z ej                  d
dd¬	«      Z ej                  d¬«      Z ej                   d¬«      Z ej$                  ej(                  ddej*                  d¬«      Z G d„ d«      Zed„ «       Zy)Ú	SmsConfigz2Configuration globale du provider SMS (singleton).c                   ó    — e Zd ZdZdZdZdZdZy)úSmsConfig.Provider)ÚtwilioÚTwilio)Úorangez
Orange API)ÚmtnzMTN API)ÚawszAWS SNS)Úotherrp   N)r   r   r   ÚTWILIOÚORANGEÚMTNÚAWSÚOTHERr$   r   r   ÚProviderrµ   ¥   s   „ Ø$ˆØ(ˆØ%ˆØ%ˆØ#‰r   rÁ   é   rP   é(   TÚ )r(   r*   r.   r£   Fr-   rw   Úsms_config_updates©r)   r*   rL   rM   c                   ó   — e Zd ZdZy)úSmsConfig.Metaz
SMS ConfigN©r   r   r   Úverbose_namer$   r   r   rY   rÈ   ·   s   „ Ø#‰r   rY   c                 ór   — | j                   j                  «       }|s| j                   j                  «       }|S r   ©ÚobjectsÚfirstÚcreate©ÚclsÚobjs     r   Úget_or_create_singletonz!SmsConfig.get_or_create_singletonº   ó.   € à�k‰k×ÑÓ!ˆÙØ—+‘+×$Ñ$Ó&ˆCØˆ
r   N)r   r   r   r«   r   r[   rÁ   r6   r   rÀ   ÚproviderÚ	sender_idÚapi_keyÚ
api_secretr;   Ú	is_activerc   r‰   r\   r   r^   r‡   Ú
updated_byrY   ÚclassmethodrÓ   r$   r   r   r³   r³   ¢   sè   „ Ù<ô$�6×%Ñ%ô $ð "�×!Ñ!¨R¸×9IÑ9IÐS[×SaÑSaÔb€HØ!�×!Ñ!¨R°tÀRÔH€IØ!�×!Ñ!¨S¸ÀbÔI€GØ!�×!Ñ!¨S¸ÀbÔI€JØ$�×$Ñ$¨UÔ3€IØ%�×%Ñ%¨tÔ4€JØ"�×"Ñ"Ø× Ñ  t°4À6Ç?Á?Ø)ô€J÷
$ñ $ð ñó ñr   r³   c                   ó¶  — e Zd ZdZ ej
                  eej                  d¬«      Z ej                  d¬«      Z
 ej                  d¬«      Z ej                  d¬«      Z ej                  d¬	«      Z ej
                  ej                   ddej"                  d
¬«      Z ej&                  dd¬«      Z ej&                  d¬«      Z G d„ d«      Zedd„«       Zd„ Zy)ÚTenantApiKeyuS   ClÃ© API gÃ©nÃ©rÃ©e pour un tenant afin d'accÃ©der Ã  l'API ACX programmatiquement.Úapi_keysrK   éd   rr   rO   é@   Tr-   Úcreated_api_keysrÆ   ©r)   r*   rQ   c                   ó   — e Zd ZdgZy)úTenantApiKey.Metar{   Nr|   r$   r   r   rY   rä   Ñ   r~   r   rY   Nc                 óâ   — dt        j                  d«      › �}t        j                  |j	                  «       «      j                  «       }| j                  j                  |||d d ||¬«      }||fS )NÚacx_é    rO   )rU   ÚlabelÚ
key_prefixÚkey_hashrˆ   )ÚsecretsÚtoken_urlsafeÚhashlibÚsha256ÚencodeÚ	hexdigestrÍ   rÏ   )rÑ   rU   rè   rˆ   ÚrawÚhrÒ   s          r   ÚgeneratezTenantApiKey.generateÔ   sp   € à”W×*Ñ*¨2Ó.Ð/Ð0ˆÜ�n‰n˜SŸZ™Z›\Ó*×4Ñ4Ó6ˆØ�k‰k× Ñ ØØØ˜3˜B�xØØ!ð !ó 
ˆð �Cˆxˆr   c                 ó:   — | j                   › d| j                  › d�S )Nu   â€¦ (r¨   )ré   rU   r   s    r   r   zTenantApiKey.__str__á   s   € Ø—/‘/Ð" %¨¯© }°AÐ6Ð6r   r   )r   r   r   r«   r   r\   r   r]   rU   r6   rè   ré   rê   r;   rÙ   r   r^   r‡   rˆ   rc   Úlast_used_atrd   rY   rÛ   ró   r   r$   r   r   rÝ   rÝ   Â   sÛ   „ Ù]à"�×"Ñ" 6°V·^±^ÐR\Ô]€FØ!�×!Ñ!¨SÔ1€EØ!�×!Ñ!¨RÔ0€JØ!�×!Ñ!¨RÔ0€HØ$�×$Ñ$¨TÔ2€IØ"�×"Ñ"Ø× Ñ  t°4À6Ç?Á?Ø'ô€Jð (�6×'Ñ'¨T¸Ô>€LØ'�6×'Ñ'°TÔ:€J÷#ñ #ð ò
ó ð
ó7r   rÝ   c                   ó~  — e Zd ZdZ ej
                  dd¬«      Z ej
                  dd¬«      Z ej
                  ddd	d
g¬«      Z ej
                  dd¬«      Z	 ej                  dd¬«      Z ej                  d¬«      Z ej                  ej                   ddej"                  d¬«      Z G d„ d«      Zed„ «       Zy)ÚPlatformSettingsu1   ParamÃ¨tres globaux de la plateforme (singleton).r+   zACX Collections©r(   r.   r   ÚXAFr   Úfr)rú   u	   FranÃ§ais)ÚenÚEnglish)r(   r.   r   é<   zAfrica/DoualaTrÄ   ©r*   r.   rw   Úplatform_settings_updatesrÆ   c                   ó   — e Zd ZdZy)úPlatformSettings.MetazPlatform SettingsNrÉ   r$   r   r   rY   r  ô   s   „ Ø*‰r   rY   c                 ór   — | j                   j                  «       }|s| j                   j                  «       }|S r   rÌ   rÐ   s     r   rÓ   z(PlatformSettings.get_or_create_singleton÷   rÔ   r   N)r   r   r   r«   r   r6   Úplatform_nameÚdefault_currencyÚdefault_languageÚtimezoner9   Úsupport_emailrc   r‰   r\   r   r^   r‡   rÚ   rY   rÛ   rÓ   r$   r   r   r÷   r÷   å   sÑ   „ Ù;à'�v×'Ñ'°3Ð@QÔR€MØ'�v×'Ñ'°1¸eÔDÐØ'�v×'Ñ'°1¸dØ1DÐFWÐ0XôZÐà'�v×'Ñ'°2¸ÔO€HØ(�v×(Ñ(¨t¸RÔ@€MØ+�v×+Ñ+°TÔ:€JØ(�v×(Ñ(Ø× Ñ  t°4Ø—/‘/Ð0Kô€J÷
+ñ +ð ñó ñr   r÷   c                   óü  — e Zd ZdZ ej
                  eej                  d¬«      Z ej                  d¬«      Z
 ej                  d¬«      Z ej                  d¬«      Z ej                  d¬«      Z ej                  d	¬«      Z ej                  d
d¬«      Z ej                  d	¬«      Z ej&                  d	d	¬«      Z ej*                  d	d¬«      Z ej&                  d	¬«      Z ej&                  d	¬«      Zd„ Zy)ÚMailInboxConfigzFConfiguration IMAP d'un tenant pour recevoir les mails de ses clients.Úmail_inbox_configrK   r£   rr   iá  r-   éô  Trß   ÚINBOXrø   râ   rÄ   rþ   rQ   rw   c                 ó<   — d| j                   › d| j                  › d�S )NzIMAP r§   r¨   )Ú	imap_userrU   r   s    r   r   zMailInboxConfig.__str__  s    € Ø�t—~‘~Ð& b¨¯©¨°QÐ7Ð7r   N)r   r   r   r«   r   ÚOneToOneFieldr   r]   rU   r6   Ú	imap_hostr"   Ú	imap_portr  Úimap_passwordr;   Úuse_sslÚmailboxrÙ   rc   Úlast_polled_atr‚   Ú
last_errorrd   r‰   r   r$   r   r   r	  r	    sö   „ ÙPà!ˆV×!Ñ!Ø˜&Ÿ.™.Ð7Jô€Fð !�× Ñ ¨CÔ0€IØ0�×0Ñ0¸Ô=€IØ �× Ñ ¨CÔ0€IØ$�F×$Ñ$°Ô4€MØ!ˆf×!Ñ!¨$Ô/€GØˆf×Ñ¨#°wÔ?€GØ#�×#Ñ#¨DÔ1€IØ)�V×)Ñ)¨t¸4Ô@€NØ!�×!Ñ!¨°bÔ9€JØ%�×%Ñ%°4Ô8€JØ%�×%Ñ%¨tÔ4€Jó8r   r	  c                   ó^  — e Zd ZdZ ej
                  eej                  d¬«      Z ej                  dd¬«      Z
 ej                  d¬«      Z ej                  d¬«      Z ej                  d¬	«      Z ej                   d¬
«      Z ej                   d¬«      Z G d„ d«      Zd„ Zed„ «       Zy)Ú
MailSourceuJ   ExpÃ©diteur autorisÃ© (client / domaine) pour le mail entrant d'un tenant.Úmail_sourcesrK   r£   T©r(   r*   rr   rN   r-   rQ   rw   c                   ó   — e Zd ZdgZddgZy)úMailSource.Meta)rU   Úemail_or_domainÚclient_namer  N©r   r   r   rX   r}   r$   r   r   rY   r  &  s   „ Ø8Ð9ˆØ!Ð#4Ð5‰r   rY   c                 óZ   — | j                   xs | j                  }|› d| j                  › d�S ©Nr§   r¨   )r  r  rU   )r   rè   s     r   r   zMailSource.__str__*  s/   € Ø× Ñ Ò8 D×$8Ñ$8ˆØ�˜˜4Ÿ;™;˜- qÐ)Ð)r   c                 ó   — d| j                   vS )Nú@)r  r   s    r   Ú	is_domainzMailSource.is_domain.  s   € à˜$×.Ñ.Ð.Ð.r   N)r   r   r   r«   r   r\   r   r]   rU   r6   r  r  r‚   Únotesr;   rÙ   rc   rd   r‰   rY   r   Úpropertyr$  r$   r   r   r  r    sµ   „ ÙTàˆV×ÑØ˜&Ÿ.™.°~ô€Fð #�&×"Ñ"¨c¸Ô>€KØ&�f×&Ñ&°#Ô6€OØˆF×Ñ 4Ô(€EØ#�×#Ñ#¨DÔ1€IØ%�×%Ñ%°4Ô8€JØ%�×%Ñ%¨tÔ4€J÷6ñ 6ò*ð ñ/ó ñ/r   r  c                   ó\  — e Zd ZdZ G d„ dej
                  «      Z ej                  eej                  d¬«      Z
 ej                  eej                  ddd¬«      Z ej                  d	d¬
«      Z ej                   «       Z ej                  dd¬«      Z ej                  dd¬«      Z ej(                  d¬«      Z ej(                  d¬«      Z ej.                  «       Z ej                  dej2                  ej4                  ¬«      Z ej                  ej:                  ej                  ddd¬«      Z ej                  dd¬«      Z ej.                  dd¬«      Z  ej                  ej:                  ej                  ddd¬«      Z! ej(                  d¬«      Z" ej.                  dd¬«      Z# ej                  ej:                  ej                  ddd¬«      Z$ ej                  dej                  ddd¬«      Z% ej.                  d¬«      Z& ej.                  d¬«      Z' G d„ d«      Z(d„ Z)y)ÚIncomingMailu)   Mail interceptÃ© via IMAP pour un tenant.c                   ó   — e Zd ZdZdZdZdZy)úIncomingMail.Status)Úpendingz
En attente)Ú
dispatchedu
   DispatchÃ©)Ú	processedu   TraitÃ©)Úrejectedu   RejetÃ©N)r   r   r   ÚPENDINGÚ
DISPATCHEDÚ	PROCESSEDÚREJECTEDr$   r   r   rI   r*  6  s   „ Ø)ˆØ/ˆ
Ø*ˆ	Ø(‰r   rI   Úincoming_mailsrK   TÚmailsrv   r  )r(   r,   r£   r  iæ  rN   rÂ   rP   Úassigned_mailsr
   râ   Údispatched_mailsÚaccepted_mailsz
cases.CaserQ   rw   c                   ó   — e Zd ZdgZy)úIncomingMail.Metaz-received_atNr|   r$   r   r   rY   r9  j  s
   „ Ø"Ð#‰r   rY   c                 óZ   — d| j                   › d| j                  › d| j                  d d › �S )Nr—   r˜   r™   rý   )ra   Ú
from_emailÚsubjectr   s    r   r   zIncomingMail.__str__m  s0   € Ø�4—;‘;�-˜r $§/¡/Ð!2°%¸¿¹ÀSÀbÐ8IÐ7JÐKÐKr   N)*r   r   r   r«   r   r[   rI   r\   r   r]   rU   r  r‡   Úmail_sourcer6   Ú
message_idr9   r;  Ú	from_namer<  r‚   Ú	body_textÚ	body_htmlrc   Úreceived_atr   r/  ra   r   r^   Úassigned_toÚassigned_countryÚdispatched_atÚdispatched_byÚdispatch_noteÚaccepted_atÚaccepted_byÚcaserd   r‰   rY   r   r$   r   r   r(  r(  3  s*  „ Ù3ô)�×#Ñ#ô )ð ˆV×ÑØ˜&Ÿ.™.Ð7Gô€Fð $�&×#Ñ#Ø˜fŸo™o°DÀÐSZô€Kð "�×!Ñ!¨S¸Ô>€JØ"�×"Ñ"Ó$€JØ �× Ñ ¨C°tÔ<€IØˆf×Ñ¨#°TÔ:€GØ �× Ñ  tÔ,€IØ �× Ñ  tÔ,€IØ&�&×&Ñ&Ó(€KàˆV×ÑØ˜vŸ~™~°v·~±~ô€Fð $�&×#Ñ#Ø× Ñ Ø—/‘/¨°DØ%ô€Kð
 (�v×'Ñ'°1¸DÔAÐØ(�F×(Ñ(¨d¸$Ô?€MØ%�F×%Ñ%Ø× Ñ Ø—/‘/¨°DØ'ô€Mð
 %�F×$Ñ$¨4Ô0€Mð '�&×&Ñ&¨D¸Ô=€KØ#�&×#Ñ#Ø× Ñ Ø—/‘/¨°DØ%ô€Kð ˆ6×ÑØ §¡°dÀ$Ø%ô€Dð &�×%Ñ%°4Ô8€JØ%�×%Ñ%¨tÔ4€J÷$ñ $óLr   r(  c                   ó  — e Zd ZdZ ej
                  eej                  d¬«      Z ej                  d¬«      Z
 ej                  dd¬«      Z ej                  d	¬
«      Z ej                  d¬«      Z ej                   d¬«      Zd„ Zy)ÚMailAttachmentu$   PiÃ¨ce jointe d'un mail interceptÃ©.ÚattachmentsrK   r£   rr   r+   Tr  r   r-   zmail_attachments/rs   rQ   c                 ó:   — | j                   › d| j                  › d�S r!  )ÚfilenameÚmail_idr   s    r   r   zMailAttachment.__str__}  s   € Ø—-‘-�  4§<¡< .°Ð2Ð2r   N)r   r   r   r«   r   r\   r(  r]   Úmailr6   rO  Úcontent_typer­   Úsizer…   r†   rc   rd   r   r$   r   r   rL  rL  q  s†   „ Ù.àˆ6×ÑØ §¡¸]ô€Dð  ˆv×Ñ¨3Ô/€HØ#�6×#Ñ#¨s¸$Ô?€LØ&ˆ6×&Ñ&¨qÔ1€DØˆ6×ÑÐ&9Ô:€DØ%�×%Ñ%°4Ô8€Jó3r   rL  c                   ó|  — e Zd ZdZ ej
                  eej                  d¬«      Z ej                  d¬«      Z
 ej                  d¬«      Z ej                  d¬«      Z ej
                  ej                  ej                   ddd	¬
«      Z ej$                  d¬«      Z ej$                  d¬«      Z G d„ d«      Zd„ Zy)ÚTenantCountryuB   Pays dans lequel un tenant opÃ¨re (son pÃ©rimÃ¨tre gÃ©ographique).Ú	countriesrK   r
   rr   rß   Tr-   Úmanaged_countriesrv   rQ   rw   c                   ó   — e Zd ZdgZdgZy)úTenantCountry.Meta)rU   Úcountry_codeÚcountry_nameNr  r$   r   r   rY   rY  –  s   „ Ø5Ð6ˆØ"Ð#‰r   rY   c                 óR   — | j                   › d| j                  › d| j                  › �S )Nr§   u   ) â€” )r[  rZ  rU   r   s    r   r   zTenantCountry.__str__š  s+   € Ø×#Ñ#Ð$ B t×'8Ñ'8Ð&9¸ÀÇÁ¸}ÐMÐMr   N)r   r   r   r«   r   r\   r   r]   rU   r6   rZ  r[  r;   rÙ   r   r^   r‡   Úmanagerrc   rd   r‰   rY   r   r$   r   r   rU  rU  …  s¹   „ ÙLàˆV×ÑØ˜&Ÿ.™.°{ô€Fð $�6×#Ñ#¨qÔ1€LØ#�6×#Ñ#¨sÔ3€LØ#�×#Ñ#¨DÔ1€IØˆf×ÑØ× Ñ Ø—/‘/¨°DØ(ô€Gð
 &�×%Ñ%°4Ô8€JØ%�×%Ñ%¨tÔ4€J÷$ñ $óNr   rU  c                   óø   — e Zd ZdZ ej
                  ej                  ej                  d¬«      Z	 ej
                  e
ej                  d¬«      Z ej
                  eej                  d¬«      Z G d„ d«      Zd„ Zy	)
ÚUserCountryAssignmentuA   Affectation d'un utilisateur Ã  un ou plusieurs pays d'un tenant.Úcountry_assignmentsrK   Úuser_country_assignmentsÚuser_assignmentsc                   ó   — e Zd ZdgZy)úUserCountryAssignment.Meta)rV   rU   ÚcountryNrW   r$   r   r   rY   rd  ¬  s
   „ Ø8Ð9‰r   rY   c                 ó8   — | j                   › d| j                  › �S )Nu    â†’ )rV   re  r   s    r   r   zUserCountryAssignment.__str__¯  s   € Ø—)‘)�˜E $§,¡, Ð0Ð0r   N)r   r   r   r«   r   r\   r   r^   r]   rV   r   rU   rU  re  rY   r   r$   r   r   r_  r_  ž  sy   „ ÙKàˆ6×ÑØ× Ñ Ø—.‘.Ð/Dô€Dð ˆV×ÑØ˜&Ÿ.™.Ð7Qô€Fð  ˆf×ÑØ §¡Ð>Pô€G÷:ñ :ó1r   r_  )Ú	django.dbr   Údjango.contrib.auth.modelsr   Údjango.confr   Útenancy.modelsr   ÚModelr   r&   r>   rf   r‹   rŸ   rë   rí   r³   rÝ   r÷   r	  r  r(  rL  rU  r_  r$   r   r   ú<module>rl     s  ðå Ý 3Ý  Ý !ô%ˆ6�<‰<ô %ô*	%ˆ<ô 	%ô.�—‘ô .ô.�v—|‘|ô ô6Z˜Ÿ™ô Zô2Dˆv�|‰|ô DóT Û ô�—‘ô ô@ 7�6—<‘<ô  7ôF�v—|‘|ô ô<8�f—l‘lô 8ô,/�—‘ô /ô4;L�6—<‘<ô ;Lô|3�V—\‘\ô 3ô(N�F—L‘Lô Nô21˜FŸL™Lõ 1r   