+
    `Øj¦7  ã                   óN  € ^ RI t ^ RIt^ RI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Ht ]! 4       tR tR tR	 tR
 t]P-                  R]]P0                  ,          R7      ]! 4       ]! ]4      3R R ll4       t]P5                  R]P0                  ^ÉR7      ]! 4       ]! ]4      3R R ll4       t]P9                  R]P0                  R7      ]! 4       ]! ]4      3R R ll4       t]P=                  R^ÌR7      ]! 4       ]! ]4      3R R ll4       t]P-                  R]]P@                  ,          R7      ]! 4       ]! ]4      3R R ll4       t!]P5                  R]P@                  ^ÉR7      ]! 4       ]! ]4      3R R ll4       t"]P9                  R]P@                  R7      ]! 4       ]! ]4      3R R ll4       t#]P=                  R^ÌR7      ]! 4       ]! ]4      3R  R! ll4       t$]P-                  R"]]PJ                  ,          R7      ]! 4       ]! ]4      3R# R$ ll4       t&]P5                  R"]PJ                  ^ÉR7      ]! 4       ]! ]4      3R% R& ll4       t']P9                  R']PJ                  R7      ]! 4       ]! ]4      3R( R) ll4       t(]P=                  R'^ÌR7      ]! 4       ]! ]4      3R* R+ ll4       t)]P-                  R,]]PT                  ,          R7      ]! 4       ]! ]4      3R- R. ll4       t+]P5                  R,]PT                  ^ÉR7      ]! 4       ]! ]4      3R/ R0 ll4       t,]P5                  R14      ]! R24      ]! 4       3R3 R4 ll4       t-]P9                  R5]PT                  R7      ]! 4       ]! ]4      3R6 R7 ll4       t.]P=                  R5^ÌR7      ]! 4       ]! ]4      3R8 R9 ll4       t/]P-                  R:]]P`                  ,          R7      ]! 4       ]! ]4      3R; R< ll4       t1]P5                  R:]P`                  ^ÉR7      ]! 4       ]! ]4      3R= R> ll4       t2]P9                  R?]P`                  R7      ]! 4       ]! ]4      3R@ RA ll4       t3]P=                  R?^ÌR7      ]! 4       ]! ]4      3RB RC ll4       t4]P5                  RD]Pj                  ^ÉR7      ]! 4       ]! ]4      3RE RF ll4       t6]P9                  RG]Pj                  R7      ]! 4       ]! ]4      3RH RI ll4       t7]P=                  RG^ÌR7      ]! 4       ]! ]4      3RJ RK ll4       t8]P5                  RL4      ]! R24      ]! 4       3RM RN ll4       t9]P5                  RO4      ]! R24      ]! 4       3RP RQ ll4       t:]P-                  RR]]Pv                  ,          R7      ]! 4       ]! ]4      3RS RT ll4       t<]P5                  RR]Pv                  ^ÉR7      ]! 4       ]! ]4      3RU RV ll4       t=]P=                  RW^ÌR7      ]! 4       ]! ]4      3RX RY ll4       t>]P-                  RZ]]P~                  ,          R7      ]! 4       ]! ]4      3R[ R\ ll4       t@]P5                  RZ]P~                  ^ÉR7      ]! 4       ]! ]4      3R] R^ ll4       tA]P=                  R_^ÌR7      ]! 4       ]! ]4      3R` Ra ll4       tB]P-                  Rb]]P†                  ,          R7      ]! 4       ]! ]4      3Rc Rd ll4       tD]P5                  Rb]P†                  ^ÉR7      ]! 4       ]! ]4      3Re Rf ll4       tE]P=                  Rg^ÌR7      ]! 4       ]! ]4      3Rh Ri ll4       tF]P-                  Rj]]PŽ                  ,          R7      ]! 4       ]! ]4      3Rk Rl ll4       tH]P-                  Rm]]PŽ                  ,          R7      ]! 4       ]! ]4      3Rn Ro ll4       tI]P5                  Rj]PŽ                  ^ÉR7      ]! 4       ]! ]4      3Rp Rq ll4       tJ]P9                  Rr]PŽ                  R7      ]! 4       ]! ]4      3Rs Rt ll4       tK]P=                  Rr^ÌR7      ]! 4       ]! ]4      3Ru Rv ll4       tL]P5                  Rw4      ]! R24      ]! 4       3Rx Ry ll4       tM]P5                  Rz4      ]! R24      ]! 4       3R{ R| ll4       tN]P-                  R}]]Pž                  ,          ]! 4       .R~7      ]! ]4      3R R€ ll4       tP]P5                  R}]Pž                  ]! 4       .R~7      ]! ]4      3R� R‚ ll4       tQ]P9                  Rƒ]Pž                  ]! 4       .R~7      ]! ]4      3R„ R… ll4       tR]P=                  Rƒ]! 4       .R†7      ]! ]4      3R‡ Rˆ ll4       tS]P5                  R‰]! 4       .R†7      ]! R24      3RŠ R‹ ll4       tTR# )Œé    N)Ú	APIRouterÚDependsÚ
UploadFileÚFileÚHTTPException©ÚAsyncSession)Úget_db)Úrequire_permission)ÚschemasÚservicec                  ó,   € \        \        R R4      4      # )ÚPRODUCTION_MASTERSÚview©r   r   © ó    ÚG/var/www/html/audi_dev/backend/app/modules/production_masters/routes.pyÚ_viewr      ó   € ÜÔ%Ð&:¸FÓCÓDÐDr   c                  ó,   € \        \        R R4      4      # )r   Úeditr   r   r   r   Ú_editr      r   r   c                  ó,   € \        \        R R4      4      # )r   Úcreater   r   r   r   Ú_creater      ó   € ÜÔ%Ð&:¸HÓEÓFÐFr   c                  ó,   € \        \        R R4      4      # )r   Údeleter   r   r   r   Ú_deleter       r   r   z/body-types)Úresponse_modelc                ó$   € V ^8„  d   QhR\         /# ©é   Údbr   )Úformats   "r   Ú__annotate__r'       s   € ÷ -ñ -¬ñ -r   c              ƒ   óJ   "  € \         P                  ! V4      G R j  x€L
 #  L5i©N)r   Úlist_body_types©Ú_r%   s   &&r   r*   r*      s   é € ä×(Ò(¨Ó,×,Ð,Ñ,ùó   ‚#œ!�#)r!   Ústatus_codec                óD   € V ^8„  d   QhR\         P                  R\        /# ©r$   Úpayloadr%   )r   ÚBodyTypeCreater	   )r&   s   "r   r'   r'   %   s    € ÷ 7ñ 7¤G×$:Ñ$:ð 7Ì\ñ 7r   c              ƒ   óJ   "  € \         P                  ! W 4      G R j  x€L
 #  L5ir)   )r   Úcreate_body_type©r1   r,   r%   s   &&&r   r4   r4   $   s   é € ä×)Ò)¨"Ó6×6Ð6Ñ6ùr-   z/body-types/{body_type_id}c                ód   € V ^8„  d   QhR\         P                  R\        P                  R\        /# )r$   Úbody_type_idr1   r%   )ÚuuidÚUUIDr   ÚBodyTypeUpdater	   )r&   s   "r   r'   r'   *   s1   € ÷ Eñ E¬¯©ð E¼W×=SÑ=Sð EÔdpñ Er   c              ƒ   óL   "  € \         P                  ! W0V4      G R j  x€L
 #  L5ir)   )r   Úupdate_body_type)r7   r1   r,   r%   s   &&&&r   r<   r<   )   s   é € ä×)Ò)¨"¸GÓD×DÐDÑDùó   ‚$�"ž$)r.   c                óD   € V ^8„  d   QhR\         P                  R\        /# )r$   r7   r%   ©r8   r9   r	   )r&   s   "r   r'   r'   /   s   € ÷ 5ñ 5¬¯©ð 5Ä\ñ 5r   c              ƒ   óN   "  € \         P                  ! W 4      G R j  x€L
  R #  L5ir)   )r   Údelete_body_type)r7   r,   r%   s   &&&r   rA   rA   .   s   é € ä
×
"Ò
" 2Ó
4×4Ô4ùó   ‚%œ#�%z	/segmentsc                ó$   € V ^8„  d   QhR\         /# r#   r   )r&   s   "r   r'   r'   6   ó   € ÷ +ñ +¤|ñ +r   c              ƒ   óJ   "  € \         P                  ! V4      G R j  x€L
 #  L5ir)   )r   Úlist_segmentsr+   s   &&r   rF   rF   5   ó   é € ä×&Ò& rÓ*×*Ð*Ñ*ùr-   c                óD   € V ^8„  d   QhR\         P                  R\        /# r0   )r   ÚSegmentCreater	   )r&   s   "r   r'   r'   ;   ó    € ÷ 5ñ 5¤'×"7Ñ"7ð 5Ì,ñ 5r   c              ƒ   óJ   "  € \         P                  ! W 4      G R j  x€L
 #  L5ir)   )r   Úcreate_segmentr5   s   &&&r   rL   rL   :   ó   é € ä×'Ò'¨Ó4×4Ð4Ñ4ùr-   z/segments/{segment_id}c                ód   € V ^8„  d   QhR\         P                  R\        P                  R\        /# )r$   Ú
segment_idr1   r%   )r8   r9   r   ÚSegmentUpdater	   )r&   s   "r   r'   r'   @   ó1   € ÷ Añ A¤T§Y¡Yð A¼×9NÑ9Nð AÔ_kñ Ar   c              ƒ   óL   "  € \         P                  ! W0V4      G R j  x€L
 #  L5ir)   )r   Úupdate_segment)rO   r1   r,   r%   s   &&&&r   rS   rS   ?   ó   é € ä×'Ò'¨¸Ó@×@Ð@Ñ@ùr=   c                óD   € V ^8„  d   QhR\         P                  R\        /# )r$   rO   r%   r?   )r&   s   "r   r'   r'   E   ó   € ÷ 1ñ 1¤T§Y¡Yð 1Äñ 1r   c              ƒ   óN   "  € \         P                  ! W 4      G R j  x€L
  R #  L5ir)   )r   Údelete_segment)rO   r,   r%   s   &&&r   rX   rX   D   ó   é € ä
×
 Ò
  Ó
0×0Ô0ùrB   z/rtosc                ó$   € V ^8„  d   QhR\         /# r#   r   )r&   s   "r   r'   r'   L   s   € ÷ 'ñ '¤<ñ 'r   c              ƒ   óJ   "  € \         P                  ! V4      G R j  x€L
 #  L5ir)   )r   Ú	list_rtosr+   s   &&r   r\   r\   K   s   é € ä×"Ò" 2Ó&×&Ð&Ñ&ùr-   c                óD   € V ^8„  d   QhR\         P                  R\        /# r0   )r   Ú	RtoCreater	   )r&   s   "r   r'   r'   Q   s    € ÷ 1ñ 1œg×/Ñ/ð 1Ä,ñ 1r   c              ƒ   óJ   "  € \         P                  ! W 4      G R j  x€L
 #  L5ir)   )r   Ú
create_rtor5   s   &&&r   r`   r`   P   s   é € ä×#Ò# BÓ0×0Ð0Ñ0ùr-   z/rtos/{rto_id}c                ód   € V ^8„  d   QhR\         P                  R\        P                  R\        /# )r$   Úrto_idr1   r%   )r8   r9   r   Ú	RtoUpdater	   )r&   s   "r   r'   r'   V   s,   € ÷ 9ñ 9œTŸY™Yð 9´×1BÑ1Bð 9ÔS_ñ 9r   c              ƒ   óL   "  € \         P                  ! W0V4      G R j  x€L
 #  L5ir)   )r   Ú
update_rto)rb   r1   r,   r%   s   &&&&r   re   re   U   s   é € ä×#Ò# B°Ó8×8Ð8Ñ8ùr=   c                óD   € V ^8„  d   QhR\         P                  R\        /# )r$   rb   r%   r?   )r&   s   "r   r'   r'   [   s   € ÷ )ñ )œTŸY™Yð )¼ñ )r   c              ƒ   óN   "  € \         P                  ! W 4      G R j  x€L
  R #  L5ir)   )r   Ú
delete_rto)rb   r,   r%   s   &&&r   rh   rh   Z   s   é € ä
×
Ò
˜RÓ
(×(Ô(ùrB   z/modelsc                ó$   € V ^8„  d   QhR\         /# r#   r   )r&   s   "r   r'   r'   b   s   € ÷ )ñ )¤\ñ )r   c              ƒ   óJ   "  € \         P                  ! V4      G R j  x€L
 #  L5ir)   )r   Úlist_modelsr+   s   &&r   rk   rk   a   s   é € ä×$Ò$ RÓ(×(Ð(Ñ(ùr-   c                óD   € V ^8„  d   QhR\         P                  R\        /# r0   )r   ÚModelCreater	   )r&   s   "r   r'   r'   g   s    € ÷ 3ñ 3¤× 3Ñ 3ð 3Älñ 3r   c              ƒ   óJ   "  € \         P                  ! W 4      G R j  x€L
 #  L5ir)   )r   Úcreate_modelr5   s   &&&r   ro   ro   f   s   é € ä×%Ò% bÓ2×2Ð2Ñ2ùr-   z/models/upload-image.c                ó$   € V ^8„  d   QhR\         /# ©r$   Úfile©r   )r&   s   "r   r'   r'   l   s   € ÷ Yñ YÜ
ñYr   c              ƒ  ó`  "  € ^ RI p^ RIp VP                  ! RRR7       RV P                  9   d#   V P                  P	                  R4      R,          MRp\
        P                  ! 4       P                   RV 2pVP                  P                  RV4      p\        VR4      ;_uu_ 4       pVP                  V P                  V4       RRR4       RR	VP                  VP                  R	4       2/#   + '       g   i     L1; i  \         d   p\!        R
