- Fixed 'relation session_kb_associations does not exist' error in core consolidated migration. - Renamed migration directories from timestamp-based to version-based (6.0.x, 6.1.x, 6.2.x). - Reorganized migrations into dedicated feature folders (products, dashboards, learn, video). - Updated migration execution order in core/shared/utils.rs. - Moves legacy migrations to 6.0.x/6.1.x and workflow to 6.2.0.
83 lines
4.8 KiB
SQL
83 lines
4.8 KiB
SQL
-- Extended product fields for e-commerce and payment integrations
|
|
|
|
-- Tax and fiscal identification fields
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS tax_code VARCHAR(10);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS tax_class VARCHAR(50);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS fiscal_code VARCHAR(10);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS origin_code INTEGER DEFAULT 0;
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS global_trade_number VARCHAR(14);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS tax_unit_code VARCHAR(14);
|
|
|
|
-- Detailed dimensions (for shipping calculation)
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS net_weight DECIMAL(10,3);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS gross_weight DECIMAL(10,3);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS width DECIMAL(10,2);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS height DECIMAL(10,2);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS length DECIMAL(10,2);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS package_count INTEGER DEFAULT 1;
|
|
|
|
-- Tax rates by type
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS sales_tax_code VARCHAR(3);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS sales_tax_rate DECIMAL(5,2);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS excise_tax_code VARCHAR(2);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS excise_tax_rate DECIMAL(5,2);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS vat_code VARCHAR(2);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS vat_rate DECIMAL(5,2);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS service_tax_code VARCHAR(2);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS service_tax_rate DECIMAL(5,2);
|
|
|
|
-- Marketplace and e-commerce fields
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS brand VARCHAR(100);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS model VARCHAR(100);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS color VARCHAR(50);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS size VARCHAR(20);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS material VARCHAR(100);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS gender VARCHAR(20);
|
|
|
|
-- Advanced inventory control
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS warehouse_location VARCHAR(100);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS batch_number VARCHAR(50);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS expiration_date DATE;
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS manufacture_date DATE;
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS min_stock INTEGER DEFAULT 0;
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS max_stock INTEGER;
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS reorder_point INTEGER;
|
|
|
|
-- Detailed pricing
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS sale_price DECIMAL(15,2);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS sale_start TIMESTAMPTZ;
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS sale_end TIMESTAMPTZ;
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS shipping_cost DECIMAL(15,2);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS profit_margin DECIMAL(5,2);
|
|
|
|
-- Payment gateway integration
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS external_id VARCHAR(100);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS external_category_id VARCHAR(100);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS external_metadata JSONB DEFAULT '{}';
|
|
|
|
-- SEO and search
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS slug VARCHAR(255);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS meta_title VARCHAR(255);
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS meta_description TEXT;
|
|
ALTER TABLE products ADD COLUMN IF NOT EXISTS tags TEXT[];
|
|
|
|
-- Indexes for new fields
|
|
CREATE INDEX IF NOT EXISTS idx_products_tax_code ON products(tax_code);
|
|
CREATE INDEX IF NOT EXISTS idx_products_global_trade_number ON products(global_trade_number);
|
|
CREATE INDEX IF NOT EXISTS idx_products_brand ON products(brand);
|
|
CREATE INDEX IF NOT EXISTS idx_products_slug ON products(slug);
|
|
CREATE INDEX IF NOT EXISTS idx_products_expiration ON products(expiration_date);
|
|
CREATE INDEX IF NOT EXISTS idx_products_external_id ON products(external_id);
|
|
|
|
-- Add similar fields to product variants
|
|
ALTER TABLE product_variants ADD COLUMN IF NOT EXISTS global_trade_number VARCHAR(14);
|
|
ALTER TABLE product_variants ADD COLUMN IF NOT EXISTS net_weight DECIMAL(10,3);
|
|
ALTER TABLE product_variants ADD COLUMN IF NOT EXISTS gross_weight DECIMAL(10,3);
|
|
ALTER TABLE product_variants ADD COLUMN IF NOT EXISTS width DECIMAL(10,2);
|
|
ALTER TABLE product_variants ADD COLUMN IF NOT EXISTS height DECIMAL(10,2);
|
|
ALTER TABLE product_variants ADD COLUMN IF NOT EXISTS length DECIMAL(10,2);
|
|
ALTER TABLE product_variants ADD COLUMN IF NOT EXISTS color VARCHAR(50);
|
|
ALTER TABLE product_variants ADD COLUMN IF NOT EXISTS size VARCHAR(20);
|
|
ALTER TABLE product_variants ADD COLUMN IF NOT EXISTS images JSONB DEFAULT '[]';
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_product_variants_global_trade_number ON product_variants(global_trade_number);
|