
    h                        S SK JrJrJrJr  S SKJr  S SKJr  S SK	J
r
JrJrJrJr  S SKJr  S SKJr  S SKJr  S SKJr  \" 5       r\R1                  S	\
S
9\" \R2                  5      4S\S\R4                  4S jj5       r\R9                  S	\S
9\" 5       \" \R2                  5      \" \5      4S\S\R4                  4S jj5       r\R9                  S\
S
9\" \R2                  5      4S\S\R4                  4S jj5       r\R1                  S\
S
9\" \R2                  5      \" \5      4S\S\S\S\R4                  S\4
S jj5       r \RC                  S\
S
9\" \R2                  5      \" \5      4S\S\R4                  S\4S jj5       r"g)    )	APIRouterHTTPExceptionDependsRequest)Optional)database)AccountAccountCreateAccountUpdateAccountsAccountQueryParams)User)get_current_userdetails)accounts)datetime/)response_modelaccountdbc                      [         R                  " X5      nU$ ! [         a  n[        S[	        U5      S9eS nAf[
         a  n[        SSS9eS nAff = f)N  status_codedetail  Internal server error)account_servicecreate_account_service
ValueErrorr   str	Exception)r   r   created_accountvees        JC:\Suresh\moveshuttle\MDcreated\moveengine\app\v1\routers\saas\accounts.pycreate_accountr&      sX    
M)@@M =CG<< M4KLLMs    
A7A
AAparamsc                     [         R                  " U R                  U R                  U R                  U R
                  U R                  U R                  U R                  U R                  U R                  U R                  U R                  U R                  U R                  UUS9n[        SU5        U$ ! [          a  n[#        SSS9eS nAff = f)N)skiplimitqaccount_type	is_activesubscription_statusreg_date_fromreg_date_toworkforce_count_rangefleet_count_rangerevenue_range
account_idreferred_account_idr   current_usersirr   r   r   )r   get_accounts_servicer)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   printr!   r   )r'   r   r6   resultr$   s        r%   get_accountsr;      s    M 55,,hh,,&& & : : ..**"(">">$66 ..(( & : :%
" 	eV M4KLLMs   B1B4 4
C>
CCz/{account_id}r4   c                      [         R                  " X5      nUc
  [        SSS9eU$ ! [         a  n[        SS[	        U5       3S9eS nAff = f)N  Account not foundr   r   zError retrieving account: )r   get_account_servicer   r!   r    )r4   r   r   r$   s       r%   get_accountr@   6   s_    
[!55jE?C8KLL [6PQTUVQWPX4YZZ[s   $' 
AAArequestr6   c                      [         R                  " XXC5      nU$ ! [         a  nUeS nAf[         a  n[        SSS9eS nAff = f)Nr   r   r   )r   update_account_servicer   r!   )r4   r   rA   r   r6   updated_accounther$   s           r%   update_accountrF   C   sO    M)@@Vbg  M4KLLMs    
A'A
>Ac                     UR                  S5      S:  a  UR                  S5      U :w  a
  [        SSS9e[        R                  " X5      nUc
  [        SSS9eU$ ! [         a  n[        S	S
[        U5       3S9eS nAff = f)Nroles   r4   i  zPermission deniedr   r=   r>   r   zError deleting account: )getr   r   delete_account_servicer!   r    )r4   r   r6   deleted_accountr$   s        r%   delete_accountrM   S   s    YG$q(-;#<OPP *@@P"C8KLL Y6NsSTvh4WXXYs   AA 
B %A;;B N)#fastapir   r   r   r   typingr   app.dbr   app.v1.models.saas.accountmodelr	   r
   r   r   r   app.v1.models.saas.usersmodelr   app.v1.dependencies.authr   app.v1.services.saasr   r   r   routerpostget_mongo_dbMongoDBr&   rJ   r;   r    r@   rF   deleterM        r%   <module>r\      s   > >   o o . < < 	S) #8#8#89
M
M
M *
M C)!("8#8#8923MMM *M8 OG4 #8#8#89
[
[
[ 5
[ _W5
 #8#8#89 !89MMM M 		M
 M 6M w7 #8#8#89 !89YYY Y 8Yr[   