R\#        T4       2R7      hRp?ii ; i5i)z)
Upload an image for a production model.
Nzuploads/modelsT©Úexist_okÚ.ÚpngÚwbÚ	image_urlÚ/i�  zFailed to upload image: )r.   Údetailéÿÿÿÿ)ÚshutilÚosÚmakedirsÚfilenameÚsplitr8   Úuuid4ÚhexÚpathÚjoinÚopenÚcopyfileobjrr   ÚreplaceÚsepÚ	Exceptionr   Ústr)	rr   r,   r~   r   Úextr�   Ú	file_pathÚbufferÚes	   &&       r   Úupload_model_imager‘   k   s  é € ó ÛðYà
�ŠÐ$¨tÕ4ð /2°T·]±]Ô.Bˆd�m‰m×!Ñ! #Ó& rÖ*ÈˆÜ—j’j“l×&Ñ&Ð' q¨¨Ð.ˆØ—G‘G—L‘LÐ!1°8Ó<ˆ	ô �)˜T×"Ô" fØ×Ñ˜tŸy™y¨&Ô1÷ #ð ˜q ×!2Ñ!2°2·6±6¸3Ó!?Ð @ÐAÐBÐB÷ #×"ûô ô YÜ¨Ð6NÌsÐSTËvÈhÐ4WÔXÐXûðYüsA   ‚	D.ŒBD Â)C/Ã(D Ã.D.Ã/C?	Ã:D ÄD+ÄD&Ä&D+Ä+D.z/models/{model_id}c                ód   € V ^8„  d   QhR\         P                  R\        P                  R\        /# )r$   Úmodel_idr1   r%   )r8   r9   r   ÚModelUpdater	   )r&   s   "r   r'   r'   ˆ   s,   € ÷ =ñ =¤§¡ð =´W×5HÑ5Hð =ÔYeñ =r   c              ƒ   óL   "  € \         P                  ! W0V4      G R j  x€L
 #  L5ir)   )r   Úupdate_model)r“   r1   r,   r%   s   &&&&r   r–   r–   ‡   s   é € ä×%Ò% b°GÓ<×<Ð<Ñ<ùr=   c                óD   € V ^8„  d   QhR\         P                  R\        /# )r$   r“   r%   r?   )r&   s   "r   r'   r'   �   s   € ÷ -ñ -¤§¡ð -¼\ñ -r   c              ƒ   óN   "  € \         P                  ! W 4      G R j  x€L
  R #  L5ir)   )r   Údelete_model)r“   r,   r%   s   &&&r   r™   r™   Œ   s   é € ä
