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)
);
