o
    QDi                     @   sZ   d dl mZ d dlmZ edddgedZedddgedZed	d
dgedZdd ZdS )    )Counter)	NAMESPACEdjango_model_inserts_totalz%Number of insert operations by model.model)	namespacedjango_model_updates_totalz%Number of update operations by model.django_model_deletes_totalz%Number of delete operations by model.c                    sB   t   t  t  G  fddd}d  d|_|S )zReturns a mixin for models to export counters for lifecycle operations.

    Usage:
      class User(ExportModelOperationsMixin('user'), Model):
          ...
    c                       s:   e Zd Z fddZ fddZ fddZ  ZS )z)ExportModelOperationsMixin.<locals>.Mixinc                        t   t j|i |S N)model_insertslabelsincsuper
_do_insertselfargskwargs	__class__
model_name Q/var/www/Datamplify/venv/lib/python3.10/site-packages/django_prometheus/models.pyr   )      z4ExportModelOperationsMixin.<locals>.Mixin._do_insertc                    r	   r
   )model_updatesr   r   r   
_do_updater   r   r   r   r   -   r   z4ExportModelOperationsMixin.<locals>.Mixin._do_updatec                    r	   r
   )model_deletesr   r   r   deleter   r   r   r   r   1   r   z0ExportModelOperationsMixin.<locals>.Mixin.delete)__name__
__module____qualname__r   r   r   __classcell__r   r   )r   r   Mixin(   s    r#   zExportModelOperationsMixin('z'))r   r   r   r   r    )r   r#   r   r"   r   ExportModelOperationsMixin   s   
	

r$   N)prometheus_clientr   django_prometheus.confr   r   r   r   r$   r   r   r   r   <module>   s*    