apskel-pos-backend/migrations/000017_create_customers_table.up.sql
aditya.siregar 4f5950543e init
2025-07-18 20:10:29 +07:00

27 lines
1.0 KiB
SQL

CREATE TABLE customers (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
organization_id UUID NOT NULL,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE,
phone VARCHAR(20),
address VARCHAR(500),
is_default BOOLEAN DEFAULT FALSE,
is_active BOOLEAN DEFAULT TRUE,
metadata JSONB DEFAULT '{}',
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
CONSTRAINT fk_customers_organization
FOREIGN KEY (organization_id)
REFERENCES organizations(id)
ON DELETE CASCADE
);
-- Create indexes
CREATE INDEX idx_customers_organization_id ON customers(organization_id);
CREATE INDEX idx_customers_email ON customers(email);
CREATE INDEX idx_customers_is_default ON customers(is_default);
CREATE INDEX idx_customers_is_active ON customers(is_active);
-- Create unique constraint to ensure only one default customer per organization
CREATE UNIQUE INDEX idx_customers_org_default ON customers(organization_id, is_default) WHERE is_default = TRUE;