veza/veza-backend-api/migrations/094_create_products.sql

25 lines
1.1 KiB
MySQL
Raw Normal View History

-- Create products table (marketplace foundation)
-- Required before 095-099 which ADD COLUMN IF EXISTS on products
CREATE TABLE IF NOT EXISTS products (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
seller_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
title VARCHAR(255) NOT NULL,
description TEXT,
price DECIMAL(10,2) NOT NULL,
currency VARCHAR(3) DEFAULT 'EUR',
status VARCHAR(50) DEFAULT 'draft',
product_type VARCHAR(50) NOT NULL,
track_id UUID REFERENCES tracks(id) ON DELETE SET NULL,
license_type VARCHAR(50),
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW(),
deleted_at TIMESTAMPTZ
);
CREATE INDEX IF NOT EXISTS idx_products_seller_id ON products(seller_id);
CREATE INDEX IF NOT EXISTS idx_products_status ON products(status);
CREATE INDEX IF NOT EXISTS idx_products_product_type ON products(product_type);
CREATE INDEX IF NOT EXISTS idx_products_track_id ON products(track_id) WHERE track_id IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_products_deleted_at ON products(deleted_at);