
    Iin                     l   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
m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 d d	lmZ  e       Zej7                          ddZedefd       Z eej<                  de      ZejA                  eejB                  ddgdg       ejE                  e	       y
)    )asynccontextmanager)FastAPI)CORSMiddleware)text)router)get_settings)BaseSessionLocalengine)bookingcustomerreservationroomtablevenuewhatsapp)ensure_default_venue_setupNc                     t        j                         5 } | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d	             | j                  t        d
             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d              | j                  t        d!             | j                  t        d"             | j                  t        d#             | j                  t        d$             d d d        y # 1 sw Y   y xY w)%Nz<ALTER TABLE venues DROP CONSTRAINT IF EXISTS venues_name_keyzHALTER TABLE venues ADD COLUMN IF NOT EXISTS portal_tenant_id VARCHAR(80)zKALTER TABLE venues ADD COLUMN IF NOT EXISTS portal_tenant_slug VARCHAR(120)z`ALTER TABLE venues ADD COLUMN IF NOT EXISTS layout_policy_applied BOOLEAN NOT NULL DEFAULT FALSEzDALTER TABLE rooms ADD COLUMN IF NOT EXISTS counter_name VARCHAR(120)z<ALTER TABLE rooms ADD COLUMN IF NOT EXISTS counter_x INTEGERz<ALTER TABLE rooms ADD COLUMN IF NOT EXISTS counter_y INTEGERz@ALTER TABLE rooms ADD COLUMN IF NOT EXISTS counter_width INTEGERzAALTER TABLE rooms ADD COLUMN IF NOT EXISTS counter_height INTEGERzXALTER TABLE rooms ADD COLUMN IF NOT EXISTS counter_visible BOOLEAN NOT NULL DEFAULT TRUEzEALTER TABLE rooms ADD COLUMN IF NOT EXISTS entrance_name VARCHAR(120)z=ALTER TABLE rooms ADD COLUMN IF NOT EXISTS entrance_x INTEGERz=ALTER TABLE rooms ADD COLUMN IF NOT EXISTS entrance_y INTEGERzAALTER TABLE rooms ADD COLUMN IF NOT EXISTS entrance_width INTEGERzBALTER TABLE rooms ADD COLUMN IF NOT EXISTS entrance_height INTEGERzYALTER TABLE rooms ADD COLUMN IF NOT EXISTS entrance_visible BOOLEAN NOT NULL DEFAULT TRUEzIALTER TABLE rooms ADD COLUMN IF NOT EXISTS background_image_data_url TEXTzWALTER TABLE tables ADD COLUMN IF NOT EXISTS shape VARCHAR(20) NOT NULL DEFAULT 'square'z`ALTER TABLE tables ADD COLUMN IF NOT EXISTS rotation_degrees DOUBLE PRECISION NOT NULL DEFAULT 0z
                CREATE UNIQUE INDEX IF NOT EXISTS uq_venues_portal_tenant_id
                ON venues (portal_tenant_id)
                WHERE portal_tenant_id IS NOT NULL
                z
                ALTER TABLE venue_booking_settings
                ADD COLUMN IF NOT EXISTS whatsapp_assistant_prompt TEXT NOT NULL DEFAULT ''
                z
                ALTER TABLE venue_booking_settings
                ADD COLUMN IF NOT EXISTS whatsapp_business_account_id TEXT NOT NULL DEFAULT ''
                z
                ALTER TABLE venue_booking_settings
                ADD COLUMN IF NOT EXISTS whatsapp_business_id TEXT NOT NULL DEFAULT ''
                z
                ALTER TABLE venue_booking_settings
                ADD COLUMN IF NOT EXISTS whatsapp_phone_number_id TEXT NOT NULL DEFAULT ''
                z
                ALTER TABLE venue_booking_settings
                ADD COLUMN IF NOT EXISTS whatsapp_access_token TEXT NOT NULL DEFAULT ''
                z
                ALTER TABLE venue_booking_settings
                ADD COLUMN IF NOT EXISTS whatsapp_display_phone_number TEXT NOT NULL DEFAULT ''
                z
                ALTER TABLE venue_booking_settings
                ADD COLUMN IF NOT EXISTS whatsapp_verified_name TEXT NOT NULL DEFAULT ''
                z
                CREATE INDEX IF NOT EXISTS ix_venue_booking_settings_whatsapp_phone_number_id
                ON venue_booking_settings (whatsapp_phone_number_id)
                z
                CREATE UNIQUE INDEX IF NOT EXISTS uq_venue_booking_settings_whatsapp_phone_number_id
                ON venue_booking_settings (whatsapp_phone_number_id)
                WHERE whatsapp_phone_number_id <> ''
                z_ALTER TABLE whatsapp_event_logs ADD COLUMN IF NOT EXISTS venue_id INTEGER REFERENCES venues(id)z\CREATE INDEX IF NOT EXISTS ix_whatsapp_event_logs_venue_id ON whatsapp_event_logs (venue_id)z
                CREATE INDEX IF NOT EXISTS ix_whatsapp_assistant_turns_venue_contact_created
                ON whatsapp_assistant_turns (venue_id, contact_phone, created_at DESC, id DESC)
                zkALTER TABLE whatsapp_booking_sessions DROP CONSTRAINT IF EXISTS whatsapp_booking_sessions_contact_phone_keyz?DROP INDEX IF EXISTS ix_whatsapp_booking_sessions_contact_phonez
                CREATE INDEX IF NOT EXISTS ix_whatsapp_booking_sessions_contact_phone
                ON whatsapp_booking_sessions (contact_phone)
                z
                CREATE UNIQUE INDEX IF NOT EXISTS uq_whatsapp_booking_sessions_contact_phone_venue_id
                ON whatsapp_booking_sessions (contact_phone, venue_id)
                )r   beginexecuter   )
connections    #PRENOTAZIONI_IA/backend/app/main.pyensure_runtime_schemar      s   	 K
:4 ^_`4 jkl4 mnost	
 	4 fgh4 ^_`4 ^_`4 bcd4 cdekl	
 	4 ghi4 _`a4 _`a4 cde4 deflm	
 	4 klm4 yz{st	
 		
 		
 		
 		
 		
 		
 		
 		
 		
 		
 	4  !B  C  	Dop	
 		
 	4  !N  O  	P4 abc	
 		
IK
 K
 K
s   N)OO_c                   K   t         j                  j                  t               t	                t               }	 t        |       |j                          d  y # |j                          w xY ww)N)bind)r	   metadata
create_allr   r   r
   r   close)r   dbs     r   lifespanr!      sM     MM&)	B"2&

	 	
s   9A2A A2A//A2z0.1.0)titleversionr!   T*)allow_originsallow_credentialsallow_methodsallow_headers)returnN)#
contextlibr   fastapir   fastapi.middleware.corsr   
sqlalchemyr   app.api.routesr   app.core.configr   app.core.databaser	   r
   r   
app.modelsr   r   r   r   r   r   r   app.services.seed_servicer   settingsvalidate_runtimer   r!   app_nameappadd_middlewarecors_origins_listinclude_router     r   <module>r<      s    *  2  ! ( 8 8 S S S @ >    L
^ 
g 
 
 H%%wJ   ,,%%     6 r;   