o
    Uh~                     @   s   d dl mZ d dlmZ d dlmZmZ d dl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G dd deZdS )    )HTTPException)Field)INTEGERVARCHAR)MappedSessionmapped_column)Base)CustomModelc                   @   s   e Zd ZU dZ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S )		UsersBase	tbl_usersNdefaultusr_idemailnamepassword	mobile_no)__name__
__module____qualname____tablename__r   r   int__annotations__r   strr   r   r    r   r   0/var/www/html/RetailAPI/app/models/main/users.pyr      s   
 r   c                   @   s:   e Zd ZU eddZedB ed< eddZedB ed< dS )UsersFilterNr   r   r   )	r   r   r   r   r   r   r   r   r   r   r   r   r   r      s   
 r   c                	   @   sz  e Zd ZU dZededddZee e	d< ede
ddddZee e	d	< ed
e
ddddZee e	d< ede
ddddZee e	d< ede
ddddZee e	d< ede
ddddZee e	d< ede
ddddZee e	d< ede
ddddZee e	d< edededd fddZededede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 )"TblUsersr   r   T)primary_keyautoincrement	usr_email   N)nullableserver_defaultr   usr_namer   usr_passwordr   usr_mobileNor   usr_ageageusr_addressaddressusr_lastLogin_statuslast_login_statusdatadbreturnc                 C   s,   |  }| di |}|| |  |S )Nr   )
model_dumpaddflush)clsr.   r/   	data_dictnew_datar   r   r   create%   s
   
zTblUsers.createc                 C   s4   | | | j|k }|stdddt|S Ni  zUser not found)status_codedetail)queryfilterr   firstr   r   model_validate)r4   r   r/   get_datar   r   r   
get_usr_id-   s   
zTblUsers.get_usr_idc                 C   sf   | | | j|k }|stddd| }| D ]
\}}t||| q|| |	  |S r8   )
r;   r<   r   r=   r   r1   itemssetattrr2   r3   )r4   r   r.   r/   r?   r5   keyvaluer   r   r   update4   s   
zTblUsers.updaterequestc                 C   s0   |j dd}|| jdi | }t|S )NT)exclude_noner   )r1   r;   	filter_byr=   r   r>   )r4   rF   r/   filter_datar?   r   r   r   get_by_filter@   s   
zTblUsers.get_by_filter)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r)   r+   r-   classmethodr   r   r7   r@   rE   r   rJ   r   r   r   r   r      s$   
        r   N)fastapir   pydanticr   
sqlalchemyr   r   sqlalchemy.ormr   r   r   app.models.mainr	   app.utils.schemas_utilsr
   r   r   r   r   r   r   r   <module>   s    