-- Migration 066: VVT Process Templates + Activity extensions -- Template table + new ref columns on compliance_vvt_activities BEGIN; -- ============================================================================= -- Process Templates -- ============================================================================= CREATE TABLE IF NOT EXISTS vvt_process_templates ( id VARCHAR(80) PRIMARY KEY, name VARCHAR(300) NOT NULL, description TEXT, business_function VARCHAR(50), purpose_refs JSONB DEFAULT '[]'::jsonb, legal_basis_refs JSONB DEFAULT '[]'::jsonb, data_subject_refs JSONB DEFAULT '[]'::jsonb, data_category_refs JSONB DEFAULT '[]'::jsonb, recipient_refs JSONB DEFAULT '[]'::jsonb, tom_refs JSONB DEFAULT '[]'::jsonb, transfer_mechanism_refs JSONB DEFAULT '[]'::jsonb, retention_rule_ref VARCHAR(50), typical_systems JSONB DEFAULT '[]'::jsonb, protection_level VARCHAR(10) DEFAULT 'MEDIUM', dpia_required BOOLEAN DEFAULT FALSE, risk_score INTEGER, tags JSONB DEFAULT '[]'::jsonb, is_system BOOLEAN DEFAULT TRUE, tenant_id UUID, sort_order INTEGER DEFAULT 0, created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW() ); CREATE INDEX IF NOT EXISTS idx_vvt_process_templates_bf ON vvt_process_templates(business_function); CREATE INDEX IF NOT EXISTS idx_vvt_process_templates_system ON vvt_process_templates(is_system); -- ============================================================================= -- New columns on compliance_vvt_activities (all DEFAULT NULL for backward compat) -- ============================================================================= ALTER TABLE compliance_vvt_activities ADD COLUMN IF NOT EXISTS purpose_refs JSONB DEFAULT NULL; ALTER TABLE compliance_vvt_activities ADD COLUMN IF NOT EXISTS legal_basis_refs JSONB DEFAULT NULL; ALTER TABLE compliance_vvt_activities ADD COLUMN IF NOT EXISTS data_subject_refs JSONB DEFAULT NULL; ALTER TABLE compliance_vvt_activities ADD COLUMN IF NOT EXISTS data_category_refs JSONB DEFAULT NULL; ALTER TABLE compliance_vvt_activities ADD COLUMN IF NOT EXISTS recipient_refs JSONB DEFAULT NULL; ALTER TABLE compliance_vvt_activities ADD COLUMN IF NOT EXISTS retention_rule_ref VARCHAR(50) DEFAULT NULL; ALTER TABLE compliance_vvt_activities ADD COLUMN IF NOT EXISTS transfer_mechanism_refs JSONB DEFAULT NULL; ALTER TABLE compliance_vvt_activities ADD COLUMN IF NOT EXISTS tom_refs JSONB DEFAULT NULL; ALTER TABLE compliance_vvt_activities ADD COLUMN IF NOT EXISTS linked_loeschfristen_ids JSONB DEFAULT NULL; ALTER TABLE compliance_vvt_activities ADD COLUMN IF NOT EXISTS linked_tom_measure_ids JSONB DEFAULT NULL; ALTER TABLE compliance_vvt_activities ADD COLUMN IF NOT EXISTS source_template_id VARCHAR(80) DEFAULT NULL; ALTER TABLE compliance_vvt_activities ADD COLUMN IF NOT EXISTS risk_score INTEGER DEFAULT NULL; ALTER TABLE compliance_vvt_activities ADD COLUMN IF NOT EXISTS art30_completeness JSONB DEFAULT NULL; COMMIT;