
    	]j/                         d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z
  ej                  e      Z G d dej                        Z G d d	ej                        Zy)
    N)serializers)models)	JSONField)gettext_lazyc                   b   e Zd Z edded      Z ej                  ddej                  dd      Z	 ej                  d	d
      ZdZdZdZdZdZedfedfedfedfedffZ ej$                  dedd      Z ej(                   ed      dd      Z ej(                   ed      dd      Zd Zy) AsyncMigrationStatusmetaTzNMeta is for any params for migrations, e.g.: project, filter or error message.)nulldefault	help_textzprojects.ProjectasyncmigrationstatuszProject ID for this migration)related_name	on_deleter
   r   migration_namezMigration name)r   	SCHEDULEDSTARTEDzIN PROGRESSFINISHEDERRORz+Migration is scheduled but not yet started.zMigration is started or queued.z:Migration is in progress. Check meta for job_id or status.z!Migration completed successfully.z:Migration completed with errors. Check meta for more info.d   N)
max_lengthchoicesr
   r   z
created atzCreation time)auto_now_addr   z
updated atzLast updated time)auto_nowr   c                     d| j                    d| j                  z   | j                  rdt        | j                        z   z   S dz   S )Nz(id=z) z at project  )idnameprojectstr)selfs    B/root/env/lib/python3.12/site-packages/label_studio/core/models.py__str__zAsyncMigrationStatus.__str__/   sC    dggYb!DII-W[WcWc#dllBS1Sllikll    )__name__
__module____qualname__r   dictr	   r   
ForeignKeyCASCADEr   	TextFieldr   STATUS_SCHEDULEDSTATUS_STARTEDSTATUS_IN_PROGRESSSTATUS_FINISHEDSTATUS_ERRORSTATUS_CHOICES	CharFieldstatusDateTimeField_
created_at
updated_atr"    r#   r!   r   r      s    b	D  f+..1G 6,8HID"N& OL	HI	:;	YZ	=>	STN Vn4Y]^F%%%aoDTcdJ%%%aoPcdJmr#   r   c                      e Zd ZdZ ej
                  d      Z ej                  d      Z e	dd      Z
 ej                  dd      Z ej                  d      Z ej                  d      Z ej                  dd      Z ej                  dd      Z ej                  dd      Zedd
       Zed	ed    fd       Zy)
DeletedRowz
    Model to store deleted rows of other models.
    Useful for using as backup for deleted rows, in case we need to restore them.
    i   )r   T)r
   )r
   blank)r   )r   returnc                     t        j                  t        j                  d|g            d   }|d   }t	        |d         } | j
                  j                  d|||d|S )Njsonr   modelpkr>   row_iddatar7   )r=   loadsr   	serializeintobjectscreate)clsr>   kwargsrB   rA   s        r!   serialize_and_createzDeletedRow.serialize_and_createE   s]    zz+//@A!DWT$Z!s{{!!Rf4R6RRr#   c           
          t        j                  t        j                  d|            }g }|D ]0  }|d   }t	        |d         }|j                   | d|||d|       2 | j                  j                  |      S )Nr=   r>   r?   r@   r7   )r=   rC   r   rD   rE   appendrF   bulk_create)rH   querysetrI   serialized_databulk_objectsrB   r>   rA   s           r!   bulk_serialize_and_createz$DeletedRow.bulk_serialize_and_createL   s    **[%:%:68%LM# 	VDMEd_F T%T TV TU	V {{&&|44r#   N)r;   r9   )r$   r%   r&   __doc__r   r1   r>   IntegerFieldrA   r   rB   r*   reasonr3   r5   r6   organization_id
project_iduser_idclassmethodrJ   listrQ   r7   r#   r!   r9   r9   3   s    
 F-E V  d+F$d+DV4t4F%%%48J%%%t4J *f))t4@O$$$$d;J!f!!t48GS S 5d<>P 5 5r#   r9   )r=   loggingdjango.corer   	django.dbr   django.db.modelsr   django.utils.translationr   r4   	getLoggerr$   loggerModelr   r9   r7   r#   r!   <module>rb      sL      #  & 6			8	$$m6<< $mN!5 !5r#   