← back to Designerrepresentatives

db/schema.sql

29 lines

-- designer_representatives schema
-- Standalone PG table — NOT part of dw_unified, lawyer_*, or doctor_*.
CREATE TABLE IF NOT EXISTS designer_reps (
  id           SERIAL PRIMARY KEY,
  slug         TEXT UNIQUE NOT NULL,
  name         TEXT NOT NULL,
  agency       TEXT NOT NULL,
  city         TEXT,
  region       TEXT,
  territories  TEXT[]  DEFAULT '{}',
  lines        TEXT[]  DEFAULT '{}',
  vertical     TEXT[]  DEFAULT '{}',
  email        TEXT,
  phone        TEXT,
  website_url  TEXT,
  contact_url  TEXT,
  bio          TEXT,
  is_claimed   BOOLEAN NOT NULL DEFAULT FALSE,
  is_published BOOLEAN NOT NULL DEFAULT TRUE,
  created_at   TIMESTAMPTZ NOT NULL DEFAULT NOW(),
  updated_at   TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

CREATE INDEX IF NOT EXISTS idx_designer_reps_city       ON designer_reps (city);
CREATE INDEX IF NOT EXISTS idx_designer_reps_published  ON designer_reps (is_published);
CREATE INDEX IF NOT EXISTS idx_designer_reps_territories ON designer_reps USING gin (territories);
CREATE INDEX IF NOT EXISTS idx_designer_reps_lines      ON designer_reps USING gin (lines);
CREATE INDEX IF NOT EXISTS idx_designer_reps_vertical   ON designer_reps USING gin (vertical);