×
Ò
˜rÓ
,×,Ô,ùrB   z	/featuresc                ó$   € V ^8„  d   QhR\         /# r#   r   )r&   s   "r   r'   r'   ”   rD   r   c              ƒ   óJ   "  € \         P                  ! V4      G R j  x€L
 #  L5ir)   )r   Úlist_featuresr+   s   &&r   rœ   rœ   “   rG   r-   c                óD   € V ^8„  d   QhR\         P                  R\        /# r0   )r   ÚFeatureCreater	   )r&   s   "r   r'   r'   ™   rJ   r   c              ƒ   óJ   "  € \         P                  ! W 4      G R j  x€L
 #  L5ir)   )r   Úcreate_featurer5   s   &&&r   r    r    ˜   rM   r-   z/features/{feature_id}c                ód   € V ^8„  d   QhR\         P                  R\        P                  R\        /# ©r$   Ú
feature_idr1   r%   )r8   r9   r   ÚFeatureUpdater	   )r&   s   "r   r'   r'   ž   rQ   r   c              ƒ   óL   "  € \         P                  ! W0V4      G R j  x€L
 #  L5ir)   )r   Úupdate_feature©r£   r1   r,   r%   s   &&&&r   r¦   r¦   �   rT   r=   c                óD   € V ^8„  d   QhR\         P                  R\        /# )r$   r£   r%   r?   )r&   s   "r   r'   r'   £   rV   r   c              ƒ   óN   "  € \         P                  ! W 4      G R j  x€L
  R #  L5ir)   )r   Údelete_feature)r£   r,   r%   s   &&&r   rª   rª   ¢   rY   rB   z/features/{feature_id}/optionsc                ód   € V ^8„  d   QhR\         P                  R\        P                  R\        /# r¢   )r8   r9   r   ÚFeatureOptionCreater	   )r&   s   "r   r'   r'   ¨   s1   € ÷ Hñ H¬D¯I©Ið HÄ×@[Ñ@[ð HÔnzñ Hr   c              ƒ   óL   "  € \         P                  ! W0V4      G R j  x€L
 #  L5ir)   )r   Úcreate_feature_optionr§   s   &&&&r   r®   r®   §   s   é € ä×.Ò.¨r¸wÓG×GÐGÑGùr=   z*/features/{feature_id}/options/{option_id}c                ó„   € V ^8„  d   QhR\         P                  R\         P                  R\        P                  R\        /# )r$   r£   Ú	option_idr1   r%   )r8   r9   r   ÚFeatureOptionUpdater	   )r&   s   "r   r'   r'   ­   s@   € ÷ Sñ SÜ—	‘	ðSÜ&*§i¡iðSÜ:A×:UÑ:UðSäñSr   c              ƒ   óL   "  € \         P                  ! W@W4      G R j  x€L
 #  L5ir)   )r   Úupdate_feature_option)r£   r°   r1   r,   r%   s   &&&&&r   r³   r³   ¬   s    é € ô
 ×.Ò.¨r¸yÓR×RÐRÑRùr=   c                ód   € V ^8„  d   QhR\         P                  R\         P                  R\        /# )r$   r£   r°   r%   r?   )r&   s   "r   r'   r'   µ   s1   € ÷ Cñ CÜ—	‘	ðCÜ&*§i¡iðCÜBNñCr   c              ƒ   óP   "  € \         P                  ! W0V4      G R j  x€L
  R #  L5ir)   )r   Údelete_feature_option)r£   r°   r,   r%   s   &&&&r   r¶   r¶   ´   s   é € ô ×
