+
    `Øj~F  ã                   óì  € ^ RI t ^ RIt^ RIt^ RIt^ RIHtHtHt ^ RIHt ^ RI	H
t
HtHtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHtHt ^ R
IHtHt ^ R	I Ht!Ht" ^ R	I#Ht$Ht% ]
! 4       t&]! ]4      3R R llt']&PQ                  R4      ]! R4      ]! R4      ]! ]'4      ]! ]4      3R R ll4       t)]&PQ                  R]PT                  R7      ]! ]'4      ]! ]4      3R R ll4       t+]&PY                  R]PT                  R7      ]! ]'4      ]! ]4      3R R ll4       t-]&P]                  R]P^                  R7      ]! ]'4      ]! ]4      3R R ll4       t0]&PY                  R]P^                  R7      ]! ]'4      ]! ]4      3R R ll4       t1]&Pe                  R4      ]! ]'4      ]! ]4      3R R ll4       t3]&P]                  R]Ph                  R7      ]! ]4      3R R  ll4       t5]&P]                  R!4      ]! ]'4      ]! ]4      3R" R# ll4       t6]&PQ                  R$]7]Pp                  ,          R7      ]! ]'4      ]! ]4      3R% R& ll4       t9]&PQ                  R']7]Pt                  ,          R7      ]! R(R)R*7      ]! ]'4      ]! ]4      3R+ R, ll4       t;]&PQ                  R-]Pp                  R7      ]! ]'4      ]! ]4      3R. R/ ll4       t<]&P]                  R$]Pp                  ^ÉR07      ]! ]'4      ]! ]4      3R1 R2 ll4       t=]&PY                  R-]Pp                  R7      ]! ]'4      ]! ]4      3R3 R4 ll4       t>]&PQ                  R5]P~                  R7      ]! ]'4      ]! ]4      3R6 R7 ll4       t@]&PQ                  R8]!P‚                  R7      ]! R9^R:7      ]! ]'4      ]! ]4      3R; R< ll4       tB]&PQ                  R=]P†                  R7      ]! R4      ]! R>4      ]! ]'4      ]! ]4      3R? R@ ll4       tD]&PQ                  RA]7]PŠ                  ,          R7      ]! R4      ]! ]'4      ]! ]4      3RB RC ll4       tF]&PQ                  RD]PŽ                  R7      ]! ]'4      ]! ]4      3RE RF ll4       tH]&P]                  RA]PŽ                  ^ÉR07      ]! ]'4      ]! ]4      3RG RH ll4       tI]&P]                  RI]PŽ                  R7      ]! ]'4      ]! ]4      3RJ RK ll4       tJ]&PY                  RD]PŽ                  R7      ]! ]'4      ]! ]4      3RL RM ll4       tK]&P]                  RN]PŽ                  R7      ]! R9RORP7      R]! ]'4      ]! ]4      3RQ RR ll4       tL]&P]                  RS]Pš                  ^ÉR07      ]! ]'4      ]! ]4      3RT RU ll4       tN]&PQ                  RS]7]Pš                  ,          R7      ]! ]'4      ]! ]4      3RV RW ll4       tO]&PQ                  RX]Pš                  R7      ]! ]'4      ]! ]4      3RY RZ ll4       tP]&PQ                  R[]7]P¢                  ,          R7      ]! ]'4      ]! ]4      3R\ R] ll4       tR]&P]                  R[]P¢                  ^ÉR07      ]! ]4      ]! ]'4      3R^ R_ ll4       tS]&PY                  R`]P¢                  R7      ]! ]4      ]! ]'4      3Ra Rb ll4       tT]&Pe                  R`4      ]! ]4      ]! ]'4      3Rc Rd ll4       tU]&P]                  Re4      ]! R94      ]! ]'4      3Rf Rg ll4       tV]&PQ                  Rh]7]$P®                  ,          R7      ]! ]'4      ]! ]4      3Ri Rj ll4       tX]&PQ                  Rk]7]$P®                  ,          R7      ]! ]'4      ]! ]4      3Rl Rm ll4       tYR# )né    N)ÚdatetimeÚtimezoneÚdate)ÚOptional)Ú	APIRouterÚDependsÚHTTPExceptionÚRequestÚQueryÚ
UploadFileÚFileÚBody)ÚAsyncSession)Úget_db)Údecode_token)ÚDealerPortalLog)ÚschemasÚservice)ÚCustomerMasterÚCustomerContactc                ó<   € V ^8„  d   QhR\         R\        R\        /# )é   ÚrequestÚdbÚreturn)r
   r   Údict)Úformats   "ÚB/var/www/html/audi_dev/backend/app/modules/dealer_portal/routes.pyÚ__annotate__r      s'   € ÷ Iñ I¤gð I´<ð IÔVZñ Ió    c              ƒ   ó–  "  € V P                   P                  R 4      pV'       d   VP                  R4      '       g   \        RRR7      hVP	                  R4      ^,          p\        V4      pVP                  R4      R8w  d   \        RR	R7      hVP                  R
4      pVP                  R4      pVP                  \        V4      G Rj  x€L
 p\        P                  ! \        P                  4      pV'       d;   VP                  '       d)   VP                  P                  '       d   VP                  MEV'       d=   VP                  '       d+   VP                  P                  \        P                  R7      MRp	V'       d   VP                  f   V	'       d   W˜8  d   \        RRR7      hRVR
