Backend (Go): - Config: CORS, RabbitMQ, rate limit, main config updates - Routes: core, distribution, tracks routing changes - Middleware: rate limiter, endpoint limiter, response cache hardening - Handlers: distribution, search handler fixes - Workers: job worker improvements - Upload validator and logging config additions - New migrations: products, orders, performance indexes - Seed tooling and data Stream Server (Rust): - Audio processing, config, routes, simple stream server updates - Dockerfile improvements Infrastructure: - docker-compose.yml updates - nginx-rtmp config changes - Makefile improvements (config, dev, high, infra) - Root package.json and lock file updates - .env.example updates Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
24 lines
1.1 KiB
SQL
24 lines
1.1 KiB
SQL
-- 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);
|