'Ò
'¨¸	Ó
B×BÔBùs   ‚&�$ž&z/features/upload-imagec                ó$   € V ^8„  d   QhR\         /# rq   rs   )r&   s   "r   r'   r'   ¼   s   € ÷ :ñ :Ü
ñ:r   c              ƒ   ó@  "  € ^ RI p\        P                  ! RRR7       V P                  p\        P                  P                  RV4      p\        VR4      ;_uu_ 4       pVP                  V P                  V4       RRR4       RRV 2/#   + '       g   i     L; i5i)r   Nzuploads/featuresTru   ry   rz   z/uploads/features/©	r~   r   r€   r�   r…   r†   r‡   rˆ   rr   ©rr   r,   r~   r�   rŽ   r�   s   &&    r   Úupload_feature_imager»   »   s‚   é € ó
 ô ‡K‚KÐ"¨TÕ2ð �}‰}€HÜ—‘—‘Ð/°Ó:€Iô 
ˆi˜×	Ô	 &Ø×Ñ˜4Ÿ9™9 fÔ-÷ 
ð Ð-¨h¨ZÐ8Ð9Ð9÷ 
×	üó   ‚ABÁBÁ<BÂB	ÂBz/body-types/upload-imagec                ó$   € V ^8„  d   QhR\         /# rq   rs   )r&   s   "r   r'   r'   Ñ   s   € ÷ <ñ <Ü
ñ<r   c              ƒ   ó@  "  € ^ RI p\        P                  ! RRR7       V P                  p\        P                  P                  RV4      p\        VR4      ;_uu_ 4       pVP                  V P                  V4       RRR4       RRV 2/#   + '       g   i     L; i5i)r   Nzuploads/body_typesTru   ry   rz   z/uploads/body_types/r¹   rº   s   &&    r   Úupload_body_type_imager¿   Ð   s‚   é € ó
 ô ‡K‚KÐ$¨tÕ4ð �}‰}€HÜ—‘—‘Ð1°8Ó<€Iô 