\        P                   ! V4      /#  Lû5i)ÚAuthorizationzBearer i‘  zMissing or invalid token©Ústatus_codeÚdetailÚ Úsub_typeÚdealeri“  zNot authorized as a dealerÚ
session_idÚsubN)ÚtzinfozSession expired or invalidÚ	dealer_id)ÚheadersÚgetÚ
startswithr	   Úsplitr   r   r   Únowr   ÚutcÚ
expires_atr+   ÚreplaceÚinvalidated_atÚuuidÚUUID)
r   r   Úauth_headerÚtokenÚpayloadr)   r,   Úsessionr1   Úsess_exps
   &&        r   Úget_current_dealerr=      s…  é € Ø—/‘/×%Ñ% oÓ6€Kß˜k×4Ñ4°Y×?Ò?Ü¨Ð4NÔOÐOà×Ñ˜cÓ" 1Õ%€EÜ˜5Ó!€Gà‡{�{�:Ó (Ô*Ü¨Ð4PÔQÐQà—‘˜\Ó*€JØ—‘˜EÓ"€Ià—F‘Fœ?¨JÓ7×7€GÜ
�,Š,”x—|‘|Ó
$€Cß&-°'×2D×2DÐ2DÈ×I[ÑI[×Ib×IbÐIbˆw×!Ò!÷  ^eð  jq÷  j|÷  j|ð  j|Ðjq×j|Ñj|÷  kEñ  kEô  MU÷  MYñ  MYð  kEô  kZð  BF€Hß�g×,Ñ,Ò8¿XÈ(Ì.Ü¨Ð4PÔQÐQà˜ L´$·)²)¸JÓ2GÐHÐHñ 8ùsA   ‚:G	½BG	ÃGÃ/G	Ã<G	ÄG	Ä*G	Ä>G	Å3G	ÆG	Æ.G	z
/dashboardc                ót   € V ^8„  d   QhR\         \        ,          R\         \        ,          R\        R\        /# )r   Ú
start_dateÚend_dater(   r   )r   r   r   r   )r   s   "r   r   r   -   s>   € ÷ gñ gÜœ•ðgä”t�nðgô ðgô 	ñ	gr    c              ƒ   ó\   "  € \         P                  ! W2R ,          WR7      G Rj  x€L
 #  L5i)r,   )ÚstartÚendN)r   Úget_dealer_dashboard)r?   r@   r(   r   s   &&&&r   Údealer_dashboardrE   ,   s%   é € ô ×-Ò-¨b¸Õ2EÈZÔf×fÐfÑfùó   ‚#,¥*¦,z/profile)Úresponse_modelc                ó0   € V ^8„  d   QhR\         R\        /# ©r   r(   r   ©r   r   )r   s   "r   r   r   7   s   € ÷ ñ œdð Älñ r    c              ƒ   óN  "  € ^ RI Hp ^ RIHp VP	                  V! \
        4      P                  V! \
        P                  4      4      P                  \
        P                  V R,          8H  4      4      G Rj  x€L
 pVP                  4       pV'       g   \        RRR7      hV#  L+5i)r   ©Úselect©Úselectinloadr,   Né”  úProfile not foundr#   )Ú
