o
    ̿Si                     @   sZ  d dl mZmZmZmZ d dlmZ ddlmZ ddl	m
Z
mZmZ ddlmZmZmZmZmZ ddlmZ ed	d
gdZejdedeejeefde
defddZejdee deejeefddZejdedeejeefdefddZejdedeejeefdededefddZedeejfdefddZdS )    )	APIRouterDependsHTTPExceptionBackgroundTasks)List   )database   )SaaSInvoiceCreateSaaSInvoiceDBSaaSInvoiceUpdate)create_invoice_servicelist_invoices_serviceget_invoice_serviceupdate_invoice_status_servicerun_due_reminders)get_current_userdetailsz	/invoicesInvoices)prefixtags/)response_modelpayloadbackground_tasksc              
      s@   z
t | ||I d H W S  ty } ztdt|dd }~ww )Ni  status_codedetail)r   	Exceptionr   str)r   r   dbusere r"   :/var/www/html/Trade-python/app/v1/routers/saas/invoices.pycreate_invoice   s   r$   c                    s   t | |jdI d H S )N)
account_id)r   r%   )r   r    r"   r"   r#   list_invoices   s   r&   z/{invoice_id}
invoice_idc              
      s>   z	t | |I d H W S  ty } ztdt|dd }~ww Ni  r   )r   
ValueErrorr   r   )r'   r   r    r!   r"   r"   r#   get_invoice'   s   r*   z/{invoice_id}/statusc              
      sB   zt | |||I d H W S  ty  } ztdt|dd }~ww r(   )r   r)   r   r   )r'   r   r   r   r    r!   r"   r"   r#   update_status2   s   r+   z
/remindersc                    s   t || I d H  ddiS )Nstatuszreminders scheduled)r   )r   r   r"   r"   r#   trigger_reminders?   s   r-   N) fastapir   r   r   r   typingr   r   r   models.saas.invoicesr
   r   r   services.saas.invoicesr   r   r   r   r   dependencies.authr   routerpostget_mongo_dbr$   getr&   r   r*   patchr+   r-   r"   r"   r"   r#   <module>   sP   
