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