Core Tables
-- Users table (customers and vendors)CREATE TABLE users ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), email VARCHAR(255) UNIQUE NOT NULL, password_hash VARCHAR(255) NOT NULL, user_type ENUM('customer', 'vendor', 'admin') NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
-- Vendors table (extends users)CREATE TABLE vendors ( user_id UUID PRIMARY KEY REFERENCES users(id), business_name VARCHAR(255) NOT NULL, description TEXT, logo_url VARCHAR(500), verified BOOLEAN DEFAULT FALSE, commission_rate DECIMAL(5,2) DEFAULT 10.00);
-- Products tableCREATE TABLE products ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), vendor_id UUID NOT NULL REFERENCES vendors(user_id), name VARCHAR(255) NOT NULL, description TEXT, base_price DECIMAL(10,2) NOT NULL, category_id INTEGER REFERENCES categories(id), status ENUM('active', 'inactive', 'out_of_stock') DEFAULT 'active', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, INDEX idx_vendor_status (vendor_id, status), FULLTEXT INDEX idx_search (name, description));