sqlalchemyrM   Úsqlalchemy.ormrO   Úexecuter   ÚoptionsÚcontactsÚwhereÚcustomer_idÚscalar_one_or_noner	   )r(   r   rM   rO   ÚresultÚcustomers   &&    r   Úget_profiler\   6   s€   é € å!Ý+Ø—:‘:ÙŒ~Óß	‰‘œn×5Ñ5Ó6Ó	7ß	‰Œ~×)Ñ)¨V°KÕ-@Ñ@Ó	Aó÷ €Fð
 ×(Ñ(Ó*€HßÜ¨Ð4GÔHÐHØ€Oñùs   ‚A5B%Á7B#Á8B%ÂB%c                óP   € V ^8„  d   QhR\         P                  R\        R\        /# ©r   Úreqr(   r   )r   ÚDealerProfileUpdater   r   )r   s   "r   r   r   E   s(   € ÷ ñ œg×9Ñ9ð Ä4ð Ôkwñ r    c              ƒ   ó&  "  € ^ RI Hp ^ RIHp VP	                  V! \
        4      P                  V! \
        P                  4      4      P                  \
        P                  VR,          8H  4      4      G Rj  x€L
 pVP                  4       pV'       g   \        RRR7      hV P                  RR	7      pVP                  4        F  w  r‰\        WhV	4       K  	  VP                  4       G Rj  x€L
  VP!                  V4      G Rj  x€L
  V#  L“ L! L
5i)
r   rL   rN   r,   NrP   rQ   r#   T©Úexclude_unset)rR   rM   rS   rO   rT   r   rU   rV   rW   rX   rY   r	   r   ÚitemsÚsetattrÚcommitÚrefresh)
r_   r(   r   rM   rO   rZ   r[   Úupdate_dataÚkeyÚvalues
   &&&       r   Úupdate_profilerk   D   sÚ   é € å!Ý+Ø—:‘:ÙŒ~Óß	‰‘œn×5Ñ5Ó6Ó	7ß	‰Œ~×)Ñ)¨V°KÕ-@Ñ@Ó	Aó÷ €Fð
 ×(Ñ(Ó*€HßÜ¨Ð4GÔHÐHà—(‘(¨�(Ó.€KØ!×'Ñ'Ö)‰
ˆÜ�˜uÖ%ñ *ð �)‰)‹+×ÐØ
�*‰*�XÓ
×ÐØ€Oññ Ùùs=   ‚A5DÁ7DÁ8DÂADÃ+DÃ,DÄDÄDÄDÄDz/profile/contactsc                óP   € V ^8„  d   QhR\         P                  R\        R\        /# r^   )r   ÚDealerContactCreater   r   )r   s   "r   r   r   Z   s(   € ÷ 
ñ 
œg×9Ñ9ð 
Ä4ð 
Ôkwñ 
r    c              ƒ   óP  "  € R \         P                  ! 4       P                  R,          P                  4        2p\	        RRVRVR,          /V P                  4       B pVP                  V4       VP                  4       G Rj  x€L
  VP                  V4      G Rj  x€L
  V#  L L5i)zCNT-ºNé   NÚ
contact_idrX   r,   N© )	r6   Úuuid4ÚhexÚupperr   r   Úaddrf   rg   )r_   r(   r   rq   Únew_contacts   &&&  r   Úcreate_contactrx   Y   s˜   é € àœŸ
š
›×(Ñ(¨Õ,×2Ñ2Ó4Ð5Ð6€JÜ!ñ Øðà˜;Õ'ðð �(‰(‹*ñ€Kð
 ‡F�Fˆ;ÔØ
�)‰)‹+×ÐØ
�*‰*�[Ó
!×!Ð!ØÐñ Ù!ùs$   ‚B B&ÂB"ÂB&ÂB$ÂB&Â$B&z/profile/contacts/{contact_id}c                ó\   € V ^8„  d   QhR\         R\        P                  R\        R\        /# )r   rq   r_   r(   r   )Ústrr   ÚDealerContactUpdater   r   )r   s   "r   r   r   g   s4   € ÷ ñ ¤Sð ¬w×/JÑ/Jð ÔTXð ô  }Iñ r    c              ƒ   óø  "  € ^ RI Hp VP                  V! \        4      P	                  \        P
                  V 8H  \        P                  VR,          8H  4      4      G Rj  x€L
 pVP                  4       pV'       g   \        RRR7      hVP                  RR7      pVP                  4        F  w  r‰\        WhV	4       K  	  VP                  4       G Rj  x€L
  VP                  V4      G Rj  x€L
  V#  L“ L! L
5i)	r   rL   r,   NrP   úContact not foundr#   Trb   )rR   rM   rT   r   rW   rq   rX   rY   r	   r   rd   re   rf   rg   )
rq   r_   r(   r   rM   rZ   Úcontactrh   ri   rj   s
   &&&&      r   Úupdate_contactr   f   sÑ   é € å!Ø—:‘:ÙŒÓß	‰Œ×)Ñ)¨ZÑ7¼×9TÑ9TÐX^Ð_jÕXkÑ9kÓ	ló÷ €Fð ×'Ñ'Ó)€GßÜ¨Ð4GÔHÐHà—(‘(¨�(Ó.€KØ!×'Ñ'Ö)‰
ˆÜ�˜eÖ$ñ *ð �)‰)‹+×ÐØ
�*‰*�WÓ
×ÐØ€Nññ Ùùs=   ‚AC:Á C4Á!C:Á=AC:ÃC6ÃC:Ã-C8Ã.C:Ã6C:Ã8C:c                ó<   € V ^8„  d   QhR\         R\        R\        /# )r   rq   r(   r   ©rz   r   r   )r   s   "r   r   r   z   s"   € ÷ *ñ *¤Sð *´$ð *ÔZfñ *r    c              ƒ   óŽ  "  € ^ RI Hp VP                  V! \        4      P	                  \        P
                  V 8H  \        P                  VR,          8H  4      4      G Rj  x€L
 pVP                  4       pV'       g   \        RRR7      hVP                  V4      G Rj  x€L
  VP                  4       G Rj  x€L
  RR/#  L^ L" L5i)	r   rL   r,   NrP   r}   r#   ÚmessagezContact deleted)rR   rM   rT   r   rW   rq   rX   rY   r	   Údeleterf   )rq   r(   r   rM   rZ   r~   s   &&&   r   Údelete_contactr…   y   s§   é € å!Ø—:‘:ÙŒÓß	‰Œ×)Ñ)¨ZÑ7¼×9TÑ9TÐX^Ð_jÕXkÑ9kÓ	ló÷ €Fð ×'Ñ'Ó)€GßÜ¨Ð4GÔHÐHà
�)‰)�GÓ
×ÐØ
�)‰)‹+×ÐØÐ(Ð)Ð)ññ Ùùs<   ‚ACÁ B?Á!CÁ=!CÂCÂCÂ6CÂ7	CÃCÃCz/loginc                óP   € V ^8„  d   QhR\         P                  R\        R\        /# )r   r_   r   r   )r   ÚDealerLoginRequestr
   r   )r   s   "r   r   r   ‰   s,   € ÷ rñ r”W×/Ñ/ð r¼'ð rÄ|ñ rr    c           	   ƒ   óª   "  € \         P                  ! W VP                  P                  VP                  P                  R R4      4      G Rj  x€L
 #  L5i)z
user-agentÚ N)r   Úauthenticate_dealerÚclientÚhostr-   r.   )r_   r   r   s   &&&r   Úloginr�   ˆ   s=   é € ä×,Ò,¨R°g·n±n×6IÑ6IÈ7Ï?É?×K^ÑK^Ð_kÐmoÓKpÓq×qÐqÑqùs   ‚A
AÁAÁAz/logoutc                ó0   € V ^8„  d   QhR\         R\        /# rI   rJ   )r   s   "r   r   r   Ž   s   € ÷ 2ñ 2œð 2Äñ 2r    c              ƒ   ó`   "  € \         P                  ! WR ,          4      G Rj  x€L
  RR/#  L5i)r)   Nrƒ   zLogged out successfully)r   Úlogout_dealer©r(   r   s   &&r   Úlogoutr’   �   s/   é € ä
×
Ò
 ¨<Õ$8Ó
9×9Ð9ØÐ0Ð1Ð1ñ :ùs   ‚!.£,¤	.z/clientsc                ó0   € V ^8„  d   QhR\         R\        /# rI   rJ   )r   s   "r   r   r   ”   s   € ÷ ?ñ ?œtð ?Ä|ñ ?r    c              ƒ   óX   "  € \         P                  ! WR ,          4      G Rj  x€L
 #  L5i©r,   N)r   Úlist_clientsr‘   s   &&r   r–   r–   “   s!   é € ä×%Ò% b°Õ*=Ó>×>Ð>Ñ>ùó   ‚!*£(¤*z/clients/searchr‰   z!Partial client name to search for)Údescriptionc                ó<   € V ^8„  d   QhR\         R\        R\        /# )r   Úqr(   r   r�   )r   s   "r   r   r   ™   s+   € ÷ Dñ DÜ
