-- 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);