
    i                     \    d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	  G d d      Z
y)	    N)Path)datetime)settings)generate_ticket_no)TicketCreateRequestc                   T    e Zd ZddZddZdefdZdeddfdZdede	fd	Z
defd
Zy)TicketServicereturnNc                 `    t        t        j                        | _        | j	                          y N)r   r   tickets_file	file_path_ensure_fileselfs    O/home/techsaathi/public_html/it_helpdesk_chatbot/app/services/ticket_service.py__init__zTicketService.__init__
   s     h334    c                    | j                   j                  j                  dd       | j                   j                         s:t	        | j                   dd      5 }t        j                  g |d       d d d        y y # 1 sw Y   y xY w)NT)parentsexist_okwutf-8encoding   indent)r   parentmkdirexistsopenjsondumpr   fs     r   r   zTicketService._ensure_file   sp    ##D4#@~~$$&dnncG< +		"a*+ + '+ +s   A==Bc                     t        | j                  dd      5 }t        j                  |      cd d d        S # 1 sw Y   y xY w)Nrr   r   )r"   r   r#   loadr%   s     r   _read_ticketszTicketService._read_tickets   s4    $..#8 	 A99Q<	  	  	 s	   8Aticketsc                     t        | j                  dd      5 }t        j                  ||d       d d d        y # 1 sw Y   y xY w)Nr   r   r   r   r   )r"   r   r#   r$   )r   r+   r&   s      r   _write_ticketszTicketService._write_tickets   s9    $..#8 	,AIIgq+	, 	, 	,s	   ;Apayloadc                 d   | j                         }t               }||j                  |j                  |j                  |j
                  |j                  |j                  |j                  dt        j                         j                         d
}|j                  |       | j                  |       |S )NOpen)
	ticket_no	user_namesubjectdescriptionissue_categoryissue_subcategorydevice_nameprioritystatus
created_at)r*   r   r2   r3   r4   r5   r6   r7   r8   r   now	isoformatappendr-   )r   r.   r+   r1   records        r   create_ticketzTicketService.create_ticket   s    $$&&(	 # **"..%44!(!:!:"..((",,.224
 	vG$r   c                 "    | j                         S r   )r*   r   s    r   list_ticketszTicketService.list_tickets2   s    !!##r   )r
   N)__name__
__module____qualname__r   r   listr*   r-   r   dictr?   rA    r   r   r	   r	   	   sK    + t  ,d ,t ,%8 T ,$d $r   r	   )r#   pathlibr   r   app.core.configr   app.utils.helpersr   app.schemas.ticketr   r	   rG   r   r   <module>rL      s!       $ 0 2*$ *$r   