32 lines
1.2 KiB
SQL
32 lines
1.2 KiB
SQL
DROP TABLE IF EXISTS product_paint;
|
|
DROP TABLE IF EXISTS paint;
|
|
|
|
-- Create paint table
|
|
CREATE TABLE paint (
|
|
id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
|
color TEXT NOT NULL UNIQUE,
|
|
name TEXT NOT NULL,
|
|
path character varying(255) NOT NULL UNIQUE,
|
|
created timestamp with time zone NOT NULL DEFAULT now(),
|
|
updated timestamp with time zone DEFAULT NULL
|
|
);
|
|
|
|
CREATE TRIGGER updated_timestamp BEFORE UPDATE ON paint FOR EACH ROW EXECUTE PROCEDURE updated_timestamp();
|
|
|
|
-- Insert mock paint data (for now)
|
|
INSERT INTO paint (color, name, path)
|
|
VALUES
|
|
('NCS S 5020-B90G', 'Sage Green', 'sage-green'),
|
|
('NCS S 1505-B', 'Ice Blue', 'ice-blue'),
|
|
('NCS S 1015-G', 'Breeze Green', 'breeze-green'),
|
|
('NCS S 0540-Y90R', 'Peachy', 'peachy'),
|
|
('NCS S 1060-R30B', 'Magenta', 'magenta');
|
|
|
|
-- Create product_paint table
|
|
CREATE TABLE product_paint (
|
|
product_id INTEGER NOT NULL REFERENCES "product-products"(productid) ON UPDATE CASCADE ON DELETE CASCADE,
|
|
paint_id INTEGER NOT NULL REFERENCES paint(id) ON UPDATE CASCADE ON DELETE CASCADE,
|
|
UNIQUE(product_id, paint_id)
|
|
);
|
|
|