o
    h
                     @   s   d dl mZmZ d dlmZ d dlmZ d dlmZmZ G dd deZ	G dd de	Z
G d	d
 d
e	ZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZdS )    )	BaseModelField)ObjectId)datetime)OptionalListc                   @   s   e Zd ZU edddZeed< edddZeed< edddZeed< edd	dZ	eed
< edddZ
eed< edddZeed< dS )
TicketBase.z Subject of the ticket; required.descriptionsubjectz4Additional ticket-related queries or tags; required.	questingsz7Detailed description of the issue or request; required.r
   z%Identifier for the account; required.
account_idz<Initial or system-generated comment on the ticket; required.commentz;Current status of the ticket (e.g., open, pending, closed).statusN)__name__
__module____qualname__r   r   str__annotations__r   r
   r   r   r    r   r   3/var/www/html/moveengine/app/v1/models/cx/ticket.pyr      s   
 r   c                   @      e Zd ZdS )TicketCreateNr   r   r   r   r   r   r   r          r   c                   @   8   e Zd ZU eed< eejdZeed< G dd dZ	dS )Ticketiddefault_factorycreated_datec                   @   s   e Zd ZdZeeiZdZdS )zTicket.ConfigTN)r   r   r   arbitrary_types_allowedr   r   json_encodersallow_population_by_field_namer   r   r   r   Config   s    r$   N
r   r   r   r   r   r   r   utcnowr    r$   r   r   r   r   r         
 r   c                   @   sN   e Zd ZU eed< eed< eed< eed< eed< eed< eed< eed< d	S )
TicketResponse	ticket_idr   r   r
   r   r   r   r    Nr   r   r   r   r   r   r   r   r   r   r(      s   
 r(   c                   @   "   e Zd ZU eed< ee ed< dS )TicketResponseListtotal_countticketsN)r   r   r   intr   r   r(   r   r   r   r   r,   )      
 r,   c                   @   sJ   e Zd ZU ee ed< ee ed< ee ed< ee ed< ee ed< dS )TicketUpdater   r   r
   r   r   N)r   r   r   r   r   r   r   r   r   r   r1   .   s   
 r1   c                   @   sr   e Zd ZU edddZeed< edddZeed< edddZeed< edd	dZ	eed
< edddZ
eed< dS )TicketReplyBase.zUser sending the replyr	   user_idzRelated ticket IDr)   zAccount ID of the userr   zReply contentr
   zReply status (e.g., sent, seen)r   N)r   r   r   r   r3   r   r   r)   r   r
   r   r   r   r   r   r2   6   s   
 r2   c                   @   r   )TicketReplyCreateNr   r   r   r   r   r4   =   r   r4   c                   @   r   )TicketReplyr   r   r    c                   @   s    e Zd ZdZeeiZdZdZdS )zTicketReply.ConfigTN)	r   r   r   r!   r   r   r"   populate_by_namefrom_attributesr   r   r   r   r$   D   s
    r$   Nr%   r   r   r   r   r5   @   r'   r5   c                   @   sF   e Zd ZU eed< eed< eed< eed< eed< eed< eed< dS )	TicketReplyResponsereply_idr3   r)   r   r
   r   r    Nr*   r   r   r   r   r8   K   s   
 r8   c                   @   r+   )TicketReplyResponseListr-   repliesN)r   r   r   r/   r   r   r8   r   r   r   r   r:   U   r0   r:   N)pydanticr   r   bsonr   r   typingr   r   r   r   r   r(   r,   r1   r2   r4   r5   r8   r:   r   r   r   r   <module>   s    	

