
    ι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)IntegerTextEnum
ForeignKey)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<    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)CustomerEngagementBaseN)defaultcustomer_idreference_competitordo_they_have_a_loyalty_programwhat_kind_of_loyalitywhat_are_same_keydo_you_think_thisother_remarksgroup_id)__name__
__module____qualname__r   r   int__annotations__r   strr   r   r   r   r   r        U/var/www/html/retail-simulation-api/app/models/main/customer_engagement_strategies.pyr   r      s    $T2K#*2(-d(;3:;272E"S4ZE).t)<C$J<%*4%8d
8%*4%8d
8!&t!4MC$J4!$/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      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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 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)TblCustomerEngagementtbl_customer_engagementr   T)primary_keyautoincrementr   N)nullableserver_defaultr   YesNor   r   r   r   r   ztbl_group.group_idTblGroupcustomer_engagement)back_populatesdatadbreturnc                 t     | di |j                         }|j                  |       |j                          |S )Nr   )
model_dumpaddflush)clsr.   r/   	data_dicts       r!   create_customerz%TblCustomerEngagement.create_customer   s1    ,$//+,	
y

r    c                 |    |j                  |       j                  | j                  |k(        j                         }|S N)queryfilterr   all)r5   r   r/   	get_groups       r!   get_customerz"TblCustomerEngagement.get_customer$   s2    HHSM(()ABFFH	r    	update_idc                 .   |j                  |       j                  | j                  |k(        j                         }|j	                         }|j                         D ]  \  }}|	t        |||        |j                          |j                  |       |S r9   )	r:   r;   r   firstr2   itemssetattrcommitrefresh)r5   r?   r.   r/   update_datar6   keyvalues           r!   update_customerz%TblCustomerEngagement.update_customer)   s|    hhsm**3??i+GHNNPOO%	#//+JC S%0 , 			


;r    c                     |j                  |       j                  | j                  |k(        j                         }|sy|j	                  |       |j                          y)NFT)r:   r;   r   rA   deleterD   )r5   r   r/   delete_datas       r!   delete_customerz%TblCustomerEngagement.delete_customer4   sJ    hhsm**3??k+IJPPR
		+
		r    )r   r   r   __tablename__r   r	   r   r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   groupclassmethodr   r   r7   r>   rI   rM   r   r    r!   r#   r#      s   -M -mWRVfj kK&+k)67Mt^bsw)x6#;x3@Aacghmnrcs3t"VC[t*78OQU`duy*zF3Kz&34GX\mq&rsr&34GX\mq&rsr"/PTei"jMF3Kj*:w
K_@`aHvc{a4IJE"8 W H_   3 7 6M   s 1G G Wn     <S  r    r#   N)pydanticr   r   sqlalchemy.ormr   r   r   r   
sqlalchemyr	   r
   r   r   app.models.base_classr   r   r#   r   r    r!   <module>rU      s/    % G G 6 6 &0Y 0+D +r    