brand-master/backend/migrations/001_add_model_table.sql

25 lines
955 B
SQL

-- Migration: Add model table and update product table
-- Create model table
CREATE TABLE IF NOT EXISTS model (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
category_id INTEGER NOT NULL,
brand VARCHAR(100) NOT NULL,
base_price DECIMAL(10, 2),
sizes JSONB,
description TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (category_id) REFERENCES category(id) ON DELETE CASCADE,
UNIQUE (name, category_id, brand)
);
CREATE INDEX IF NOT EXISTS idx_model_category ON model(category_id);
CREATE INDEX IF NOT EXISTS idx_model_brand ON model(brand);
-- Add new columns to product table
ALTER TABLE product ADD COLUMN IF NOT EXISTS model_id INTEGER REFERENCES model(id) ON DELETE SET NULL;
ALTER TABLE product ADD COLUMN IF NOT EXISTS override_price DECIMAL(10, 2);
ALTER TABLE product ADD COLUMN IF NOT EXISTS override_sizes JSONB;
CREATE INDEX IF NOT EXISTS idx_product_model ON product(model_id);