ˆi˜×	Ô	 &Ø×Ñ˜4Ÿ9™9 fÔ-÷ 
ð Ð/°¨zÐ:Ð;Ð;÷ 
×	ür¼   z/model-body-typesc                ó$   € V ^8„  d   QhR\         /# r#   r   )r&   s   "r   r'   r'   è   ó   € ÷ 3ñ 3¬|ñ 3r   c              ƒ   óJ   "  € \         P                  ! V4      G R j  x€L
 #  L5ir)   )r   Úlist_model_body_typesr+   s   &&r   rÃ   rÃ   ç   ó   é € ä×.Ò.¨rÓ2×2Ð2Ñ2ùr-   c                óD   € V ^8„  d   QhR\         P                  R\        /# r0   )r   ÚModelBodyTypeLinkr	   )r&   s   "r   r'   r'   í   ó!   € ÷ :ñ :¤w×'@Ñ'@ð :ÔQ]ñ :r   c              ƒ   óJ   "  € \         P                  ! W 4      G R j  x€L
 #  L5ir)   )r   Úadd_model_body_typer5   s   &&&r   rÉ   rÉ   ì   ó   é € ä×,Ò,¨RÓ9×9Ð9Ñ9ùr-   z/model-body-types/{link_id}c                óD   € V ^8„  d   QhR\         P                  R\        /# ©r$   Úlink_idr%   r?   )r&   s   "r   r'   r'   ò   ó   € ÷ 6ñ 6¬$¯)©)ð 6ÄLñ 6r   c              ƒ   óN   "  € \         P                  ! W 4      G R j  x€L
  R #  L5ir)   )r   Úremove_model_body_type©rÍ   r,   r%   s   &&&r   rÐ   rÐ   ñ   ó   é € ä
