o
    h                     @   s   d dl mZmZmZmZ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 d dlmZ d dlmZ d dlmZ d dlZG d	d
 d
eZG dd deZdS )    )INTEGERUUIDVARCHAR	TIMESTAMP
ForeignKeytextString)Mappedmapped_columnSessionrelationship)Base)HTTPException)Field)datetime)CustomModelNc                   @   s   e Zd ZU eddZedB ed< eddZej	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S )	AdminBaseN)defaultadmin_id
admin_uuid
company_idrole_idemail_id	user_name	pass_word	nick_namedisplay_namecompany_name)__name__
__module____qualname__r   r   int__annotations__r   uuidr   r   r   r   strr   r   r   r   r    r%   r%   1/var/www/html/beacon-api/app/models/main/admin.pyr      s   
 r   c                	   @   s  e Zd ZU dZeedddZee e	d< ee
ddd ddd	Zee e	d
< eeedddZee e	d< e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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eddZee e	d< eededdZee e	d< eddd Zed!dd Z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$d)fd*d+Z$eded"e d#e!d$d)fd,d-Z%d.S )/TblAdmin	tbl_adminT)primary_keyautoincrementr   $   c                   C   s   t t S N)r$   r#   uuid4r%   r%   r%   r&   <lambda>   s    zTblAdmin.<lambda>F)r   uniquenullabler   ztbl_company_list.company_id)r0   r   ztbl_role.role_idr   2   r   r   r      r   r      r   zcurrent_timestamp())r0   server_default
created_atz"NULL ON UPDATE current_timestamp()
updated_atTblCompanyListadmins)back_populatesTblRoledatadbreturnc                 C   s,   |  }| di |}|| |  |S )Nr%   )
model_dumpaddflush)clsr;   r<   	data_dict	new_adminr%   r%   r&   create,   s
   
zTblAdmin.createc                 C   s4   | | | j|k }|stdddt|S )Ni  zAdmin not found)status_codedetail)queryfilterr   firstr   r   model_validate)rA   r   r<   recordr%   r%   r&   	get_by_id4   s   
zTblAdmin.get_by_idzTblAdmin | Nonec                 C   s   | | | j|k S r,   )rG   rH   r   rI   )rA   r   r<   r%   r%   r&   get_id;   s   zTblAdmin.get_idc                 C   sf   | | | j|k }|sd S | }| D ]\}}|d ur't||| q|  || |S r,   )	rG   rH   r   rI   r>   itemssetattrcommitrefresh)rA   r   r;   r<   get_datarB   keyvaluer%   r%   r&   updateK   s   
zTblAdmin.updateN)&r   r   r    __tablename__r
   r   r   r	   r!   r"   r   r   r$   r   r   r   r   r   r   r   r   r   r   r   r   r5   r   r6   r   companyroleclassmethodr   r   rD   rL   rM   rU   r%   r%   r%   r&   r'      s0   
 $ r'   )
sqlalchemyr   r   r   r   r   r   r   sqlalchemy.ormr	   r
   r   r   app.models.mainr   fastapir   pydanticr   r   app.utils.schemas_utilsr   r#   r   r'   r%   r%   r%   r&   <module>   s   $ 