
    NRi{
                         d dl mZmZ 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  G d de      Z G d de      Zy	)
    )	BaseModelField)Base)Mappedmapped_columnrelationshipSession)VARCHAR
ForeignKeyIntegerEnumFloatTextc                       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<    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)
UtilityBaseN)default
utility_idutility_namecost_per_monthkey_usage_parametersremarkstore_format_typegroup_id)__name__
__module____qualname__r   r   int__annotations__r   strr   floatr   r   r   r        >/var/www/html/retail-simulation-api/app/models/main/utility.pyr   r      s    #D1Jt1 %d 3L3:3$)$$7NUT\7(-d(;3:;-FS4Z-%*4%8d
8!$/HsTz/r"   r   c            	          e Zd ZU dZ ededd      Zee   e	d<    ed e
d      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dd      Zee   e	d<    ed edd            Zee   e	d<    ed 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)
TblUtilitytbl_utilityr   T)primary_keyautoincrementr      N)nullableserver_defaultr   r   r   r   zStore Formate AzStore Formate Br   ztbl_group.group_idTblGrouputility)back_populatesdatadbreturnc                 x    |j                         } | di |}|j                  |       |j                          |S )Nr!   )
model_dumpaddflush)clsr/   r0   	data_dictnew_datas        r#   create_utilityzTblUtility.create_utility   s5    OO%	##
x

r"   c                 |    |j                  |       j                  | j                  |k(        j                         }|S N)queryfilterr   all)r6   r   r0   get_datas       r#   get_utilityzTblUtility.get_utility#   s1    88C=''(@AEEGr"   utility_update_idc                 .   |j                  |       j                  | j                  |k(        j                         }|j	                         }|j                         D ]  \  }}|	t        |||        |j                          |j                  |       |S r;   )	r<   r=   r   firstr3   itemssetattrcommitrefresh)r6   r/   rA   r0   update_datar7   keyvalues           r#   update_utilityzTblUtility.update_utility(   s}    hhsm**3>>=N+NOUUWOO%	#//+JC S%0 , 			


;r"   c                     |j                  |       j                  | j                  |k(        j                         }|sy|j	                  |       |j                          y)NFT)r<   r=   r   rC   deleterF   )r6   r   r0   delete_datas       r#   delete_utilityzTblUtility.delete_utility3   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   r   r   r   r   r   groupclassmethodr   r	   r9   r@   rK   rO   r!   r"   r#   r%   r%      s   !M,\7PTdhiJi!.~ws|VZko!pL6#;p%23CUUYjn%oNVE]o)67MwWZ|fj{  *A6#;  A(4$W[\FVC[\&34GN_arIs&tst*:zBV7WXHvc{XI>E  L   # ' \      S_   s w ,  r"   r%   N)pydanticr   r   app.models.base_classr   sqlalchemy.ormr   r   r   r	   
sqlalchemyr
   r   r   r   r   r   r   r%   r!   r"   r#   <module>rW      s/    % & F F F F0) 0+ +r"   