×
(Ò
(¨Ó
5×5Ô5ùrB   z/model-segmentsc                ó$   € V ^8„  d   QhR\         /# r#   r   )r&   s   "r   r'   r'   ÷   s   € ÷ 1ñ 1¬\ñ 1r   c              ƒ   óJ   "  € \         P                  ! V4      G R j  x€L
 #  L5ir)   )r   Úlist_model_segmentsr+   s   &&r   rÕ   rÕ   ö   s   é € ä×,Ò,¨RÓ0×0Ð0Ñ0ùr-   c                óD   € V ^8„  d   QhR\         P                  R\        /# r0   )r   ÚModelSegmentLinkr	   )r&   s   "r   r'   r'   ü   s    € ÷ 8ñ 8¤W×%=Ñ%=ð 8Ìlñ 8r   c              ƒ   óJ   "  € \         P                  ! W 4      G R j  x€L
 #  L5ir)   )r   Úadd_model_segmentr5   s   &&&r   rÙ   rÙ   û   s   é € ä×*Ò*¨2Ó7×7Ð7Ñ7ùr-   z/model-segments/{link_id}c                óD   € V ^8„  d   QhR\         P                  R\        /# rÌ   r?   )r&   s   "r   r'   r'     s   € ÷ 4ñ 4¬¯	©	ð 4Ä,ñ 4r   c              ƒ   óN   "  € \         P                  ! W 4      G R j  x€L
  R #  L5ir)   )r   Úremove_model_segmentrÑ   s   &&&r   rÜ   rÜ      s   é € ä
×
&Ò
& rÓ
3×3Ô3ùrB   z/feature-segmentsc                ó$   € V ^8„  d   QhR\         /# r#   r   )r&   s   "r   r'   r'     rÁ   r   c              ƒ   óJ   "  € \         P                  ! V4      G R j  x€L
 #  L5ir)   )r   Úlist_feature_segmentsr+   s   &&r   rß   rß     rÄ   r-   c                óD   € V ^8„  d   QhR\         P                  R\        /# r0   )r   ÚFeatureSegmentAddr	   )r&   s   "r   r'   r'     rÇ   r   c              ƒ   óJ   "  € \         P                  ! W 4      G R j  x€L
 #  L5ir)   )r   Úadd_feature_segmentr5   s   &&&r   rã   rã   
  rÊ   r-   z/feature-segments/{link_id}c                óD   € V ^8„  d   QhR\         P                  R\        /# rÌ   r?   )r&   s   "r   r'   r'     rÎ   r   c              ƒ   óN   "  € \         P                  ! W 4      G R j  x€L
  R #  L5ir)   )r   Úremove_feature_segmentrÑ   s   &&&r   ræ   ræ     rÒ   rB   z/seating-layoutsc                ó$   € V ^8„  d   QhR\         /# r#   r   )r&   s   "r   r'   r'     s   € ÷ 2ñ 2¬lñ 2r   c              ƒ   óJ   "  € \         P                  ! V4      G R j  x€L
 #  L5ir)   )r   Úlist_seating_layoutsr+   s   &&r   ré   ré     s   é € ä×-Ò-¨bÓ1×1Ð1Ñ1ùr-   z/seating-layouts/searchc                ó`   € V ^8„  d   QhR\         R\         R\         R\         R\         R\        /# )r$   Úchassis_modelÚ	body_typeÚsegmentÚ	door_typeÚ	seat_typer%   )rŒ   r	   )r&   s   "r   r'   r'     sL   € ÷ 	mñ 	mÜð	mäð	mô ð	mô ð		mô
 ð	mô 	ñ	mr   c              ƒ   óN   "  € \         P                  ! W`WW44      G R j  x€L
 #  L5ir)   )r   Úsearch_seating_layouts)rë   rì   rí   rî   rï   r,   r%   s   &&&&&&&r   rñ   rñ     s#   é € ô ×/Ò/°À9ÐW`Ól×lÐlÑlùs   ‚%ž#Ÿ%c                óD   € V ^8„  d   QhR\         P                  R\        /# r0   )r   ÚSeatingLayoutCreater	   )r&   s   "r   r'   r'   )  s!   € ÷ <ñ <¬×)DÑ)Dð <ÔWcñ <r   c              ƒ   óJ   "  € \         P                  ! W 4      G R j  x€L
 #  L5ir)   )r   Úcreate_seating_layoutr5   s   &&&r   rõ   rõ   (  s   é € ä×.Ò.¨rÓ;×;Ð;Ñ;ùr-   z/seating-layouts/{layout_id}c                ód   € V ^8„  d   QhR\         P                  R\        P                  R\        /# )r$   Ú	layout_idr1   r%   )r8   r9   r   ÚSeatingLayoutUpdater	   )r&   s   "r   r'   r'   .  s1   € ÷ Gñ G¬4¯9©9ð G¼w×?ZÑ?Zð GÔkwñ Gr   c              ƒ   óL   "  € \         P                  ! W0V4      G R j  x€L
 #  L5ir)   )r   Úupdate_seating_layout)r÷   r1   r,   r%   s   &&&&r   rú   rú   -  s   é € ä×.Ò.¨r¸gÓF×FÐFÑFùr=   c                óD   € V ^8„  d   QhR\         P                  R\        /# )r$   r÷   r%   r?   )r&   s   "r   r'   r'   3  s   € ÷ 7ñ 7¬4¯9©9ð 7Ä|ñ 7r   c              ƒ   óN   "  € \         P                  ! W 4      G R j  x€L
  R #  L5ir)   )r   Údelete_seating_layout)r÷   r,   r%   s   &&&r   rý   rý   2  s   é € ä
×
'Ò
'¨Ó
6×6Ô6ùrB   z/seating-layouts/upload-imagec                ó$   € V ^8„  d   QhR\         /# rq   rs   )r&   s   "r   r'   r'   8  ó   € ÷ ;ñ ;Ü
ñ;r   c              ƒ   ó8  "  € ^ RI p^ RIpVP                  ! RRR7       V P                  pVP                  P                  RV4      p\        VR4      ;_uu_ 4       pVP                  V P                  V4       RRR4       RRV 2/#   + '       g   i     L; i5i©r   Nzuploads/seating_layoutsTru   ry   Úurlz/uploads/seating_layouts/r¹   ©rr   r,   r~   r   r�   rŽ   r�   s   &&     r   Úupload_seating_layout_imager  7  ó}   é € ó
 ÛØ‡K‚KÐ)°DÕ9Ø�}‰}€HØ—‘—‘Ð6¸ÓA€IÜ	ˆi˜×	Ô	 &Ø×Ñ˜4Ÿ9™9 fÔ-÷ 
