init
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user