ðDäðDô 	ñDr    c              ƒ   óZ   "  € \         P                  ! W!R ,          V 4      G Rj  x€L
 #  L5ir•   )r   Úsearch_clients)rš   r(   r   s   &&&r   rœ   rœ   ˜   s%   é € ô ×'Ò'¨°;Õ,?ÀÓC×CÐCÑCùó   ‚"+¤)¥+z/clients/{client_id}c                ó<   € V ^8„  d   QhR\         R\        R\        /# )r   Ú	client_idr(   r   r�   )r   s   "r   r   r   ¢   s'   € ÷ Hñ H¤ð H¬Tð HÔUañ Hr    c              ƒ   óZ   "  € \         P                  ! W!R ,          V 4      G Rj  x€L
 #  L5ir•   )r   Ú
get_client©rŸ   r(   r   s   &&&r   r¡   r¡   ¡   s#   é € ä×#Ò# B¨{Õ(;¸YÓG×GÐGÑGùr�   )rG   r$   c                ó\   € V ^8„  d   QhR\         P                  R\        R\        R\        /# ©r   r:   r   r(   r   )r   ÚClientCreater
   r   r   )r   s   "r   r   r   §   s6   € ÷ ñ Ü×!Ñ!ðäðô ðô 	ñ	r    c           	   ƒ   óö   "  € \         P                  ! W2R ,          V RR7      G Rj  x€L
 p\         P                  ! W2R ,          RRVP                  VP                  P
                  R7      G Rj  x€L
  V#  LN L5i)r,   T)Úcreated_by_dealerNÚCLIENT_CREATEDÚDealerClientMaster©Úentity_typeÚ	entity_idÚip)r   Úcreate_clientÚlog_dealer_actionrŸ   r‹   rŒ   )r:   r   r(   r   r‹   s   &&&& r   r®   r®   ¦   sq   é € ô ×(Ò(¨°KÕ-@À'Ð]aÔb×b€FÜ
×
#Ò
#Ø
�;ÕÐ!1Ð?SØ×"Ñ" w§~¡~×':Ñ':ô÷ ð ð €Mñ cñùs"   ‚$A9¦A5§AA9Á.A7Á/A9Á7A9c          
      óh   € V ^8„  d   QhR\         R\        P                  R\        R\        R\
        /# )r   rŸ   r:   r   r(   r   )rz   r   ÚClientUpdater
   r   r   )r   s   "r   r   r   ¶   s@   € ÷ ñ Üðä×!Ñ!ðô ðô ð	ô
 	ñr    c           	   ƒ   óò   "  € \         P                  ! WCR ,          W4      G Rj  x€L
 p\         P                  ! WCR ,          RRVP                  VP                  P
                  R7      G Rj  x€L
  V#  LN L5i)r,   NÚCLIENT_UPDATEDr©   rª   )r   Úupdate_clientr¯   rŸ   r‹   rŒ   )rŸ   r:   r   r(   r   r‹   s   &&&&& r   r´   r´   µ   sn   é € ô ×(Ò(¨°KÕ-@À)ÓU×U€FÜ
×
#Ò
#Ø
�;ÕÐ!1Ð?SØ×"Ñ" w§~¡~×':Ñ':ô÷ ð ð €Mñ Vñùs"   ‚"A7¤A3¥AA7Á,A5Á-A7Á5A7z/order-mastersc                ó0   € V ^8„  d   QhR\         R\        /# rI   rJ   )r   s   "r   r   r   Æ   s   € ÷ /ñ /¤Dð /ÌLñ /r    c              ƒ   óJ   "  € \         P                  ! V4      G R j  x€L
 #  L5i©N)r   Úget_order_mastersr‘   s   &&r   r¸   r¸   Å   s   é € ä×*Ò*¨2Ó.×.Ð.Ñ.ùó   ‚#œ!�#z/chassis-lookup.)Ú
min_lengthc                ó<   € V ^8„  d   QhR\         R\        R\        /# )r   Ú
chassis_nor(   r   r�   )r   s   "r   r   r   Ë   s&   € ÷ =ñ =Üð=äð=ô 	ñ=r    c              ƒ   óJ   "  € \         P                  ! W 4      G R j  x€L
 #  L5ir·   )Úyard_serviceÚlookup_chassis)r¼   r(   r   s   &&&r   Úchassis_lookuprÀ   Ê   s   é € ô ×,Ò,¨RÓ<×<Ð<Ñ<ùr¹   z/my-chassisFc                óV   € V ^8„  d   QhR\         R,          R\        R\        R\        /# )r   rŸ   NÚ	yard_onlyr(   r   )rz   Úboolr   r   )r   s   "r   r   r   Ô   s:   € ÷ oñ oÜ�T�zðoäðoô ðoô 	ñ	or    c              ƒ   ó\   "  € \         P                  ! W2R ,          WR7      G Rj  x€L
 #  L5i)r,   )rŸ   rÂ   N)r   Úget_dealer_chassis)rŸ   rÂ   r(   r   s   &&&&r   Úget_my_chassisrÆ   Ó   s%   é € ô ×+Ò+¨B°{Õ0CÈyÔn×nÐnÑnùrF   z/ordersc                óJ   € V ^8„  d   QhR\         R,          R\        R\        /# )r   rŸ   Nr(   r   r�   )r   s   "r   r   r   Þ   s/   € ÷ Iñ IÜ�T�zðIäðIô 	ñIr    c              ƒ   óZ   "  € \         P                  ! W!R ,          V 4      G Rj  x€L
 #  L5ir•   )r   Úlist_ordersr¢   s   &&&r   rÉ   rÉ   Ý   s%   é € ô ×$Ò$ R°Õ)<¸iÓH×HÐHÑHùr�   z/orders/{order_id}c                óP   € V ^8„  d   QhR\         P                  R\        R\        /# )r   Úorder_idr(   r   ©r6   r7   r   r   )r   s   "r   r   r   ç   s+   € ÷ Mñ M¤T§Y¡Yð M¼ð MÔ`lñ Mr    c              ƒ   óZ   "  € \         P                  ! W!R ,          V 4      G Rj  x€L
 #  L5ir•   )r   Úget_order_detail)rË   r(   r   s   &&&r   rÎ   rÎ   æ   s#   é € ä×)Ò)¨"°[Õ.AÀ8ÓL×LÐLÑLùr�   c                ó\   € V ^8„  d   QhR\         P                  R\        R\        R\        /# r¤   )r   ÚOrderCreater
   r   r   )r   s   "r   r   r   ì   s<   € ÷ Sñ SÜ× Ñ ðSäðSô ðSô 	ñ	Sr    c           	   ƒ   ód  "  € \         P                  ! W2R ,          V 4      G Rj  x€L
 p\         P                  ! W2R ,          RR\        VP                  4      VP
                  P                  R7      G Rj  x€L
  \         P                  ! W2R ,          VP                  4      G Rj  x€L
 #  L… L6 L5i)r,   NÚORDER_SUBMITTEDÚDealerOrderrª   )r   Úcreate_orderr¯   rz   rË   r‹   rŒ   rÎ   )r:   r   r(   r   Úorders   &&&& r   rÔ   rÔ   ë   s�   é € ô ×&Ò& r°+Õ+>ÀÓH×H€EÜ
