24 lines
1.0 KiB
SQL
24 lines
1.0 KiB
SQL
-- Products table
|
|
CREATE TABLE products (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
organization_id UUID NOT NULL REFERENCES organizations(id) ON DELETE CASCADE,
|
|
category_id UUID NOT NULL REFERENCES categories(id) ON DELETE CASCADE,
|
|
sku VARCHAR(100),
|
|
name VARCHAR(255) NOT NULL,
|
|
description TEXT,
|
|
price DECIMAL(10,2) NOT NULL CHECK (price >= 0),
|
|
cost DECIMAL(10,2) DEFAULT 0.00 CHECK (cost >= 0),
|
|
business_type VARCHAR(50) DEFAULT 'restaurant',
|
|
metadata JSONB DEFAULT '{}',
|
|
is_active BOOLEAN DEFAULT TRUE,
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
|
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
|
);
|
|
|
|
-- Indexes
|
|
CREATE INDEX idx_products_organization_id ON products(organization_id);
|
|
CREATE INDEX idx_products_category_id ON products(category_id);
|
|
CREATE INDEX idx_products_sku ON products(sku);
|
|
CREATE INDEX idx_products_business_type ON products(business_type);
|
|
CREATE INDEX idx_products_is_active ON products(is_active);
|
|
CREATE INDEX idx_products_created_at ON products(created_at); |