
    hm                         S SK JrJr  S SKJr  S SKJr  S SKJr  S SKJ	r	  SSK
JrJrJr  SrS	rS\S
\4S jrS\S\S\S\\   S\\   4
S jrS\4S jrS\S\4S jrS\4S jrS\4S jrS\4S jrg)    )BackgroundTasksHTTPException)ObjectId)datetime)Optional)str_to_objectid   )TicketCreateTicketUpdateTicketReplyCreateticketticket_repliesbackground_tasksc                     U[            nU R                  5       n[        R                  " 5       US'   UR	                  U5      n[        UR                  5      US'   U$ Ncreated_dateidCOLLECTION_NAMEdictr   utcnow
insert_onestrinserted_id)r   r   dbtickets_collectionticket_datainserteds         GC:\Suresh\moveshuttle\MDcreated\moveengine\app\v1\services\cx\ticket.pycreate_ticket_servicer       sT    O,++-K"*//"3K!,,[9HH001K    
account_idskiplimitqaccount_viewc                    U[            n0 nUR                  S5      S:w  d  US:X  a  XS'   U(       a  USS.n	SU	0SU	0SU	0/US	'   [        UR                  U5      R	                  U5      R                  U5      5      n
UR                  U5      nU
 H^  n[        US
   5      US'   UR                  S
S 5        SU;   d  M.  [        US   [        5      (       d  MH  US   R                  5       US'   M`     XS.$ )Nroles   r"   i)z$regexz$optionssubject	questingsdescriptionz$or_id	ticket_idr   )total_counttickets)r   getlistfindr#   r$   count_documentsr   pop
isinstancer   	isoformat)r"   r#   r$   r%   r&   r   current_userr   queryregex_queryr1   r0   r   s                r   get_tickets_servicer<      s	   O,E A%):(l!"4$+&K(
e %**5166t<BB5IJG$44U;K!&-0{

5$V#
6.3I8(T(T%+N%;%E%E%GF>"	  ';;r!   r/   c                     U[            R                  S[        U 5      05      nU(       a%  [        US   5      US'   UR	                  SS 5        U$ g )Nr.   r/   )r   find_oner   r   r6   )r/   r   r   s      r   read_ticket_servicer?   3   sM     ))5/)2L*MNF!&-0{

5$r!   r   c                    U[            nUR                  5       R                  5        VVs0 s H  u  pEUc  M
  XE_M     nnnUR                  S[	        U 5      0SU05      nUR
                  S:X  a
  [        SSS9eUR                  S[	        U 5      05      n[        US   5      US'   UR                  SS 5        U$ s  snnf )Nr.   z$setr     Ticket not foundstatus_codedetailr   )
r   r   items
update_oner   matched_countr   r>   r   r6   )	r/   r   r   r   kvupdate_dataresultupdateds	            r   update_ticket_servicerN   <   s    O,$/$4$4$6$<$<$>P$>DA!414$>KP**		*+	F
 q 4FGG ))5/)2L*MNG'GDMKKtN Qs
   	B;B;c                     U[            nUR                  S[        U 5      05      nU(       d
  [        SSS9eUR	                  S[        U 5      05        [        US   5      US'   UR                  SS 5        U$ )Nr.   rA   rB   rC   r   )r   r>   r   r   
delete_oner   r6   )r/   r   r   r   s       r   delete_ticket_servicerQ   N   su    O,((%1K)LMF4FGG!!5/)*D"EFve}%F4L
JJudMr!   payloadc                     U[            nU R                  5       n[        R                  " 5       US'   UR	                  U5      n[        UR                  5      US'   U$ r   r   )rR   r   
collectiondatar   s        r   create_ticket_reply_servicerV   [   sQ    O$J<<>D#??,D$$T*HX))*DJKr!   c                 ^   U[            nSU 0n[        UR                  U5      R                  SS5      5      n[	        U5      nU Hb  n[        US   5      US'   UR                  SS 5        [        UR                  S5      [        5      (       d  ML  US   R                  5       US'   Md     XTS.$ )Nr/   r   r)   r.   reply_id)r0   replies)r   r3   r4   sortlenr   r6   r7   r2   r   r8   )r/   r   rT   r:   rY   r0   replys          r   get_ticket_replies_servicer]   f   s    O$J)$E:??5)..~qABGg,Ke-j		%eii/::$).$9$C$C$EE.!	  ';;r!   N)fastapir   r   bsonr   r   typingr   app.v1.libraries.objectr   models.cx.ticketr
   r   r   r   COLLECTION_NAME_REPLYr    r   intr<   r?   rN   rQ   rV   r]    r!   r   <module>rf      s    2    3 L L( 	, 	/ 	<C <s <3 <8C= <`hil`m <63 S | $
S 
): <# <r!   