Includes: API (Express/TypeScript), Astro site, Python workers, document generators, FCC compliance tools, Canada CRTC formation, Ansible infrastructure, and deployment scripts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
61 lines
2.8 KiB
SQL
61 lines
2.8 KiB
SQL
-- 038: Telecom Entity tracking — multi-entity support
|
|
--
|
|
-- Links customers to their telecom entities (each with FRN, 499 Filer ID, etc.)
|
|
-- A single customer can manage multiple entities.
|
|
-- Compliance checks and 499-A filings are scoped per entity.
|
|
|
|
CREATE TABLE IF NOT EXISTS telecom_entities (
|
|
id SERIAL PRIMARY KEY,
|
|
customer_id INTEGER REFERENCES customers(id),
|
|
-- Jurisdiction
|
|
jurisdiction TEXT NOT NULL DEFAULT 'FCC'
|
|
CHECK (jurisdiction IN ('FCC', 'CRTC')),
|
|
-- FCC identifiers (US entities)
|
|
frn TEXT, -- 10-digit FCC Registration Number
|
|
filer_id_499 TEXT, -- USAC 499 Filer ID
|
|
-- CRTC identifiers (Canadian entities)
|
|
incorporation_number TEXT, -- BC/ON provincial corporation number
|
|
incorporation_province TEXT, -- BC or ON
|
|
crtc_registration_number TEXT, -- CRTC carrier registration ID
|
|
-- Entity info
|
|
legal_name TEXT NOT NULL,
|
|
dba_name TEXT,
|
|
ein TEXT, -- EIN (US) or BN (Canada)
|
|
-- Classification (from 499-A questionnaire — FCC entities)
|
|
filer_type TEXT, -- interconnected_voip, non_interconnected_voip, clec, etc.
|
|
infra_type TEXT, -- facilities, reseller, both
|
|
is_deminimis BOOLEAN DEFAULT FALSE,
|
|
is_lire BOOLEAN DEFAULT FALSE,
|
|
service_categories TEXT[], -- array of category slugs
|
|
-- Contact
|
|
contact_name TEXT,
|
|
contact_email TEXT,
|
|
contact_phone TEXT,
|
|
ceo_name TEXT,
|
|
ceo_title TEXT,
|
|
-- Address
|
|
address_street TEXT,
|
|
address_city TEXT,
|
|
address_state TEXT,
|
|
address_zip TEXT,
|
|
-- Revenue snapshot (from last 499-A)
|
|
last_filing_year INTEGER,
|
|
total_revenue_cents BIGINT DEFAULT 0,
|
|
interstate_pct NUMERIC(5,2) DEFAULT 0,
|
|
international_pct NUMERIC(5,2) DEFAULT 0,
|
|
-- Status
|
|
active BOOLEAN DEFAULT TRUE,
|
|
notes TEXT,
|
|
-- ERPNext link
|
|
erpnext_customer TEXT, -- ERPNext Customer docname
|
|
-- Metadata
|
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
updated_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_telecom_entities_customer ON telecom_entities(customer_id);
|
|
CREATE INDEX IF NOT EXISTS idx_telecom_entities_frn ON telecom_entities(frn) WHERE frn IS NOT NULL;
|
|
CREATE INDEX IF NOT EXISTS idx_telecom_entities_filer ON telecom_entities(filer_id_499) WHERE filer_id_499 IS NOT NULL;
|
|
|
|
-- Add entity_id to compliance-related tables
|
|
ALTER TABLE canada_crtc_orders ADD COLUMN IF NOT EXISTS telecom_entity_id INTEGER REFERENCES telecom_entities(id);
|