-- Migration 088 — Room Service: orders & order items CREATE TABLE room_service_orders ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), hotel_id UUID NOT NULL REFERENCES hotels(id) ON DELETE CASCADE, room_number TEXT NOT NULL, guest_name TEXT NOT NULL DEFAULT '', order_type TEXT NOT NULL DEFAULT 'room' CHECK (order_type IN ('room', 'restaurant')), scheduled_time TEXT, status TEXT NOT NULL DEFAULT 'new' CHECK (status IN ('new','preparing','ready','delivered','cancelled')), payment_method TEXT, -- name from hotel_payment_methods (snapshot) subtotal NUMERIC(10,2) NOT NULL DEFAULT 0, service_charge NUMERIC(10,2) NOT NULL DEFAULT 0, total NUMERIC(10,2) NOT NULL DEFAULT 0, notes TEXT, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() ); CREATE TABLE room_service_order_items ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), order_id UUID NOT NULL REFERENCES room_service_orders(id) ON DELETE CASCADE, menu_item_id UUID REFERENCES room_service_menu_items(id) ON DELETE SET NULL, name TEXT NOT NULL, emoji TEXT NOT NULL DEFAULT '🍽️', price NUMERIC(10,2) NOT NULL, quantity INTEGER NOT NULL DEFAULT 1 ); CREATE INDEX ON room_service_orders(hotel_id, status); CREATE INDEX ON room_service_orders(hotel_id, created_at DESC);