§
    ®‰=j  ã                   óX   — d Z ddlmZ ddlmZmZmZ ddlmZ dZdZ	 G d„ d¦  «        Z
d	S )
zHSuppression logique : statut + date_suppression (pas de DELETE en base).é    )Údatetime)ÚColumnÚDateTimeÚString)Údeclared_attrÚactifÚsupprimec                   ó²   — e Zd ZdZed„ ¦   «         Zed„ ¦   «         Zedefd„¦   «         Z	edefd„¦   «         Z
dd„Zdd	„Zed
„ ¦   «         Zed„ ¦   «         ZdS )ÚSoftDeleteMixinz?Mixin pour archiver les enregistrements au lieu de les effacer.c                 óL   — t          t          d¦  «        t          dd¬¦  «        S )Né   FT)ÚdefaultÚnullableÚindex)r   r   ÚSTATUT_ACTIF©Úclss    ú+/var/www/stessy.org/papa/app/soft_delete.pyÚstatutzSoftDeleteMixin.statut   s   € å•f˜R‘j”j­,ÀÈdÐSÑSÔSÐSó    c                 ó.   — t          t          d¬¦  «        S )NT)r   )r   r   r   s    r   Údate_suppressionz SoftDeleteMixin.date_suppression   s   € å•h¨Ð.Ñ.Ô.Ð.r   Úreturnc                 ó"   — | j         t          k    S ©N)r   ÚSTATUT_SUPPRIME©Úselfs    r   Úest_supprimezSoftDeleteMixin.est_supprime   s   € àŒ{�oÒ-Ð-r   c                 ó"   — | j         t          k    S r   )r   r   r   s    r   Úest_actif_enregistrementz(SoftDeleteMixin.est_actif_enregistrement   s   € àŒ{�lÒ*Ð*r   Nc                 óN   — t           | _        t          j        ¦   «         | _        d S r   )r   r   r   Úutcnowr   r   s    r   Úmarquer_supprimez SoftDeleteMixin.marquer_supprime   s   € Ý%ˆŒÝ (¤Ñ 1Ô 1ˆÔÐÐr   c                 ó,   — t           | _        d | _        d S r   )r   r   r   r   s    r   Ú	restaurerzSoftDeleteMixin.restaurer"   s   € Ý"ˆŒØ $ˆÔÐÐr   c                 óR   — | j                              | j        t          k    ¦  «        S r   )ÚqueryÚfilterr   r   r   s    r   Úquery_actifszSoftDeleteMixin.query_actifs&   s   € àŒy×Ò ¤
­lÒ :Ñ;Ô;Ð;r   c                 óR   — | j                              | j        t          k    ¦  «        S r   )r(   r)   r   r   r   s    r   Úquery_archiveszSoftDeleteMixin.query_archives*   s   € àŒy×Ò ¤
­oÒ =Ñ>Ô>Ð>r   )r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   ÚpropertyÚboolr   r!   r$   r&   Úclassmethodr*   r,   © r   r   r   r      sý   € € € € € ØIÐIàðTð Tñ „]ðTð ð/ð /ñ „]ð/ð ð.˜dð .ð .ð .ñ „Xð.ð ð+¨$ð +ð +ð +ñ „Xð+ð2ð 2ð 2ð 2ð%ð %ð %ð %ð ð<ð <ñ „[ð<ð ð?ð ?ñ „[ð?ð ?ð ?r   r   N)r0   r   Ú
sqlalchemyr   r   r   Úsqlalchemy.ext.declarativer   r   r   r   r4   r   r   ú<module>r7      s‰   ðØ NÐ NØ Ð Ð Ð Ð Ð à /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4à€Ø€ð!?ð !?ð !?ð !?ð !?ñ !?ô !?ð !?ð !?ð !?r   