Initial commit — Performance West telecom compliance platform
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>
This commit is contained in:
commit
f8cd37ac8c
1823 changed files with 145167 additions and 0 deletions
116
api/migrations/073_state_puc_registrations.sql
Normal file
116
api/migrations/073_state_puc_registrations.sql
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
-- 073_state_puc_registrations.sql
|
||||
--
|
||||
-- Per-state PUC/PSC registration tracking, one row per state per order.
|
||||
-- Follows the foreign_qualification_registrations pattern from migration 066.
|
||||
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS state_puc_registrations (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
|
||||
-- Parent order
|
||||
compliance_order_id INTEGER REFERENCES compliance_orders(id) ON DELETE SET NULL,
|
||||
order_number TEXT NOT NULL,
|
||||
|
||||
-- Linked carrier
|
||||
telecom_entity_id INTEGER,
|
||||
state_code CHAR(2) NOT NULL,
|
||||
registration_type TEXT NOT NULL, -- 'voip','broadband','clec','bundle'
|
||||
entity_legal_name TEXT NOT NULL,
|
||||
frn TEXT,
|
||||
|
||||
-- Provider classification (affects requirements in many states)
|
||||
provider_type TEXT CHECK (provider_type IN (
|
||||
'facilities_based', 'reseller', 'over_the_top', 'hybrid'
|
||||
)),
|
||||
|
||||
-- Status pipeline
|
||||
status TEXT NOT NULL DEFAULT 'received' CHECK (status IN (
|
||||
'received', -- paid, queued
|
||||
'docs_pending', -- waiting on supporting documents
|
||||
'bond_pending', -- waiting on surety bond procurement
|
||||
'filing', -- preparing/submitting to state PUC
|
||||
'admin_review', -- manual step needed
|
||||
'submitted', -- filed, awaiting state approval
|
||||
'approved', -- certificate/registration issued
|
||||
'rejected',
|
||||
'cancelled'
|
||||
)),
|
||||
|
||||
-- Fees (cents)
|
||||
state_fee_cents INTEGER NOT NULL DEFAULT 0,
|
||||
bond_amount_cents INTEGER NOT NULL DEFAULT 0,
|
||||
service_fee_cents INTEGER NOT NULL DEFAULT 0,
|
||||
retail_total_cents INTEGER NOT NULL DEFAULT 0,
|
||||
|
||||
-- Registration details
|
||||
puc_registration_number TEXT,
|
||||
puc_certificate_number TEXT,
|
||||
filed_at TIMESTAMPTZ,
|
||||
approved_at TIMESTAMPTZ,
|
||||
certificate_minio_path TEXT,
|
||||
|
||||
-- Bond info
|
||||
bond_company TEXT,
|
||||
bond_policy_number TEXT,
|
||||
bond_expiration_date DATE,
|
||||
|
||||
-- Tracking
|
||||
attempt_count INTEGER NOT NULL DEFAULT 0,
|
||||
last_error TEXT,
|
||||
admin_todo_id INTEGER,
|
||||
notes TEXT,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
|
||||
UNIQUE (telecom_entity_id, state_code, order_number)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_puc_reg_order_number
|
||||
ON state_puc_registrations(order_number);
|
||||
CREATE INDEX IF NOT EXISTS idx_puc_reg_state_code
|
||||
ON state_puc_registrations(state_code);
|
||||
CREATE INDEX IF NOT EXISTS idx_puc_reg_status
|
||||
ON state_puc_registrations(status)
|
||||
WHERE status NOT IN ('approved','cancelled','rejected');
|
||||
CREATE INDEX IF NOT EXISTS idx_puc_reg_telecom_entity
|
||||
ON state_puc_registrations(telecom_entity_id)
|
||||
WHERE telecom_entity_id IS NOT NULL;
|
||||
|
||||
-- Updated_at trigger
|
||||
CREATE OR REPLACE FUNCTION set_updated_at_puc_reg() RETURNS trigger AS $$
|
||||
BEGIN
|
||||
NEW.updated_at = NOW();
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
DROP TRIGGER IF EXISTS trg_puc_reg_updated_at ON state_puc_registrations;
|
||||
CREATE TRIGGER trg_puc_reg_updated_at
|
||||
BEFORE UPDATE ON state_puc_registrations
|
||||
FOR EACH ROW EXECUTE FUNCTION set_updated_at_puc_reg();
|
||||
|
||||
-- Admin pipeline view
|
||||
CREATE OR REPLACE VIEW v_puc_registrations_pipeline AS
|
||||
SELECT
|
||||
pr.id,
|
||||
pr.order_number,
|
||||
pr.entity_legal_name,
|
||||
pr.state_code,
|
||||
j.name AS state_name,
|
||||
pr.registration_type,
|
||||
pr.provider_type,
|
||||
pr.status,
|
||||
pr.state_fee_cents,
|
||||
pr.bond_amount_cents,
|
||||
pr.retail_total_cents,
|
||||
pr.filed_at,
|
||||
pr.approved_at,
|
||||
pr.attempt_count,
|
||||
pr.last_error,
|
||||
pr.created_at
|
||||
FROM state_puc_registrations pr
|
||||
LEFT JOIN jurisdictions j ON j.code = pr.state_code
|
||||
ORDER BY pr.created_at DESC;
|
||||
|
||||
COMMIT;
|
||||
Loading…
Add table
Add a link
Reference in a new issue