o
    h|                     @   s  d dl mZmZmZmZmZ d dlmZ d dlm	Z	m
Z
 d dlmZ ddlmZmZmZmZmZmZmZmZmZ ddlmZ ddlmZmZmZmZmZmZm Z  e Z!e!j"d	ed
eej#fdededej$fddZ%e!j&ded
d dddeej#eefde'de'de
e( de
e' dej$de)fddZ*e!j&ded
eej#fde(dej$fddZ+e!j,ded
eej#fde(dedej$fdd Z-e!j.ded
ed!d"d#eej#fde(dej$fd$d%Z/e!j"d&ed
eej#fd'edej$fd(d)Z0e!j&d*ed
eej#fde(dej$fd+d,Z1dS )-    )	APIRouterDependsHTTPExceptionBackgroundTasksPath)JSONResponse)ListOptional)database   )	Ticket
TicketBaseTicketCreateTicketUpdateTicketResponseListTicketResponseTicketReplyTicketReplyResponseListTicketReplyCreate)get_current_userdetails)create_ticket_serviceget_tickets_serviceread_ticket_serviceupdate_ticket_servicedelete_ticket_servicecreate_ticket_reply_serviceget_ticket_replies_service/)response_modelticketbackground_tasksdbc                 C      t | ||S )z
    Create a new ticket.
    )r   )r   r    r!    r#   4/var/www/html/moveengine/app/v1/routers/cx/ticket.pycreate_ticket_endpoint      	r%   z/list/
   Nskiplimitqaccount_viewcurrent_userc                 C   s.   t d t | |d}t|| |||||S )z"
    List tickets by account.
    7current_usercurrent_usercurrent_user4545454545454545455
account_id)printgetr   )r(   r)   r*   r+   r!   r,   r.   r#   r#   r$   list_tickets"   s   
r1   z/{ticket_id}	ticket_idc                 C   s   t | |}|stddd|S )z&
    Get a specific ticket by ID.
    i  zTicket not found)status_codedetail)r   r   )r2   r!   r   r#   r#   r$   read_ticket3   s   
r5   ticket_datac                 C   r"   )z 
    Update a ticket by ID.
    )r   )r2   r6   r!   r#   r#   r$   update_ticket@   r&   r7   .zThe ID of the ticket)descriptionc                 C   
   t | |S )z 
    Delete a ticket by ID.
    )r   r2   r!   r#   r#   r$   delete_ticketK      
r;   z/replypayloadc                 C   r9   )z+
    Add a reply to a specific ticket.
    )r   )r=   r!   r#   r#   r$   add_ticket_replyV   r<   r>   z/reply/list/{ticket_id}c                 C   r9   )z-
    Get all replies for a given ticket.
    )r   r:   r#   r#   r$   get_replies_for_ticket`   r<   r?   )2fastapir   r   r   r   r   fastapi.responsesr   typingr   r	   app.dbr
   models.cx.ticketr   r   r   r   r   r   r   r   r   dependencies.authr   services.cx.ticketr   r   r   r   r   r   r   routerpostget_mongo_dbMongoDBr%   r0   intstrdictr1   r5   putr7   deleter;   r>   r?   r#   r#   r#   r$   <module>   s    ,$




	