
    dik                         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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Text)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-&15x58<&</3Xe_3(,,'+x}+/3x}3"Hhsm"r1   r   c            	       F   e Zd ZU dZ ededd      Zee   e	d<    ede
d      Zee   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      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      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   )nullabler   Nr   r   r   r   r   r   r   r   r   r    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   r0   )
model_dumpaddflush)clsr<   r=   r   	data_dictnew_datas         r2   create_centralised_and_directz5TblCentralisedAndDirect.create_centralised_and_directH   sD    OO$O7	):	%&##
x

r1   c                 |    |j                  |       j                  | j                  |k(        j                         }|S N)queryfilterr(   all)rD   r(   r=   get_datas       r2   get_centralised_and_directz2TblCentralisedAndDirect.get_centralised_and_directQ   s1    88C=''(@AEEGr1   c                 .   |j                  |       j                  | j                  |k(        j                         }|j	                         }|j                         D ]  \  }}|	t        |||        |j                          |j                  |       |S rI   )	rJ   rK   r   firstrA   itemssetattrcommitrefresh)rD   r   r<   r=   update_datarE   keyvalues           r2   update_centralised_and_directz5TblCentralisedAndDirect.update_centralised_and_directV   s    hhsm**3+D+DH]+]^ddfOO%	#//+JC S%0 , 			


;r1   c                     |j                  |       j                  | j                  |k(        j                         }|sy|j	                  |       |j                          y)NFT)rJ   rK   r   rP   deleterS   )rD   r   r=   delete_datas       r2   delete_centralised_and_directz5TblCentralisedAndDirect.delete_centralised_and_directa   sM    hhsm**3+D+DH]+]^ddf
		+
		r1   ).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   groupclassmethodr   r   r   rG   rN   r   rX   r\   r0   r1   r2   r4   r4   &   s   0M)6d$*6#;  &33FtVZ%[vc{[ +88I4Z^*_OVC$J'_+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-j0=>SUZei0j-j -gtd KE6#*K8EFegkvz8{!6#*#5{ (5^DSW'XL&t$X6CD_afqu6vvedl3v=JKoqx  DH  >I&sTz(:  I4AB[]bmq4rVEDL1r-:;OQU`d-esTz*e,9:Mt^b,cvcDj)c4AB]_cnr4svcDj1s#0ZH\=]#^HfS4Z ^4HIE1B\1Q W^ sv   |U     D]    Kc ho   tM     Tm  r1   r4   N)pydanticr   sqlalchemy.ormr   r   r   r   
sqlalchemyr   r	   r
   r   r   r   app.models.base_classr   %app.api.centralised_and_direct.schemar   r   typingr   r   r4   r0   r1   r2   <module>rf      s:     G G F F & Q  #y #:Bd Br1   