diff --git a/migrations/000.494.sql b/migrations/000.494.sql new file mode 100644 index 0000000..b4dc1aa --- /dev/null +++ b/migrations/000.494.sql @@ -0,0 +1,75 @@ +-- Drop existing tables +DROP TABLE IF EXISTS paint_card_samples; +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, + hex character varying(7) NOT NULL UNIQUE, + article_number character varying(255) NOT NULL UNIQUE, + paint_primer_id INTEGER REFERENCES paint_primer(id) ON UPDATE CASCADE ON DELETE SET NULL, + 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 data +INSERT INTO paint (color, name, path, hex, article_number, paint_primer_id) +VALUES + ('NCS S 0500-N', 'White Dress', 'white-dress', '#FAF9F7', 'e94019', 1), + ('NCS S 1002-R', 'Stratus', 'stratus', '#E9E5E5', 'e94020', 1), + ('NCS S 2502-R', 'Bedrock', 'bedrock', '#C4C0C0', 'e94021', 1), + ('NCS S 1015-Y20R', 'Creme Patissiere', 'creme-patissiere', '#F7DEB1', 'e94022', 1), + ('NCS S 0520-R', 'Magdalena', 'magdalena', '#FFCECD', 'e94023', 1), + ('NCS S 1040-R', 'Maeve', 'maeve', '#F29A9E', 'e94024', 1), + ('NCS S 1005-B', 'Morning Fog', 'morning-fog', '#DBE4E9', 'e94025', 1), + ('NCS S 2010-R80B', 'Lorna', 'lorna', '#B5C0CF', 'e94026', 1), + ('NCS S 3020-R70B', 'Delfin', 'delfin', '#9099B3', 'e94027', 1), + ('NCS S 4020-R70B', 'Date Night', 'date-night', '#77809E', 'e94028', 1), + ('NCS S 1005-G20Y', 'Greta', 'greta', '#DEE7DC', 'e94029', 1), + ('NCS S 2010-G30Y', 'Druid', 'druid', '#BCC9B', 'e94030', 1), + ('NCS S 3005-G50Y', 'Tweed', 'tweed', '#AEB3A5', 'e94031', 1), + ('NCS S 5005-G20Y', 'Bajou', 'bajou', '#7C867C', 'e94032', 1), + ('NCS S 0502-Y20R', 'Vegas', 'vegas', '#F9T7ED', 'e94033', 1), + ('NCS S 0907-Y50R', 'Harrison', 'harrison', '#F5E2D1', 'e94034', 1), + ('NCS S 1510-Y60R', 'Boba Tea', 'boba-tea', '#E4CBBA', 'e94035', 1), + ('NCS S 0530-Y20R', 'Sundae', 'sundae', '#FFD793', 'e94036', 1), + ('NCS S 0530-Y50R', 'Georgia', 'georgia', '#FFC299', 'e94037', 1), + ('NCS S 3020-Y50R', 'Cinnamon Sand', 'cinnamon-sand', '#CA9C7F', 'e94038', 1), + ('NCS S 3030-Y90R', 'Old Money', 'old-money', '#BD7A74', 'e94039', 1), + ('NCS S 1005-B20G', 'Daydream', 'daydream', '#D5E3E6', 'e94041', 1), + ('NCS S 1510-B50G', 'Sea Foam', 'sea-foam', '#BED4D4', 'e94042', 1), + ('NCS S 3010-B30G', 'Cliffside', 'cliffside', '#95AEB2', 'e94043', 1), + ('NCS S 1010-G50Y', 'Glänta', 'glanta', '#E1E7CC', 'e94044', 1), + ('NCS S 2005-G50Y', 'Rolling Hills', 'rolling-hills', '#C5CABC', 'e94045', 1), + ('NCS S 3010-G60Y', 'Warren', 'warren', '#AEB298', 'e94046', 1), + ('NCS S 1505-Y', 'Greige', 'greige', '#B0A999', 'e94047', 1), -- tmp will be adjusted later + ('NCS S 1500-N', 'Jotuns ljusgrå', 'jotuns-ljusgra', '#DBDBD9', 'e94048', 1); -- tmp will be adjuster later + + +-- 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) +); + +-- +CREATE TABLE paint_card_samples ( + id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, + paint_id INTEGER NOT NULL REFERENCES paint(id), + stock INTEGER NOT NULL DEFAULT 0, + created timestamp with time zone NOT NULL DEFAULT now(), + updated timestamp with time zone DEFAULT NULL +); + +CREATE TRIGGER updated_timestamp BEFORE UPDATE ON paint_card_samples FOR EACH ROW EXECUTE PROCEDURE updated_timestamp(); + +-- For each paint row add a paint_card_sample row with stock 1 +INSERT INTO paint_card_samples (paint_id, stock) SELECT id, 1 FROM paint; +