o
    g                     @   s   d dl mZmZ d dlmZ d dlmZmZ d dlZd dlm	Z	m
Z
 d dlmZmZ G dd deZG d	d
 d
eZG dd deZdS )    )DocumentLink)Optional)datetimetimezoneN)UUIDuuid4)FieldEmailStrc                   @   s   e Zd ZU eedZeed< edddZe	ed< edddZ
eed< d	Zee	 ed
< d	Zee	 ed< eddddZe	ed< G dd dZede	defddZd	S )Userdefault_factoryid.FuniquenameTemailNcompanyposition^\d{10,15}$)patternr   phone_numberc                   @      e Zd ZdZddgZdS )zUser.Settingsusersr   r   N__name__
__module____qualname__r   indexes r   r   '/home/ubuntu/booths_qr_events/models.pySettings   s
    r!   returnc                 C   s   t d}t||S )Nr   )recompileboolmatch)clsr   r   r   r   r    validate_phone_number   s   
zUser.validate_phone_number)r   r   r   r	   r   r   r   __annotations__r   strr   r
   r   r   r   r   r!   classmethodr%   r(   r   r   r   r    r   	   s   
 r   c                   @   sV   e Zd ZU eedZeed< edddZe	ed< edddZ
e	ed< G dd	 d	Zd
S )Boothr   r   .Tr   r   qr_codec                   @   r   )zBooth.Settingsboothsr   r-   Nr   r   r   r   r    r!   #   s
    r!   N)r   r   r   r	   r   r   r   r)   r   r*   r-   r!   r   r   r   r    r,      s
   
 r,   c                   @   s\   e Zd ZU eedZeed< ee	 ed< ee
 ed< edd dZeed< G dd	 d	Zd
S )
ScanRecordr   r   user_idbooth_idc                   C   s   t tjS )N)r   nowr   utcr   r   r   r    <lambda>/   s    zScanRecord.<lambda>	timestampc                   @   s   e Zd ZdZddggZdS )zScanRecord.Settingsscan_records)r0      )r1   r7   N)r   r   r   r   unique_indexesr   r   r   r    r!   1   s    r!   N)r   r   r   r	   r   r   r   r)   r   r   r,   r5   r   r!   r   r   r   r    r/   +   s   
 r/   )beanier   r   typingr   r   r   r#   uuidr   r   pydanticr	   r
   r   r,   r/   r   r   r   r    <module>   s   