
    1h                         d dl mZ d dlmZmZmZmZ d dlmZm	Z	m
Z
mZmZ d dlmZ d dlmZmZ d dl mZ d dlmZ  G d de      Z G d	 d
e      Zy)    )	BaseModel)Mappedmapped_columnrelationshipSession)
ForeignKeyIntegerVARCHAREnumFloat)Base)CentralisedCreateDirectCreate)Optionalc                      e Zd ZU dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed	<   dZee   ed
<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   y)CentralisedAndDirectBaseNcentralised_direct_iddistribution_typeabout_warehousewarehouse_sizeexpected_number_of_warehouse0expected_number_of_warehouse_increase_every_yearutilities_costemployee_cost_per_headrental_expensestransportation_costnumber_of_employeestypescentralised_additional_remarkabout_directspace_allotted_in_a_store"employees_in_charge_at_store_levelsalary_of_each_employeeunloading_policieschecking_policiesdirect_additional_remarksgroup_id)__name__
__module____qualname__r   r   int__annotations__r   strr   r   floatr   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'        M/var/www/html/retail-simulation-api/app/models/main/centralised_and_direct.pyr   r   	   s:   +/8C=/'+x}+ &*OXc])&*NHUO*26 (3-6FJ4hsmJ&*NHUO*.2HUO2'+OXe_++/%/)-#-E8C=37!8C=7 #'L(3-&/3x}38<&</3Xe_3(,,'+x}+/3x}3"Hhsm"r0   r   c            	          e Zd ZU dZ ededd      Zee   e	d<    ed e
dd            Zee   e	d<    ed ed	      d
      Zeedz     e	d<    eded
      Zeedz     e	d<    eded
      Zeedz     e	d<    eded
      Zeedz     e	d<    eded
      Zeedz     e	d<    eded
      Zeedz     e	d<    eded
      Zeedz     e	d<    eded
      Zeedz     e	d<    eded
      Zeedz     e	d<    ed e
dd      d
      Zeedz     e	d<    ed ed	      d
      Zeedz     e	d<    ed ed	      d
      Zeedz     e	d<    eded
      Zeedz     e	d<    eded
      Zeedz     e	d<    eded
      Zeedz     e	d<    ed ed	      d
      Zeedz     e	d<    ed ed	      d
      Z eedz     e	d<    ed ed	      d
      Z!eedz     e	d<    ed e"d             Z#eedz     e	d<    e$d!d"#      Z%e&d$e'e(z  d%e)ded&d fd'       Z*e&ded%e)d&d fd(       Z+e&ded$e,d%e)d&d fd)       Z-e&ded%e)d&d fd*       Z.y)+TblCentralisedAndDirecttbl_centralised_and_directr   T)primary_keyautoincrementr   z"Centralised Warehouse Distributionz"Direct Store Delivery Distributionr      )nullableNr   r   r   r   r   r   r   r   r   PutawayFlowthroughr   r    r!   r"   r#   r$   r%   r&   r'   ztbl_group.group_idTblGroupcentralised_direct)back_populatesdatadbreturnc                     |j                  d      }||d<    | di |}|j                  |       |j                          |S )NT)exclude_unsetr   r/   )
model_dumpaddflush)clsr>   r?   r   	data_dictnew_datas         r1   create_centralised_and_directz5TblCentralisedAndDirect.create_centralised_and_directK   sD    OO$O7	):	%&##
x

r0   c                 |    |j                  |       j                  | j                  |k(        j                         }|S N)queryfilterr'   all)rF   r'   r?   get_datas       r1   get_centralised_and_directz2TblCentralisedAndDirect.get_centralised_and_directT   s1    88C=''(@AEEGr0   c                 .   |j                  |       j                  | j                  |k(        j                         }|j	                         }|j                         D ]  \  }}|	t        |||        |j                          |j                  |       |S rK   )	rL   rM   r   firstrC   itemssetattrcommitrefresh)rF   r   r>   r?   update_datarG   keyvalues           r1   update_centralised_and_directz5TblCentralisedAndDirect.update_centralised_and_directY   s    hhsm**3+D+DH]+]^ddfOO%	#//+JC S%0 , 			


;r0   c                     |j                  |       j                  | j                  |k(        j                         }|sy|j	                  |       |j                          y)NFT)rL   rM   r   rR   deleterU   )rF   r   r?   delete_datas       r1   delete_centralised_and_directz5TblCentralisedAndDirect.delete_centralised_and_directd   sM    hhsm**3+D+DH]+]^ddf
		+
		r0   )/r(   r)   r*   __tablename__r   r	   r   r   r+   r,   r   r   r-   r
   r   r   r   r.   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r   r'   r   groupclassmethodr   r   r   rI   rP   r   rZ   r^   r/   r0   r1   r3   r3   &   s   0M)6d$*6#;  &313WX&vc{  +88I7SV<bf*gOVC$J'g+89I5[_+`NF54<(`7DEcelw{7| &t"4|KX  ZL  NU  `d  Le4fS4Z6H  e+89I5[_+`NF54<(`3@AY[`ko3pF54<0p,9:KU]a,bOVEDL)b0=>SUZei0j-j.;<QSZei.jd
+j -gtI}7U`d eE6#*e8EFegnorgs  C  9D!6#*#5  D (5^WS\\`'aL&t$a4AB]_fqu4vvcDj1v=JKoqx  DH  >I&sTz(:  I4AB[]bmq4rVEDL1r-:;OQXY\Q]hl-msTz*m,9:MwWZ|fj,kvcDj)k4AB]_fgj_kvz4{vcDj1{#0ZH\=]#^HfS4Z ^4HIE1B\1Q W^ sv   |U     D]    Kc ho   tM     Tm  r0   r3   N)pydanticr   sqlalchemy.ormr   r   r   r   
sqlalchemyr   r	   r
   r   r   app.models.base_classr   %app.api.centralised_and_direct.schemar   r   typingr   r   r3   r/   r0   r1   <module>rh      s:     G G @ @ & Q  #y #:Ed Er0   