
    Feiy                     h    d dl Z d dlmZ d dlmZ d dlmZ  e       Z G d de      Z G d d      Z	y)	    N)BaseCommand)
connection)get_logentry_modelc                       e Zd ZdZd Zd Zy)Commandz*Deletes all log entries from the database.c                     |j                  dddd dd       |j                  ddd d	d
t        j                  j                         |j                  dddd dd       y )Nz-yz--yes
store_truez%Continue without asking confirmation.yes)actiondefaulthelpdestz-bz--before-datezBFlush all entries with a timestamp before a given date (ISO 8601).before_date)r   r   r   typez-tz
--truncatezTruncate log entry table.truncate)add_argumentdatetimedatefromisoformat)selfparsers     h/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/auditlog/management/commands/auditlogflush.pyadd_argumentszCommand.add_arguments   s    8 	 	
 	U,, 	 	
 	, 	 	
    c                    |d   }|d   }|d   }|r|r| j                   j                  d       y |Qd}|d| d}| j                   j                  |       t        d      j                         j	                         }|d	k(  }|s| j                   j                  d
       y |sdt
        j                  j                         }||j                  |      }|j                         \  }	}
| j                   j                  d|	z         y t        j                  }t        j                  }t
        j                  j                  }t        j!                  |      s| j                   j                  d|z         y t        j"                         5 }t        j%                  |      }|j'                  |       d d d        | j                   j                  d       y # 1 sw Y   %xY w)Nr
   r   r   zHTruncate deletes all log entries and can not be passed with before-date.z9This action will clear all log entries from the database.z.This action will clear all log entries before z from the database.z*Are you sure you want to continue? [y/N]: yzAborted.)timestamp__date__ltzDeleted %d objects.z0Database %s does not support truncate statement.zTruncated log entry table.)stdoutwriteinputlowerstripLogEntryobjectsallfilterdeleter   vendordisplay_name_metadb_tableTruncateQuerysupport_truncate_statementcursorto_sqlexecute)r   argsoptionsanswerr   beforewarning_messageresponseentriescount_database_vendordatabase_display_name
table_namer.   querys                   r   handlezCommand.handle(   s   :&'KKZ >K  !$RSYRZZm"nKKo.BCIIKQQS  _FKKj)&&**,G!!..V.D~~'HE1KK3e;<(//O$.$;$;!!00J ;;OL!!F+, ""$ &%,,Z8u%& KK:;& &s   	'GGN)__name__
__module____qualname__r   r   r>    r   r   r   r      s    7D
4,<r   r   c                   <    e Zd ZdZedefd       Zedefd       Z	y)r,   )
postgresqlmysqloracle	microsoftreturnc                     || j                   v S )N)SUPPORTED_VENDORS)clsr:   s     r   r-   z(TruncateQuery.support_truncate_statementZ   s    #"7"777r   c                     d|  dS )NzTRUNCATE TABLE ;rB   )r<   s    r   r/   zTruncateQuery.to_sql^   s     A..r   N)
r?   r@   rA   rJ   classmethodboolr-   staticmethodstrr/   rB   r   r   r,   r,   W   s<    F8D 8 8 /c / /r   r,   )
r   django.core.management.baser   	django.dbr   auditlogr   r#   r   r,   rB   r   r   <module>rU      s2     3   'I<k I<X	/ 	/r   