×
#Ò
#Ø
�;ÕÐ!2ÀÜ�e—n‘nÓ%¨'¯.©.×*=Ñ*=ô÷ ð ô ×)Ò)¨"°[Õ.AÀ5Ç>Á>ÓR×RÐRñ Iññ Sùs4   ‚"B0¤B*¥AB0Á5B,Á6/B0Â%B.Â&B0Â,B0Â.B0z/orders/{order_id}/acknowledgec                ó\   € V ^8„  d   QhR\         P                  R\        R\        R\        /# )r   rË   r   r(   r   )r6   r7   r
   r   r   )r   s   "r   r   r   û   s0   € ÷ 	ñ 	Ü�i‰ið	Ü")ð	äð	ä4@ñ	r    c           	   ƒ   óð   "  € \         P                  ! W2R ,          V 4      G Rj  x€L
 p\         P                  ! W2R ,          RR\        V 4      VP                  P
                  R7      G Rj  x€L
  V#  LM L5i)r,   NÚORDER_ACKNOWLEDGEDrÓ   rª   )r   Úacknowledge_orderr¯   rz   r‹   rŒ   )rË   r   r(   r   rÕ   s   &&&& r   rÙ   rÙ   ú   sk   é € ô
 ×+Ò+¨B°{Õ0CÀXÓN×N€EÜ
×
#Ò
#Ø
�;ÕÐ!5À=Ü�h“- G§N¡N×$7Ñ$7ô÷ ð ð €Lñ Oñùó"   ‚"A6¤A2¥AA6Á+A4Á,A6Á4A6c          
      ó|   € V ^8„  d   QhR\         P                  R\        P                  R\        R\
        R\        /# )r   rË   r:   r   r(   r   )r6   r7   r   ÚOrderEditRequestr
   r   r   )r   s   "r   r   r     s>   € ÷ 	ñ 	Ü�i‰ið	Ü")×":Ñ":ð	ÜELð	äð	ä4@ñ	r    c           	   ƒ   óð   "  € \         P                  ! WCR ,          W4      G Rj  x€L
 p\         P                  ! WCR ,          RR\        V 4      VP                  P
                  R7      G Rj  x€L
  V#  LM L5i)r,   NÚORDER_EDITEDrÓ   rª   )r   Ú
edit_orderr¯   rz   r‹   rŒ   )rË   r:   r   r(   r   rÕ   s   &&&&& r   rß   rß     sj   é € ô
 ×$Ò$ R°Õ)<¸hÓP×P€EÜ
×
#Ò
#Ø
�;Õ ¸]Ü�h“- G§N¡N×$7Ñ$7ô÷ ð ð €Lñ QñùrÚ   z/orders/{order_id}/allocateT)Úembedc          
      óh   € V ^8„  d   QhR\         P                  R\        R\        R\        R\        /# )r   rË   Úallocationsr   r(   r   )r6   r7   r   r
   r   )r   s   "r   r   r     s>   € ÷ ñ Ü�i‰iðäðô ðô ð	ô
 	ñr    c           	   ƒ   ó
  "  € \         P                  ! VR V VRVR,          R7      G R j  x€L
 pV'       dH   \         P                  ! WCR,          RR\        V 4      VP                  P
                  R7      G R j  x€L
  V#  LU L5i)NTr,   )Úuser_idrË   râ   Ú	is_dealerr,   ÚCHASSIS_ALLOCATEDrÓ   rª   )r   Úallocate_order_chassisr¯   rz   r‹   rŒ   )rË   râ   r   r(   r   rÕ   s   &&&&& r   Údealer_allocate_chassisrè     s�   é € ô ×0Ò0Ø
ØØØØØ˜Õ%ô÷ €E÷ Ü×'Ò'Ø�{Õ#Ð%8ÀmÜ˜(“m¨¯©×(;Ñ(;ô
÷ 	
ð 	
ð €Lññ	
ùs'   ‚'B©A?ªB¶ABÁ8BÁ9BÂBz	/requestsc                ó<   € V ^8„  d   QhR\         R\        R\        /# )r   r   r(   r   )r
   r   r   )r   s   "r   r   r   ,  s&   € ÷ ;ñ ;Üð;äð;ô 	ñ;r    c           	   ƒ   ó  "  € V P                   P                  R R4      pRpRV9   Edæ   V P                  4       G Rj  x€L
 pVP                  R4      pVP                  R4      pVP                  R4      pVP                  R4      '       d!   VP	                  VP                  R4      4       V'       d	   V'       g   \        RR	R
