Ë
    ®‰=j  ã                   óP   — 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
y	)
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y)ÚSoftDeleteMixinz?Mixin pour archiver les enregistrements au lieu de les effacer.c                 ó:   — t        t        d«      t        dd¬«      S )Né   FT)ÚdefaultÚnullableÚindex)r   r   ÚSTATUT_ACTIF©Úclss    úY:\papa\app\soft_delete.pyÚstatutzSoftDeleteMixin.statut   s   € ä”f˜R“j¬,ÀÈdÔ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                 óL   — t         | _        t        j                  «       | _        y r   )r   r   r   Úutcnowr   r   s    r   Úmarquer_supprimez SoftDeleteMixin.marquer_supprime   s   € Ü%ˆŒÜ (§¡Ó 1ˆÕr   c                 ó(   — t         | _        d | _        y r   )r   r   r   r   s    r   Ú	restaurerzSoftDeleteMixin.restaurer"   s   € Ü"ˆŒØ $ˆÕr   c                 óZ   — | j                   j                  | j                  t        k(  «      S r   )ÚqueryÚfilterr   r   r   s    r   Úquery_actifszSoftDeleteMixin.query_actifs&   s    € à�y‰y×Ñ §
¡
¬lÑ :Ó;Ð;r   c                 óZ   — | j                   j                  | j                  t        k(  «      S r   )r(   r)   r   r   r   s    r   Úquery_archiveszSoftDeleteMixin.query_archives*   s    € à�y‰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àñTó ðTð ñ/ó ð/ð ð.˜dò .ó ð.ð ð+¨$ò +ó ð+ó2ó%ð ñ<ó ð<ð ñ?ó ñ?r   r   N)r0   r   Ú
sqlalchemyr   r   r   Úsqlalchemy.ext.declarativer   r   r   r   r4   r   r   Ú<module>r7      s(   ðÙ NÝ ç /Ñ /Ý 4à€Ø€÷!?ò !?r   