o
    Uh                     @   st   d dl mZ d dlmZmZmZ d dlmZmZm	Z	m
Z
 d dlmZ d dlmZ G dd deZG dd	 d	eZd
S )    )Field)INTEGERVARCHAR
ForeignKey)MappedSessionmapped_columnrelationship)Base)CustomModelc                   @   s   e Zd ZU eddZedB ed< eddZedB ed< eddZedB ed< eddZ	edB ed< eddZ
edB ed< eddZedB ed< eddZedB ed	< eddZedB ed
< eddZedB ed< eddZedB ed< dZedB ed< dS )CustomerLocationBaseN)defaultcustomer_location_idISEC_Segmentsample_sizeaverage_ageincome_levelsoccupation_modeeducation_level_modeshopping_frequency_per_monthhousehold_consumption_per_month%total_household_consumption_per_monthgroup_id)__name__
__module____qualname__r   r   int__annotations__r   r   r   r   strr   r   r   r   r   r    r   r   </var/www/html/RetailAPI/app/models/main/customer_location.pyr      s   
 r   c                	   @   s  e Zd ZU dZedddZee ed< ede	ddZ
ee ed< ee	ddZee ed< ee	ddZee ed	< eed
ddZee ed< eedddZee ed< eedddZee ed< ee	ddZee ed< ee	ddZee ed< ee	ddZee ed< ede	edddZee ed< edddZedededd fddZedededdfddZededededdfdd Zedededefd!d"Z d#S )$TblCustomerLocationtbl_customer_locationT)primary_keyautoincrementr   r   F)nullabler   r      r   d   r   r   r   r   r   r   ztbl_group.group_idTblGroupcustomerlocation)back_populatesdatadbreturnc                 C   s,   |  }| di |}|| |  |S )Nr   )
model_dumpaddflush)clsr+   r,   	data_dictnew_datar   r   r    create&   s
   
zTblCustomerLocation.createzTblCustomerLocation | Nonec                 C   s   | | | j|k S N)queryfilterr   first)r1   r   r,   r   r   r    	get_by_id.   s   zTblCustomerLocation.get_by_idc                 C   sf   | | | j|k }|sd S | }| D ]\}}|d ur't||| q|  || |S r5   )	r6   r7   r   r8   r.   itemssetattrcommitrefresh)r1   r   r+   r,   get_datar2   keyvaluer   r   r    update2   s   
zTblCustomerLocation.updatec                 C   s8   | | | j|k }|sdS || |  dS )NFT)r6   r7   r   r8   deleter<   )r1   r   r,   objr   r   r    rB   ?   s   
zTblCustomerLocation.deleteN)!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   r4   r9   rA   boolrB   r   r   r   r    r!      s,   
  r!   N)pydanticr   
sqlalchemyr   r   r   sqlalchemy.ormr   r   r   r	   app.models.mainr
   app.utils.schemas_utilsr   r   r!   r   r   r   r    <module>   s    