7      h\        VP                  RR4      4      P                  4       P                  RR4      P                  RR4      p	\        V4      P                  4       P                  RR4      P                  RR4      p
\        P                  P                  RRWš4      pV'       dS   \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d   \        P                  ! VRR7       . pV EF.  p\        VR4      '       g   K  VP                  '       g   K,  \        P                  P!                  VP                  4      ^,          ;'       g    RpR\#        \$        P$                  ! 4       R,          4       R\&        P(                  ! 4       P*                  R,           V 2p\        P                  P                  W¿4      p\-        VR4      ;_uu_ 4       p\.        P0                  ! VP2                  V4       RRR4       VP	                  RV	 RV
 RV 24       EK1  	  V'       d
   V^ ,          pMYV P5                  4       G Rj  x€L
 pVP                  R4      pVP                  R4      p. pV'       d	   V'       g   \        RR	R
7      h\6        P8                  ! W!R,          WgWLR7      G Rj  x€L
 p\6        P:                  ! W!R,          RR\        VP<                  4      V P>                  P@                  R 7      G Rj  x€L
  V#  EL¦  + '       g   i     EL; i L× Lp L!5i)!zcontent-typer‰   Nzmultipart/form-dataÚrequest_typeÚdetailsÚfilesÚfilei¦  z%request_type and details are requiredr#   r,   Úunknownr&   Ú_Ú/ÚuploadsÚdealer_requestsc              3   ób   "  € T F%  p\        VR 4      ;'       d    VP                  x € K'  	  R# 5i)ÚfilenameN)Úhasattrrõ   )Ú.0Úfs   & r   Ú	<genexpr>Ú(create_dealer_request.<locals>.<genexpr>F  s&   é € ÐVÉIÀqœW Q¨