àÐ.¨x¨jÐ9Ð:Ð:÷ 
×	üó   ‚ABÁBÁ8BÂB	ÂBz/seating-layouts/upload-pdfc                ó$   € V ^8„  d   QhR\         /# rq   rs   )r&   s   "r   r'   r'   G  rÿ   r   c              ƒ   ó8  "  € ^ RI p^ RIpVP                  ! RRR7       V P                  pVP                  P                  RV4      p\        VR4      ;_uu_ 4       pVP                  V P                  V4       RRR4       RRV 2/#   + '       g   i     L; i5ir  r¹   r  s   &&     r   Úupload_seating_layout_pdfr	  F  r  r  z/seat-model-configs)r!   Údependenciesc                ó$   € V ^8„  d   QhR\         /# r#   r   )r&   s   "r   r'   r'   W  s   € ÷ 5ñ 5¤lñ 5r   c              ƒ   óJ   "  € \         P                  ! V 4      G R j  x€L
 #  L5ir)   )r   Úlist_seat_model_configs)r%   s   &r   r  r  V  s   é € ä×0Ò0°Ó4×4Ð4Ñ4ùr-   c                óD   € V ^8„  d   QhR\         P                  R\        /# r0   )r   ÚSeatModelConfigurationCreater	   )r&   s   "r   r'   r'   [  s!   € ÷ ?ñ ?¬G×,PÑ,Pð ?ÔVbñ ?r   c              ƒ   óJ   "  € \         P                  ! W4      G R j  x€L
 #  L5ir)   )r   Úcreate_seat_model_config)r1   r%   s   &&r   r  r  Z  s   é € ä×1Ò1°"Ó>×>Ð>Ñ>ùr-   z/seat-model-configs/{config_id}c                ód   € V ^8„  d   QhR\         P                  R\        P                  R\        /# )r$   Ú	config_idr1   r%   )r8   r9   r   ÚSeatModelConfigurationUpdater	   )r&   s   "r   r'   r'   _  s1   € ÷ Jñ J¬d¯i©ið JÄ'×BfÑBfð JÔlxñ Jr   c              ƒ   óL   "  € \         P                  ! W V4      G R j  x€L
 #  L5ir)   )r   Úupdate_seat_model_config)r  r1   r%   s   &&&r   r  r  ^  s   é € ä×1Ò1°"ÀÓI×IÐIÑIùr=   )r
  c                óD   € V ^8„  d   QhR\         P                  R\        /# )r$   r  r%   r?   )r&   s   "r   r'   r'   c  s   € ÷ ñ ¬d¯i©ið ¼\ñ r   c              ƒ   óR   "  € \         P                  ! W4      G R j  x€L
  RR/#  L5i)NÚokT)r   Údelete_seat_model_config)r  r%   s   &&r   r  r  b  s(   é € ä
×
*Ò
*¨2Ó
9×9Ð9Ø�$ˆ<Ðñ :ùs   ‚'œ%�	'z /seat-model-configs/upload-imagec                ó$   € V ^8„  d   QhR\         /# rq   rs   )r&   s   "r   r'   r'   h  s   € ÷ >ñ >¬ñ >r   c              ƒ   ó8  "  € ^ RI p^ RIpVP                  ! RRR7       V P                  pVP                  P                  RV4      p\        VR4      ;_uu_ 4       pVP                  V P                  V4       RRR4       RRV 2/#   + '       g   i     L; i5i)r   Nzuploads/seat_configsTru   ry   rz   z/uploads/seat_configs/r¹   )rr   r~   r   r�   rŽ   r�   s   &     r   Úupload_seat_config_imager  g  s{   é € ãÛØ‡K‚KÐ&°Õ6Ø�}‰}€HØ—‘—‘Ð3°XÓ>€IÜ	ˆi˜×	Ô	 &Ø×Ñ˜4Ÿ9™9 fÔ-÷ 
àÐ1°(°Ð<Ð=Ð=÷ 
×	ür  )Ur   r8   Úfastapir   r   r   r   r   Úsqlalchemy.ext.asyncior	   Úapp.core.databaser
   Úapp.core.securityr   Úapp.modules.production_mastersr   r   Úrouterr   r   r   r    ÚgetÚlistÚBodyTypeOutr*   Úpostr4   Úputr<   r   rA   Ú
