
    xh                         S SK Jr  S SKJr  S SKJr   " S S\R                  5      r " S S\R                  5      r	 " S S	\R                  5      r
 " S
 S\\R                  5      rg)    )models)PostgresPartitionedModel)PostgresPartitioningMethodc                   J    \ rS rSr\R
                  " SSS9r " S S5      rSrg)CreatedModel   T)auto_now_adddb_indexc                       \ rS rSrSrSrg)CreatedModel.Meta	   T N__name__
__module____qualname____firstlineno__abstract__static_attributes__r       /code/glitchtip/base_models.pyMetar   	       r   r   r   N)	r   r   r   r   r   DateTimeFieldcreatedr   r   r   r   r   r   r      s    ""tDG r   r   c                   2   ^  \ rS rSrSU 4S jjrS rSrU =r$ )SoftDeleteManager   c                 .   > [         TU ]  5         Xl        g )N)super__init__
is_deleted)selfr"   	__class__s     r   r!   SoftDeleteManager.__init__   s    $r   c                     [         R                  " U R                  U R                  S9R	                  U R
                  S9$ )N)usingr"   )r   QuerySetmodel_dbfilterr"   )r#   s    r   get_querysetSoftDeleteManager.get_queryset   s5    tzz:AA B 
 	
r   r(   )F)r   r   r   r   r!   r-   r   __classcell__r$   s   @r   r   r      s    %
 
r   r   c                      ^  \ rS rSrSr\R                  " SS9r\R                  " 5       r	\
" 5       r\
" SS9r " S S5      rS	 rU 4S
 jrSrU =r$ )SoftDeleteModel   zWBased on https://tomisin.dev/blog/implementing-soft-delete-in-django-an-intuitive-guideF)defaultTr(   c                       \ rS rSrSrSrg)SoftDeleteModel.Meta    Tr   Nr   r   r   r   r   r6       r   r   r   c                 2    SU l         U R                  S/S9  g)z1Mark the record as deleted instead of deleting itTr"   )update_fieldsN)r"   save)r#   argskwargss      r   deleteSoftDeleteModel.delete#   s    			/r   c                 &   > [         TU ]  " U0 UD6  g)z#Delete the record from the databaseN)r    r=   )r#   r;   r<   r$   s      r   force_deleteSoftDeleteModel.force_delete(   s    ''r   )r   r   r   r   __doc__r   BooleanFieldr"   Managerobjectsr   undeleted_objectsmarked_for_deletionr   r=   r@   r   r/   r0   s   @r   r2   r2      sO    a$$U3JnnG)++t< 0
( (r   r2   c                       \ rS rSrSr\R                  " 5       r\R                  " 5       r	 " S S5      r
 " S S5      rSrg)	AggregationModel-   zd
Partitioned base model for storing aggregate statistics in such as per
time delta counts of events
c                       \ rS rSrSrSrg)AggregationModel.Meta6   Tr   Nr   r   r   r   r   rL   6   r   r   r   c                   2    \ rS rSr\R
                  rS/rSrg)!AggregationModel.PartitioningMeta9   dater   N)	r   r   r   r   r   RANGEmethodkeyr   r   r   r   PartitioningMetarO   9   s    +11hr   rU   r   N)r   r   r   r   rB   r   r   rQ   PositiveIntegerFieldcountr   rU   r   r   r   r   rI   rI   -   s9    
 !D'')E  r   rI   N)	django.dbr   psql_partition.modelsr   psql_partition.typesr   Modelr   rD   r   r2   rI   r   r   r   <module>r\      sQ     : ;6<< 
 
(fll (*/ r   