
    i                        d dl Z d dlmZmZmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZ d dlmZmZmZ d dlmZ  G d dee j                        Z G d d	ee j                        Z eed
      Z eed      Z G d de      Z G d de      Zy)    N)datedatetimetime)	DateDateTimeEnum
ForeignKeyIntegerStringTextTimefunc)Mappedmapped_columnrelationship)Basec                   $    e Zd ZdZdZdZdZdZdZy)ReservationStatuspending	confirmedseated	completed	cancelledno_showN)	__name__
__module____qualname__r   r   r   r   r   r        ?/var/www/html/PRENOTAZIONI_IA/backend/app/models/reservation.pyr   r   
   s     GIFIIGr   r   c                       e Zd ZdZdZdZy)ReservationSourcemanualwhatsappwebN)r   r   r   r#   r$   r%   r   r   r    r"   r"      s    FH
Cr   r"   reservation_status)namereservation_sourcec                      e Zd ZU dZ 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      Zee   ed<    eed      Zee   ed<    eed      Zee   ed<    eed      Zee   ed<    eedej.                        Zee   ed<    eedej6                        Zee   ed<    eed      Zeedz     ed<    e e d      d      Z!eedz     ed<    e e	d      dd      Z"eedz     ed<    e e	d      dd      Z#eedz     ed<    e e$d       e%jL                         d      Z'ee(   ed<    e e$d       e%jL                          e%jL                         d      Z)ee(   ed<    e*d d!      Z+ e*d"d!      Z, e*d#d!      Z- e*d$d!      Z. e*d%d&d'd()      Z/y)*ReservationreservationsTprimary_keyindexidz	venues.idFnullabler.   venue_idzcustomers.idcustomer_idreservation_dater1   
start_timeduration_minutesguests)r1   defaultstatussourceNnotesx   area_preferencez	tables.idassigned_table_idztable_combinations.idassigned_combination_idtimezoneserver_defaultr1   
created_at)rD   onupdater1   
updated_atVenueback_populatesCustomerTableTableCombinationReservationStatusHistoryreservationzall, delete-orphanz#ReservationStatusHistory.changed_at)rJ   cascadeorder_by)0r   r   r   __tablename__r   r/   r   int__annotations__r	   r2   r3   r   r4   r   r   r6   r   r
   r7   r8   reservation_status_enumr   r   r:   reservation_source_enumr"   r#   r;   r   r<   strr   r>   r?   r@   r   r   nowrE   r   rG   r   venuecustomerassigned_tableassigned_combinationstatus_historyr   r   r    r*   r*      s;   "M#DABsA)*[*AEY]^HfSk^,Z-GRW_cdKd%24%t%TfTlT,TEBJtB$1'E$JfSkJ'%@FF3K@(56MX]gx  hA  hA  )BFF$%  B(56MX]gxgg  )AFF$%  A -dT BE6#*B*7sd*SOVC$J'S,9*[:Q\`hl,mvcDj)m2?*+3VC$J/ 
 $141HYaY]YaYaYcns#tJx t#0$txxz	$Jx   @EJ~FH!'.IN'(:>Z!"$$6	Nr   r*   c                      e Zd ZU dZ edd      Zee   ed<    e e	d      dd      Z
ee   ed<    eed	      Zeed
z     ed<    eed	      Zee   ed<    e ed       ej"                         d      Zee   ed<    edd      Zy
)rN   reservation_status_historyTr,   r/   zreservations.idFr0   reservation_idr5   N
old_status
new_statusrA   rC   
changed_atr*   r]   rI   )r   r   r   rR   r   r/   r   rS   rT   r	   r`   rU   ra   r   rb   r   r   rX   rc   r   r   rO   r   r   r    rN   rN   E   s    0M#DABsA"/
;L0MX]ei"jNF3Kj3@AXcg3hJ(4/0h,9:Q\a,bJ()b#041HYaY]YaYaYcns#tJx t}=MNKr   rN   )enumr   r   r   
sqlalchemyr   r   r   r	   r
   r   r   r   r   sqlalchemy.ormr   r   r   app.core.databaser   rW   r   r"   rU   rV   r*   rN   r   r   r    <module>rh      s     ) ) Z Z Z > > "TYY TYY  07KL 07KL %$ %P	Ot 	Or   