SegmentOutrF   rL   rS   rX   ÚRtoOutr\   r`   re   rh   ÚModelOutrk   ro   r‘   r–   r™   Ú
FeatureOutrœ   r    r¦   rª   ÚFeatureOptionOutr®   r³   r¶   r»   r¿   ÚModelBodyTypeOutrÃ   rÉ   rÐ   ÚModelSegmentOutrÕ   rÙ   rÜ   ÚFeatureSegmentOutrß   rã   ræ   ÚSeatingLayoutOutré   rñ   rõ   rú   rý   r  r	  ÚSeatModelConfigurationOutr  r  r  r  r  r   r   r   Ú<module>r3     s+
  ðÛ 	Û ß GÕ GÝ /å $Ý 0ß ;á	‹€òEòEòGòGð ‡�ˆM¨$¨w×/BÑ/BÕ*C€ÓDÙ!›G¹À»ö -ó Eð-ð ‡�ˆ]¨7×+>Ñ+>ÈC€ÓPÙ>E»iÑ\cÐdjÓ\kö 7ó Qð7ð ‡�Ð(¸×9LÑ9L€ÓMÙW\ÓW^Ñszð  |Bó  tCö Eó NðEð ‡�Ð+¸€Ó=Ù6=³iÑT[Ð\bÓTcö 5ó >ð5ð ‡�ˆK¨¨W×-?Ñ-?Õ(@€ÓAÙ›'±g¸f³oö +ó Bð+ð ‡�ˆ[¨×);Ñ);È€ÓMÙ;B»9ÑY`ÐagÓYhö 5ó Nð5ð ‡�Ð$°W×5GÑ5G€ÓHÙRWÓRYÑnuÐv|Ón}ö Aó IðAð ‡�Ð'°S€Ó9Ù29³)ÑPWÐX^ÓP_ö 1ó :ð1ð ‡�ˆG D¨¯©Õ$8€Ó9Ù“g±'¸&³/ö 'ó :ð'ð ‡�ˆW W§^¡^À€ÓEÙ3:³9ÑQXÐY_ÓQ`ö 1ó Fð1ð ‡�Ð¨W¯^©^€Ó<ÙFKÃgÑbiÐjpÓbqö 9ó =ð9ð ‡�Ð¨S€Ó1Ù*1«)ÉÐPVËö )ó 2ð)ð ‡�ˆI d¨7×+;Ñ+;Õ&<€Ó=Ù›±G¸F³Oö )ó >ð)ð ‡�ˆY w×'7Ñ'7ÀS€ÓIÙ7>³yÑU\Ð]cÓUdö 3ó Jð3ð ‡�Ð#Ó$á˜C“yÙƒiöYó %ðYð6 ‡�Ð °×1AÑ1A€ÓBÙLQËGÑhoÐpvÓhwö =ó Cð=ð ‡�Ð#°€Ó5Ù.5«iÉGÐTZËOö -ó 6ð-ð ‡�ˆK¨¨W×-?Ñ-?Õ(@€ÓAÙ›'±g¸f³oö +ó Bð+ð ‡�ˆ[¨×);Ñ);È€ÓMÙ;B»9ÑY`ÐagÓYhö 5ó Nð5ð ‡�Ð$°W×5GÑ5G€ÓHÙRWÓRYÑnuÐv|Ón}ö Aó IðAð ‡�Ð'°S€Ó9Ù29³)ÑPWÐX^ÓP_ö 1ó :ð1ð ‡�Ð-¸g×>VÑ>VÐdg€ÓhÙ_fÓ_hñ  ~Eð  FLó  ~Mö Hó iðHð ‡�Ð8È×IaÑIa€Óbñ ƒg¡'¨&£/öSó cðSð ‡�Ð;È€ÓMá3:³9ÑQXÐY_ÓQ`öCó NðCð ‡�Ð%Ó&á˜C“yÙƒiö:ó 'ð:ð( ‡�Ð'Ó(á˜C“yÙƒiö<ó )ð<ð, ‡�Ð°°W×5MÑ5MÕ0N€ÓOÙ"'£'¹gÀf»oö 3ó Pð3ð ‡�Ð °×1IÑ1IÐWZ€Ó[ÙDIÃGÑ`gÐhnÓ`oö :ó \ð:ð ‡�Ð,¸#€Ó>Ù7<³wÑSZÐ[aÓSbö 6ó ?ð6ð ‡�Ð¨d°7×3JÑ3JÕ.K€ÓLÙ %£¹GÀF»Oö 1ó Mð1ð ‡�Ð¨w×/FÑ/FÐTW€ÓXÙAFÃÑ]dÐekÓ]lö 8ó Yð8ð ‡�Ð*¸€Ó<Ù5:³WÑQXÐY_ÓQ`ö 4ó =ð4ð ‡�Ð°°W×5NÑ5NÕ0O€ÓPÙ"'£'¹gÀf»oö 3ó Qð3ð ‡�Ð °×1JÑ1JÐX[€Ó\ÙDIÃGÑ`gÐhnÓ`oö :ó ]ð:ð ‡�Ð,¸#€Ó>Ù7<³wÑSZÐ[aÓSbö 6ó ?ð6ð ‡�Ð¨t°G×4LÑ4LÕ/M€ÓNÙ!&£¹WÀV»_ö 2ó Oð2ð ‡�Ð%°d¸7×;SÑ;SÕ6T€ÓUñ ƒgÙ˜v“ö	mó Vð	mð ‡�Ð°×0HÑ0HÐVY€ÓZÙHOË	ÑfmÐntÓfuö <ó [ð<ð ‡�Ð*¸7×;SÑ;S€ÓTÙ^cÓ^eñ  {Bð  CIó  {Jö Gó UðGð ‡�Ð-¸3€Ó?Ù8?»	ÑV]Ð^dÓVeö 7ó @ð7ð ‡�Ð,Ó-á˜C“yÙƒiö;ó .ð;ð ‡�Ð*Ó+á˜C“yÙƒiö;ó ,ð;ð ‡�Ð!°$°w×7XÑ7XÕ2YÑinÓipÐhq€ÓrÙ5<¸V³_ö 5ó sð5ð ‡�Ð"°7×3TÑ3TÑdiÓdkÐcl€ÓmÙelÐmsÓetö ?ó nð?ð ‡�Ð-¸g×>_Ñ>_ÑotÓovÐnw€Óxñ |Cð  DJó  |Kö Jó yðJð ‡�Ð0ÁÃ¸y€ÓIÙLSÐTZËOö ó Jðð ‡�Ð/¹u»w¸i€ÓHÙ6:¸3³iö >ó Iò>r   