25 lines
955 B
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);
|