
    ιh	                     |    d dl mZmZ d dlmZmZmZmZ d dlm	Z	m
Z
mZmZ d dlmZ  G d de      Z G d de      Zy	)
    )	BaseModelField)Mappedmapped_columnrelationshipSession)VARCHARInteger
ForeignKeyFloat)Basec                       e Zd ZU  ed      Zedz  ed<    ed      Zedz  ed<    ed      Z	e
dz  ed<    ed      Zedz  ed<   y)ProjectedMarketShareBaseN)default
project_idmarket_share_estimateassumptionsgroup_id)__name__
__module____qualname__r   r   int__annotations__r   floatr   strr        M/var/www/html/retail-simulation-api/app/models/main/projected_market_share.pyr   r      sO    #D1Jt1+0+>EDL>$T2K#*2!$/HsTz/r   r   c            	       V   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d      Zee   e	d<    ed
e ed            Zee   e	d
<    edd      Ze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)TblProjectedMarketSharetbl_projected_market_sharer   T)autoincrementprimary_keyr   N)nullableserver_defaultr      r   ztbl_group.group_idTblGroupprojected_market_share)back_populatesdatadbreturnc                 t     | di |j                         }|j                  |       |j                          |S )Nr   )
model_dumpaddflush)clsr*   r+   	data_dicts       r   create_project_marketz-TblProjectedMarketShare.create_project_market   s1    ,$//+,	
y

r   c                 |    |j                  |       j                  | j                  |k(        j                         }|S N)queryfilterr   all)r1   r   r+   get_datas       r   get_projected_marketz,TblProjectedMarketShare.get_projected_market   s1    88C=''(@AEEGr   projected_idc                 ,   |j                  |       j                  | j                  |k(        j                         }|j	                         }|j                         D ]  \  }}|	t        |||        |j                          |j                  |       y r5   )	r6   r7   r   firstr.   itemssetattrcommitrefresh)r1   r;   r*   r+   update_datar2   keyvalues           r   update_projected_marketz/TblProjectedMarketShare.update_projected_market!   sv    hhsm**3>>\+IJPPROO%	#//+JC S%0 , 			


;r   c                     |j                  |       j                  | j                  |k(        j                         }|sy|j	                  |       |j                          y)NFT)r6   r7   r   r=   deleter@   )r1   r   r+   delete_datas       r   delete_projected_marketz/TblProjectedMarketShare.delete_projected_market+   sJ    hhsm**3>>Z+GHNNP
		+
		r   )r   r   r   __tablename__r   r
   r   r   r   r   r   r   r   r	   r   r   r   r   r   groupclassmethodr   r   r3   r:   rE   rI   r   r   r   r    r       s9   0M,\7RVdhiJi,9:QSXcgx|,}F5M} -mWS\TXim nK&+n*:w
K_@`aHvc{a4LME(@ W Pi   3 7 >W    #  <T  Y`  d}       C\  r   r    N)pydanticr   r   sqlalchemy.ormr   r   r   r   
sqlalchemyr	   r
   r   r   app.models.base_classr   r   r    r   r   r   <module>rQ      s/    % F F : : &0y 0&d &r   