2023-08-29 21:33:59 +02:00
|
|
|
CREATE TABLE "inventory_items" (
|
2023-08-29 21:33:59 +02:00
|
|
|
id VARCHAR(36) NOT NULL,
|
|
|
|
|
name TEXT NOT NULL,
|
|
|
|
|
description TEXT,
|
|
|
|
|
weight INTEGER NOT NULL,
|
|
|
|
|
category_id VARCHAR(36) NOT NULL,
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
FOREIGN KEY (category_id) REFERENCES inventory_items_categories(id)
|
|
|
|
|
);
|
2023-08-29 21:33:59 +02:00
|
|
|
CREATE UNIQUE INDEX ux_unique ON inventory_items(name, category_id);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE "inventory_items_categories" (
|
|
|
|
|
id VARCHAR(36) NOT NULL,
|
|
|
|
|
name TEXT NOT NULL,
|
|
|
|
|
description TEXT,
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
UNIQUE (name)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE "trips" (
|
|
|
|
|
id VARCHAR(36) NOT NULL,
|
|
|
|
|
name TEXT NOT NULL,
|
|
|
|
|
date_start DATE NOT NULL,
|
|
|
|
|
date_end DATE NOT NULL,
|
|
|
|
|
location TEXT,
|
2023-08-29 21:33:59 +02:00
|
|
|
state VARCHAR(8) NOT NULL,
|
2023-08-29 21:33:59 +02:00
|
|
|
comment TEXT,
|
|
|
|
|
temp_min INTEGER,
|
|
|
|
|
temp_max INTEGER,
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
UNIQUE (name)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE "trips_types" (
|
|
|
|
|
id VARCHAR(36) NOT NULL,
|
|
|
|
|
name TEXT NOT NULL,
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
UNIQUE (name)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE "trips_to_trips_types" (
|
|
|
|
|
trip_id VARCHAR(36) NOT NULL,
|
|
|
|
|
trip_type_id VARCHAR(36) NOT NULL,
|
|
|
|
|
PRIMARY KEY (trip_id, trip_type_id),
|
|
|
|
|
FOREIGN KEY(trip_id) REFERENCES "trips" (id),
|
|
|
|
|
FOREIGN KEY(trip_type_id) REFERENCES "trips_types" (id)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE trips_items (
|
|
|
|
|
item_id VARCHAR(36) NOT NULL,
|
|
|
|
|
trip_id VARCHAR(36) NOT NULL,
|
|
|
|
|
pick BOOLEAN NOT NULL,
|
|
|
|
|
pack BOOLEAN NOT NULL,
|
|
|
|
|
PRIMARY KEY (item_id, trip_id),
|
|
|
|
|
FOREIGN KEY(item_id) REFERENCES "inventory_items" (id),
|
|
|
|
|
FOREIGN KEY(trip_id) REFERENCES "trips" (id)
|
|
|
|
|
);
|