
    ,{,h(                         S SK r S SKJr  S SKJrJr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JrJrJr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rS
SK J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(  \" 5       r)\)RU                  S\S9\" S5      \" S5      \" S5      \" S5      \" S5      \" S5      \" S5      \" S5      \" S5      \" S5      \" S5      \" S5      \" \RV                  5      4S\,S\,S\,S\-S\-S\-S\,S\,S\,S\,S\	S\	S\R\                  4S jj5       r/\)Ra                  S\S9\" \RV                  5      \" \5      4S\,S\R\                  S\4S  jj5       r1\)Ra                  S!\S9\" \RV                  5      \" \5      4S\,S\R\                  S\4S" jj5       r1\)Ra                  S#\S9\" \RV                  5      \" \5      4S\,S\R\                  S\4S$ jj5       r1\)Ra                  S%\S9\" \RV                  5      \" \5      4S\,S\R\                  S\4S& jj5       r1\)Ra                  S\S9S S'SSS\" \RV                  5      \" \5      4S(\-S)\-S*\\,   S+\\,   S,\\2   S\R\                  S\4S- jj5       r3\)Ra                  S.\S9\" \RV                  5      4S\,S\R\                  4S/ jj5       r4\)RU                  S.\S9\" S5      \" S5      \" S5      \" S5      \" S5      \" S5      \" S5      \" S5      \" S5      \" S5      \" S5      \" \RV                  5      \" \5      4S\,S\,S\,S\,S\-S\-S\-S\,S\,S\,S\	S\	S\R\                  S\4S0 jj5       r5\)Rm                  S.\S9\" \RV                  5      4S\,S\R\                  4S1 jj5       r7\)Ra                  S2\S9S S'SSSSSSSSSS3\" \RV                  5      \" \5      4S\,S(\-S)\-S*\\,   S,\\2   S4\\,   S\\-   S\\,   S\\,   S5\\,   S6\\,   S7\\,   S8\\,   S\R\                  S\4S9 jj5       r1\)Rq                  S.\S9\" \RV                  5      \" \5      4S\,S:\S\R\                  4S; jj5       r9g)<    N)datetime)	APIRouterHTTPExceptionDependsRequestFormFile
UploadFile)Optional)database)		WorkforceWorkforceCreateWorkforceUpdate
WorkforcesWorkforceUpdateBaseCheckListSelectAddonsSelectSkillsListSelectServiceCategorySelect)User)get_current_userdetails)services   )get_users_serviceupdate_account_servicedelete_account_serviceupdate_workforce_serviceget_select_listget_addonselect_listget_skillsselect_listget_servicecatselect_list/)response_model.service_title
service_idservice_descriptioncapacity_jobshas_costis_vehicle_focusedskillsaddons	checklistdynamicFieldsimagemap_icondbc                 ^  #    [         R                  " SSS9  [        S5        0 nSU
4SU44 H  u  pU(       d  M  UR                  (       d  M!  [	        [
        R                  " 5       R                  5       5      nUR                  R                  S5      S   nU S	U SU 3nS
U 3n[        US5       nUR                  5       I S h  vN nUR                  U5        S S S 5        UX'   M      [        R                  " U	5      nUU UUUUUUUUS.
UEn[        S5        [        U5         [         R"                  " [%        S0 UD6U5      nU$  N! , (       d  f       Nw= f! [        R                   a  n[        SSU 3S9eS nAff = f! [&         a  n[        S[)        U5      S9eS nAff = f7f)Nzpublic/servicesT)exist_okzPOST CHECK LIST 383838383838r.   r/   .-zpublic/services/wb  zInvalid dynamicFields format: status_codedetail)
r%   r$   r&   r'   r(   r)   r*   r+   r,   r-   ,DYNAMICFIELDSDYNAMICFIELDSSSSSSSS25545555555 )osmakedirsprintfilenameintr   now	timestampsplitopenreadwritejsonloadsJSONDecodeErrorr   account_servicecreate_account_servicer   
ValueErrorstr)r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   	filenames	file_typeupload_filerC   extr@   filepathbuffercontentparsed_dynamic_fieldseaccount_datacreated_accountves                              NC:\Suresh\moveshuttle\MDcreated\moveengine\app\v1\routers\platform\services.pycreate_accountr\      s    " KK!D1	
()I$+U#3j(5K"L	;;///HLLN4467I&&,,S1"5C#Ai[#7H)(4H h% + 0 0 22W% & $,I  #MZ $

= 9 !&2&0. L 

89	,=)@@+l+
 C 3 &%  Z6TUVTW4XYYZ4  =CG<<=s   5F-F-A%F-3EEEF-.E %F-*!F F-E
E	F-F3F  FF-
F*F%%F**F-z/getchecklist/{account_id}
account_idcurrent_userc                 0    [        S5        [        XU5      $ 0
Returns a list of users for the given account.
z'getlist listlistlistlist 22200000555555)r?   r   r]   r0   r^   s      r[   	get_usersrc   ]   s     

34:,77    z/getskills/{account_id}c                 0    [        S5        [        XU5      $ )ra   z getlist skillssss 22200000555555)r?   r    rb   s      r[   rc   rc   i   s     

,- ==rd   z/getaddonlist/{account_id}c                 0    [        S5        [        XU5      $ r`   )r?   r   rb   s      r[   rc   rc   u   s     

34
|<<rd   z$/getservicecategorylist/{account_id}c                 0    [        S5        [        XU5      $ r`   )r?   r!   rb   s      r[   rc   rc      s     

34$ZLAArd   
   skiplimitqaccount_type	is_activec           	           [        S5        [        R                  " XX#XEU5      nU$ ! [         a  n[	        SSS9eS nAff = f)Nzget_accountsget_accounts 35  zInternal server errorr8   )r?   rK   get_accounts_service	Exceptionr   )	ri   rj   rk   rl   rm   r0   r^   resultrW   s	            r[   get_accountsrs      sN    M+, 55d1T]cop M4KLLMs   %( 
A
<Az/{account_id}c                      [        S5        [        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)Nz get_accountget_account 471440000  Workforce not foundr8   r7   zError retrieving workforce: )r?   rK   get_account_servicer   rq   rN   )r]   r0   accountrW   s       r[   get_accountry      sh    ]01!55jE?C8MNN ]6RSVWXSYRZ4[\\]s   /2 
AAAc           
      $  #    UUUUUUUUU	S.	[         EnUR                  5        VVs0 s H  u  nnUc  M  UU_M     nnn [        R                  " U [	        S0 UD6UU5      nU$ s  snnf ! [
         a  n[        S[        U5      S9eS nAff = f7f)N)	r%   r$   r&   r'   r(   r)   r*   r+   r,   r7   r8   r<   )rO   itemsrK   r   r   rM   r   rN   )r]   r%   r$   r&   r'   r(   r)   r*   r+   r,   r.   r/   r0   r^   update_datakvupdated_accountrZ   s                      r[   update_accountr      s     , !&2&0 K %0$5$5$7I$7DAq141a4$7KI	=)@@*k*	
  J  =CG<<=s8   &B
A%A%B#A+ $B+
B5BBBc                     [        S5         [        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)Nzdelete_accountdelete_account 79ru   rv   r8   r7   zError deleting workforce: )r?   rK   r   r   rq   rN   )r]   r0   deleted_accountrW   s       r[   delete_accountr      sl    
 

+,[)@@P"C8MNN [6PQTUVQWPX4YZZ[s   $2 
AAAz/list/{account_id}/ascstatuscreated_date_fromcreated_date_tosort_by
sort_orderc                 F    S n[        XX#XEUU" U5      U" U5      XXX5      $ )Nc                 h    [        U [        5      (       a  U (       a  U R                  5       S:H  $ S $ U $ )Ntrue)
isinstancerN   lower)vals    r[   
parse_boolget_users.<locals>.parse_bool   s,    c3,/399;&(9T9
rd   )r   )r]   ri   rj   rk   rm   r   r%   r(   r)   r   r   r   r   r0   r^   r   s                   r[   rc   rc      s8    $
 %Iz8j);<>Obiwy rd   role_updatec                 B  #    UR                  SS5      S:w  a!  UR                  SS5      (       d
  [        SSS9e [        S	5        [        U 5        [        XU5      I S
h  vN nU(       d
  [        SSS9eU$  N! [         a  n[        S[        U5      S9eS
nAff = f7f)z
Update an existing role.
rolesr      is_account_adminFi  zNot authorized to update rolesr8   3account_idaccount_idaccount_idaccount_id11112222555Nru   rv   ro   )getr   r?   r   rq   rN   )r]   r   r0   r^   updated_rolerW   s         r[   update_workforcer   	  s      #q(1A1ABTV[1\1\4TUU<CDj5jrRRC8MNN S  <CF;;<s:   8B%A:  A8!A: 7B8A: :
BBBB):r=   r   fastapir   r   r   r   r   r	   r
   typingr   app.dbr   app.v1.models.platform.servicesr   r   r   r   r   r   r   r   r   app.v1.models.saas.usersmodelr   app.v1.dependencies.authr   app.v1.services.platformr   rK   rH   services.platform.servicesr   r   r   r   r   r   r    r!   routerpostget_mongo_dbrN   rA   MongoDBr\   r   rc   boolrs   ry   r   deleter   putr   r<   rd   r[   <module>r      s   	  S S S   |  |  | . < @ 	 	 	 
S+c3i#CycI"3is)s)#YcT
:"8#8#89?=?=?= ?= 	?=
 ?= ?= ?= ?= ?= ?= ?= ?= 	?= ,?=B (I #8#8#89 !89	8	8	8 	8 J	8 %6FG #8#8#89 !89	>	>	> 	> H	> (F #8#8#89 !89	=	=	= 	= G	= 2CXY #8#8#89 !89	B	B	B 	B Z	B C
+"& $"8#8#89 !89M
MM }M 3-	M
 ~M 	M M ,M" OO< #8#8#89]]] =] _Y7 4jd#DzdJ"4jt*t*$ZT
:"8#8#89 !89-=-=-= -= 	-=
 -= -= -= -= -= -= -= -= 	-= -= 8-=^ y9 #8#8#89[[[ :[ !*=  $  $"(,'+%)! %"8#8#89 !89
  }	
 ~ SM  sm !  } c] c]  	  >8 OO< #8#8#8923	<< < 	< =<rd   