You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

34 lines
1.2 KiB

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