Ó3×BÐB¸¿
¹
ÔBËIùs   ‚/š/TF©Úexist_okrõ   z.jpgÚreq_iè  ro   Úwbz/uploads/dealer_requests/)Ú	photo_urlÚ
photo_urlsÚREQUEST_CREATEDÚDealerRequestrª   )!r-   r.   ÚformÚgetlistÚappendr	   rz   Ústripr4   ÚosÚpathÚjoinÚanyÚmakedirsrö   rõ   ÚsplitextÚintÚtimer6   rs   rt   ÚopenÚshutilÚcopyfileobjrî   Újsonr   Úcreate_dealer_requestr¯   Ú
request_idr‹   rŒ   )r   r(   r   Úcontent_typerÿ   r  rë   rì   Ú	file_objsÚsafe_dealer_idÚsafe_req_typeÚdir_pathr   Úfile_objÚextrõ   Ú	file_pathÚbufferÚbodyÚnew_reqs   &&&                 r   r  r  +  s  é € ð —?‘?×&Ñ& ~°rÓ:€LØ€Ià Õ,Ø—\‘\“^×#ˆØ—x‘x Ó/ˆØ—(‘(˜9Ó%ˆØ—L‘L Ó)ˆ	ð �8‰8�F×ÒØ×Ñ˜TŸX™X fÓ-Ô.ç§7Ü¨CÐ8_Ô`Ð`ä˜VŸZ™Z¨°YÓ?Ó@×FÑFÓH×PÑPÐQTÐVYÓZ×bÑbÐcfÐhkÓlˆÜ˜LÓ)×/Ñ/Ó1×9Ñ9¸#¸sÓC×KÑKÈCÐQTÓUˆô —7‘7—<‘< 	Ð+<¸nÓ\ˆßŸ›ÑVÉIÓVŸŸšÑVÉIÓV×VÒVÜ�KŠK˜¨4Õ0àˆ
Ü!ˆHÜ�x ×,Ô,°×1B×1BÒ1BÜ—g‘g×&Ñ& x×'8Ñ'8Ó9¸!Õ<×FÐFÀ�Ø!¤#¤d§i¢i£k°DÕ&8Ó"9Ð!:¸!¼D¿JºJ»L×<LÑ<LÈRÕ<PÐ;QÐRUÐQVÐW�ÜŸG™GŸL™L¨Ó<�	ä˜) T×*Ô*¨fÜ×&Ò& x§}¡}°fÔ=÷ +ð ×!Ñ!Ð$=¸nÐ=MÈQÈ}ÈoÐ]^Ð_gÐ^hÐ"i×jñ "÷ Ø" 1�ˆIøð —\‘\“^×#ˆØ—x‘x Ó/ˆØ—(‘(˜9Ó%ˆØˆ
ç§7Ü¨CÐ8_Ô`Ð`ä×1Ò1°"¸[Õ6IÈ<Ðluô  N÷  N€GÜ
×
#Ò
#Ø
�;ÕÐ!2ÀÜ�g×(Ñ(Ó)¨g¯n©n×.AÑ.Aô÷ ð ð €Nòe $÷6 +×*Ð*úñ $ñ Nñùs£   ‚:O?¼O"½AO?Â'O?Â3O?Â;CO?Å>O?ÆO?Æ-/O?Ç!O?Ç56O?È,BO?Ê3"O%Ë.O?ÌO?Ì!O9Ì"/O?ÍO?Í0O?Î
O;ÎAO?ÏO=ÏO?Ï%O6Ï0
O?Ï;O?Ï=O?c                ó0   € V ^8„  d   QhR\         R\        /# rI   rJ   )r   s   "r   r   r   j  s    € ÷ Gñ GÜðGäñGr    c              ƒ   óX   "  € \         P                  ! WR ,          4      G Rj  x€L
 #  L5ir•   )r   Úlist_dealer_requestsr‘   s   &&r   r"  r"  i  s#   é € ô
 ×-Ò-¨b¸Õ2EÓF×FÐFÑFùr—   z/requests/{request_id}c                óP   € V ^8„  d   QhR\         P                  R\        R\        /# )r   r  r(   r   rÌ   )r   s   "r   r   r   r  s/   € ÷ Qñ QÜ—	‘	ðQäðQô 	ñQr    c              ƒ   óZ   "  € \         P                  ! W!R ,          V 4      G Rj  x€L
 #  L5ir•   )r   Úget_dealer_request)r  r(   r   s   &&&r   r%  r%  q  s%   é € ô ×+Ò+¨B°{Õ0CÀZÓP×PÐPÑPùr�   z
/templatesc                ó0   € V ^8„  d   QhR\         R\        /# rI   rJ   )r   s   "r   r   r   |  s    € ÷ Iñ IÜðIäñIr    c              ƒ   óX   "  € \         P                  ! WR ,          4      G Rj  x€L
 #  L5ir•   )r   Úlist_vehicle_templatesr‘   s   &&r   r(  r(  {  s#   é € ô
 ×/Ò/°¸;Õ4GÓH×HÐHÑHùr—   c                óP   € V ^8„  d   QhR\         P                  R\        R\        /# )r   r:   r   r(   )r   ÚVehicleTemplateCreater   r   )r   s   "r   r   r   ƒ  s1   € ÷ Sñ SÜ×*Ñ*ðSäðSô ñSr    c              ƒ   óZ   "  € \         P                  ! WR ,          V 4      G Rj  x€L
 #  L5ir•   )r   Úcreate_vehicle_template)r:   r   r(   s   &&&r   r,  r,  ‚  s%   é € ô ×0Ò0°¸KÕ5HÈ'ÓR×RÐRÑRùr�   z/templates/{template_id}c                óp   € V ^8„  d   QhR\         P                  R\        P                  R\        R\
        /# )r   Útemplate_idr:   r   r(   )r6   r7   r   r*  r   r   )r   s   "r   r   r   Œ  s@   € ÷ `ñ `Ü—‘ð`ä×*Ñ*ð`ô 	ð`ô ñ	`r    c              ƒ   óZ   "  € \         P                  ! W#R ,          W4      G Rj  x€L
 #  L5ir•   )r   Úupdate_vehicle_template)r.  r:   r   r(   s   &&&&r   r0  r0  ‹  s%   é € ô ×0Ò0°¸KÕ5HÈ+Ó_×_Ð_Ñ_ùr�   c                óP   € V ^8„  d   QhR\         P                  R\        R\        /# )r   r.  r   r(   )r6   r7   r   r   )r   s   "r   r   r   –  s/   € ÷ Wñ WÜ—‘ðWäðWô ñWr    c              ƒ   óZ   "  € \         P                  ! WR ,          V 4      G Rj  x€L
 #  L5ir•   )r   Údelete_vehicle_template)r.  r   r(   s   &&&r   r3  r3  •  s%   é € ô ×0Ò0°¸KÕ5HÈ+ÓV×VÐVÑVùr�   z/upload-imagec                ó0   € V ^8„  d   QhR\         R\        /# )r   rî   r(   )r   r   )r   s   "r   r   r   ž  s    € ÷ Rñ RÜ
ðRäñRr    c              ƒ   ó¤  "  € ^ RI p^ RIp^ RIp\        VP	                  RR4      4      P                  4       P                  RR4      P                  RR4      pVP                  P                  RRV4      pVP                  ! VR	R
7       RV P                  9   d#   V P                  P                  R4      R,          MRpR\        VP                  ! 4       4       RV 2pVP                  P                  Wh4      p	\        V	R4      ;_uu_ 4       p
VP                  ! V P                  V
4       RRR4       RRV RV 2/#   + '       g   i     L; i5i)r   Nr,   rï   r&   rð   rñ   rò   Údealer_featuresTrû   Ú.ÚpngÚfeature_rþ   Ú	image_urlz/uploads/dealer_features/éÿÿÿÿ)r  r  r  rz   r.   r  r4   r  r	  r  rõ   r0   r  r  r  rî   )rî   r(   r  r  r  r  r  r  rõ   r  r  s   &&         r   Úupload_feature_imager<  �  s  é € ó
 ÛÛô ˜Ÿ™ K°Ó;Ó<×BÑBÓD×LÑLÈSÐRUÓV×^Ñ^Ð_bÐdgÓh€NØ�w‰w�|‰|˜IÐ'8¸.ÓI€HØ‡K‚K� 4Õ(à*-°·±Ô*>ˆ$�-‰-×
Ñ
˜cÓ
" 2Ö
&ÀE€CØœ#˜dŸiši›kÓ*Ð+¨1¨S¨EÐ2€HØ—‘—‘˜XÓ0€Iä	ˆi˜×	Ô	 &Ø×Ò˜4Ÿ9™9 fÔ-÷ 
ð Ð4°^Ð4DÀAÀhÀZÐPÐQÐQ÷ 
×	üs   ‚DEÄD=Ä+EÄ=E	ÅEz/seating-layoutsc                ó0   € V ^8„  d   QhR\         R\        /# rI   rJ   )r   s   "r   r   r   ¶  s   € ÷ 5ñ 5Üð5äñ5r    c              ƒ   óJ   "  € \         P                  ! V4      G R j  x€L
 #  L5ir·   )Ú
pm_serviceÚlist_seating_layoutsr‘   s   &&r   r@  r@  µ  s   é € ô
 ×0Ò0°Ó4×4Ð4Ñ4ùr¹   z/seating-layouts/searchc                ól   € V ^8„  d   QhR\         R\         R\         R\         R\         R\        R\        /# )r   Úchassis_modelÚ	body_typeÚsegmentÚ	door_typeÚ	seat_typer(   r   r�   )r   s   "r   r   r   ¾  sW   € ÷ 	pñ 	pÜð	päð	pô ð	pô ð		pô
 ð	pô ð	pô 	ñ	pr    c              ƒ   óN   "  € \         P                  ! W`WW44      G R j  x€L
 #  L5ir·   )r?  Úsearch_seating_layouts)rB  rC  rD  rE  rF  r(   r   s   &&&&&&&r   rH  rH  ½  s#   é € ô ×2Ò2°2ÀiÐZcÓo×oÐoÑoùs   ‚%ž#Ÿ%)Zr6   r  r  r  r   r   r   Útypingr   Úfastapir   r   r	   r
   r   r   r   r   Úsqlalchemy.ext.asyncior   Úapp.core.databaser   Úapp.core.securityr   Úapp.models.dealer_modelsr   Úapp.modules.dealer_portalr   r   Úapp.models.sales_modelsr   r   Úapp.modules.yardÚyard_schemasr¾   Úapp.modules.production_mastersÚ
pm_schemasr?  Úrouterr=   r.   rE   ÚDealerProfileOutr\   Úputrk   ÚpostÚDealerContactOutrx   r   r„   r…   ÚDealerLoginResponser�   r’   ÚlistÚ	ClientOutr–   ÚClientSearchResultrœ   r¡   r®   r´   ÚOrderMastersOutr¸   ÚChassisLookupOutrÀ   ÚDealerChassisListResponserÆ   ÚOrderListItemrÉ   ÚOrderDetailOutrÎ   rÔ   rÙ   rß   rè   ÚDealerRequestOutr  r"  r%  ÚVehicleTemplateOutr(  r,  r0  r3  r<  ÚSeatingLayoutOutr@  rH  rr   r    r   Ú<module>rf     s  ðÛ Û 	Û Û ß -Ñ -Ý ß ]× ]Ó ]Ý /å $Ý *Ý 4ß 6ß Cß Mß Wá	‹€ñ CJÈ&Ã/÷ Ið. ‡�ˆLÓá!& t£Ù$ T›{ÙÐ-Ó.Ù˜v“ö	gó ðgð ‡�ˆJ w×'?Ñ'?€Ó@Ù%,Ð-?Ó%@ÑU\Ð]cÓUdö ó Aðð ‡�ˆJ w×'?Ñ'?€Ó@ÙJQÐRdÓJeñ  {Bð  CIó  {Jö ó Aðð( ‡�Ð °×1IÑ1I€ÓJÙJQÐRdÓJeñ  {Bð  CIó  {Jö 
ó Kð
ð ‡�Ð,¸W×=UÑ=U€ÓVÙ[bÐcuÓ[vñ  LSð  TZó  L[ö ó Wðð$ ‡�Ð/Ó0Ù9@ÐASÓ9TÑipÐqwÓixö *ó 1ð*ð ‡�ˆX g×&AÑ&A€ÓBÙV]Ð^dÓVeö ró Cðrð ‡�ˆYÓÙ 'Ð(:Ó ;ÑPWÐX^ÓP_ö 2ó ð2ð
 ‡�ˆJ t¨G×,=Ñ,=Õ'>€Ó?Ù&-Ð.@Ó&AÑV]Ð^dÓVeö ?ó @ð?ð ‡�Ð¨d°7×3MÑ3MÕ.N€ÓOá�2Ð#FÔGÙÐ-Ó.Ù˜v“öDó PðDð ‡�Ð"°7×3DÑ3D€ÓEÙ4;Ð<NÓ4OÑdkÐlrÓdsö Hó FðHð ‡�ˆZ¨×(9Ñ(9Às€ÓKñ Ð-Ó.Ù˜v“ö	ó Lðð ‡�Ð"°7×3DÑ3D€ÓEñ
 Ð-Ó.Ù˜v“öó Fðð ‡�Ð¨W×-DÑ-D€ÓEÙ+2Ð3EÓ+FÑ[bÐciÓ[jö /ó Fð/ð ‡�Ð¨l×.KÑ.K€ÓLá˜C¨AÔ.ÙÐ-Ó.Ù˜v“ö=ó Mð=ð ‡�ˆM¨'×*KÑ*K€ÓLá! $›KÙ˜E“lÙÐ-Ó.Ù˜v“ö	oó Mðoð ‡�ˆI d¨7×+@Ñ+@Õ&A€ÓBá! $›KÙÐ-Ó.Ù˜v“öIó CðIð ‡�Ð °×1GÑ1G€ÓHÙ?FÐGYÓ?ZÑovÐw}Óo~ö Mó IðMð ‡�ˆY w×'=Ñ'=È3€ÓOñ Ð-Ó.Ù˜v“ö	Só PðSð ‡�Ð-¸g×>TÑ>T€ÓUñ Ð-Ó.Á7È6Ã?ö	ó Vð	ð ‡�Ð °×1GÑ1G€ÓHñ Ð-Ó.Á7È6Ã?ö	ó Ið	ð ‡�Ð*¸7×;QÑ;Q€ÓRñ ˜S¨Ô-ØÙÐ-Ó.Ù˜v“öó Sðð, ‡�ˆ[¨×)AÑ)AÈs€ÓSñ Ð-Ó.Ù˜v“ö;ó Tð;ðz ‡�ˆK¨¨W×-EÑ-EÕ(F€ÓGáÐ-Ó.Ù˜v“öGó HðGð ‡�Ð$°W×5MÑ5M€ÓNñ Ð-Ó.Ù˜v“öQó OðQð ‡�ˆL¨¨g×.HÑ.HÕ)I€ÓJáÐ-Ó.Ù˜v“öIó KðIð ‡�ˆ\¨'×*DÑ*DÐRU€ÓVñ ˜v“ÙÐ-Ó.öSó WðSð ‡�Ð&°w×7QÑ7Q€ÓRñ ˜v“ÙÐ-Ó.ö	`ó Sð`ð ‡�Ð)Ó*ñ ˜v“ÙÐ-Ó.öWó +ðWð ‡�ˆ_Óá˜C“yÙÐ-Ó.öRó ðRð. ‡�Ð¨t°J×4OÑ4OÕ/P€ÓQáÐ-Ó.Ù˜v“ö5ó Rð5ð ‡�Ð%°d¸:×;VÑ;VÕ6W€ÓXñ Ð-Ó.Ù˜v“ö	pó Yò	pr    