CREATE TABLE pietanze ( id SERIAL PRIMARY KEY, nome VARCHAR(150) NOT NULL, descrizione TEXT, categoria VARCHAR(50), -- primo, secondo, contorno, dolce prezzo DECIMAL(5,2), disponibile BOOLEAN DEFAULT true, ingredienti TEXT, -- Testo libero allergeni JSONB, -- Array di allergeni: ["glutine", "lattosio", ...] created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE pasti ( id SERIAL PRIMARY KEY, data_pasto DATE NOT NULL, tipo_pasto VARCHAR(20) NOT NULL, -- colazione, pranzo, cena disponibile BOOLEAN DEFAULT true, turno VARCHAR(20) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UNIQUE(data_pasto, tipo_pasto) ); CREATE TABLE prenotazioni ( id SERIAL PRIMARY KEY, user_id VARCHAR(100) NOT NULL, -- Estratto dal JWT pasto_id INTEGER REFERENCES pasti(id) ON DELETE CASCADE, pietanze_selezionate JSONB, -- Lista di pietanze note TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UNIQUE(user_id, pasto_id) );