
    >Tf                         d dl mZ d dlmZ d dlmZ d dlmZ d dlT d dl	m
Z
 d dlmZmZ d dlmZ d d	lmZ d d
lmZ dZ G d de          ZdS )    )ObjectDoesNotExist)extend_schema_field)serializers)
ObjectType)*)JournalEntry)ChoiceFieldContentTypeField)NetBoxModelSerializer)User)get_serializer_for_model)JournalEntrySerializerc                   p    e Zd Z eej                                                  Z ej	        d          Z
 ej        dej                                        d ej                              Z eed          Z G d d          Z fd	Z e ej        d
                    d             Z xZS )r   )querysetT)	read_onlyF)
allow_nullr   requireddefault)choicesr   c                       e Zd ZeZg dZdZdS )JournalEntrySerializer.Meta)idurldisplay_urldisplayassigned_object_typeassigned_object_idassigned_objectcreated
created_bykindcommentstagscustom_fieldslast_updated)r   r   r   r   N)__name__
__module____qualname__r   modelfieldsbrief_fields     G/var/www/html/netbox-4.1.3/netbox/extras/api/serializers_/journaling.pyMetar   "   s+        
 
 
 ;r-   r/   c                    | j         s`d|v r\d|v rX	 |d                             |d                    n4# t          $ r' t          j        d|d          d|d                    w xY wt                                          |          S )Nr   r   )r   zInvalid assigned_object: z ID )nestedget_object_for_this_typer   r   ValidationErrorsupervalidate)selfdata	__class__s     r.   r5   zJournalEntrySerializer.validate*   s     { 	5==BVZ^B^B^+,EENbIcEdddd%   !1n5K0LnnRVWkRlnn  
 ww%%%s	   "5 1A&)r   c                     t          |j                                                  }d| j        d         i} ||j        d|          j        S )NrequestT)r1   context)r   r   model_classr;   r   r7   )r6   instance
serializerr;   s       r.   get_assigned_objectz*JournalEntrySerializer.get_assigned_object7   sL    -h.K.W.W.Y.YZZ
dl956z(24QQQVVr-   )r&   r'   r(   r
   r   objectsallr   r   SerializerMethodFieldr   PrimaryKeyRelatedFieldr   CurrentUserDefaultr    r	   JournalEntryKindChoicesr!   r/   r5   r   	JSONFieldr?   __classcell__)r8   s   @r.   r   r      s=       ++#''))   8k7$GGGO33!!##..00	  J ;'  D
; ; ; ; ; ; ; ;& & & & & ..$???@@W W A@W W W W Wr-   r   N)django.core.exceptionsr   drf_spectacular.utilsr   rest_frameworkr   core.modelsr   extras.choicesextras.modelsr   netbox.api.fieldsr	   r
   netbox.api.serializersr   users.modelsr   utilities.apir   __all__r   r,   r-   r.   <module>rS      s    5 5 5 5 5 5 5 5 5 5 5 5 & & & & & & " " " " " "     & & & & & & ; ; ; ; ; ; ; ; 8 8 8 8 8 8       2 2 2 2 2 2
)W )W )W )W )W2 )W )W )W )W )Wr-   