
    	]j                         d dl mZ d dlmZ  G d de      Z G d dej
                        Z G d dej
                        Z G d	 d
ej
                        Zy)    )serializers)UserSerializerc                   6    e Zd Z G d dej                        Zy)TriggeredBySerializerc                       e Zd ZddgZy)TriggeredBySerializer.MetaidemailN)__name__
__module____qualname__fields     F/root/env/lib/python3.12/site-packages/label_studio/fsm/serializers.pyMetar      s    r   r   N)r   r   r   r   r   r   r   r   r   r      s    !~"" !r   r   c                   F    e Zd ZdZ ej
                  d      Z ej                  d      Z ej                  dd      Z	 ej                  dd      Z
 edd      Z ej                  dd      Z ej                  d      Z ej                   d      Z fdZ xZS )StateModelSerializerz
    Serializer for FSM state models.

    Uses Serializer instead of ModelSerializer because BaseState is abstract.
    Works with any concrete state model that inherits from BaseState.
    T	read_onlyr   
allow_nullc                     t         |   |      }| j                  j                  d      }|r7t	        |d      r+|j
                  }t        |dd      r|j                  dd       |S )zH
        Override to exclude triggered_by field for annotators.
        requestuseris_annotatorFtriggered_byN)superto_representationcontextgethasattrr   getattrpop)selfinstancedatar   r   	__class__s        r   r   z&StateModelSerializer.to_representation   s\     w(2,,""9-ww/<<Dt^U3.r   )r   r   r   __doc__r   	UUIDFieldr	   	CharFieldstateprevious_statetransition_namer   r   reasonDateTimeField
created_at	JSONFieldcontext_datar   __classcell__)r(   s   @r   r   r   
   s     
			.B!K!!D1E*[**TdKN+k++dtLO(4DIL"[""TdCF***T:J(;((48L r   r   c                   Z    e Zd ZdZ ej
                         Z ej                  dd      Zy)%FSMTransitionExecuteRequestSerializerzH
    Request body serializer for executing a manual FSM transition.
    FT)requiredr   N)	r   r   r   r)   r   r+   r.   	DictFieldtransition_datar   r   r   r6   r6   *   s-     ,k++-O+k++UtLOr   r6   c                   r    e Zd ZdZ ej
                  d      Z ej                  dd      Z e	dd      Z
y)&FSMTransitionExecuteResponseSerializerzB
    Response serializer for manual FSM transition execution.
    Tr   r   N)r   r   r   r)   r   BooleanFieldsuccessr+   	new_stater   state_recordr   r   r   r;   r;   3   s;     'k&&6G%%%FI'$4HLr   r;   N)	rest_frameworkr   users.serializersr   r   
Serializerr   r6   r;   r   r   r   <module>rC      sR    & ,!N !
;11 @MK,B,B MI[-C-C Ir   