pantry-track/sites/Backpack/sql/create/item_locations.sql
2024-12-08 19:27:55 -06:00

23 lines
667 B
SQL

DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'cost_layer') THEN
CREATE TYPE cost_layer AS (qty FLOAT8, cost FLOAT8);
END IF;
END $$;
CREATE TABLE IF NOT EXISTS Backpack_item_locations(
id SERIAL PRIMARY KEY,
part_id INTEGER NOT NULL,
location_id INTEGER NOT NULL,
quantity_on_hand FLOAT8 NOT NULL,
cost_layers cost_layer[],
UNIQUE(part_id, location_id),
CONSTRAINT fk_part_id
FOREIGN KEY(part_id)
REFERENCES Backpack_items(id)
ON DELETE CASCADE,
CONSTRAINT fk_location_id
FOREIGN KEY(location_id)
REFERENCES Backpack_locations(id)
ON DELETE CASCADE
);