-- 067_requisito_residual_and_actions.sql — Integrazione prototipo "Modulo Azioni" (Simon), Fase 1. -- (1) org_requisito_state += valutazione del RISCHIO RESIDUO (dopo il trattamento): -- residual_likelihood / residual_impact (1-5). L'inerente resta likelihood/impact (mig 066). -- (2) requisito_actions: azioni collegate al rischio-da-requisito (seme del modulo Azioni). -- NB normativo: NON tocca lo stato di conformità del requisito (org_requisito_state.stato), -- che resta un atto esplicito di attuazione+evidenza. Vedi eccezione #1 (parere nis2-expert). -- Additiva e idempotente. Runner: application/cli/migrate_067_requisito_residual_and_actions.php ALTER TABLE org_requisito_state ADD COLUMN residual_likelihood TINYINT NULL COMMENT 'Probabilita residua 1-5 (dopo trattamento)' AFTER impact, ADD COLUMN residual_impact TINYINT NULL COMMENT 'Impatto residuo 1-5 (dopo trattamento)' AFTER residual_likelihood; CREATE TABLE IF NOT EXISTS requisito_actions ( id INT AUTO_INCREMENT PRIMARY KEY, organization_id INT NOT NULL, requisito_id INT NOT NULL, risk_code VARCHAR(64) NULL, description TEXT NOT NULL, status ENUM('bozza','in_corso','archiviata') NOT NULL DEFAULT 'bozza', created_by INT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, INDEX idx_reqact_org_req (organization_id, requisito_id, created_at), INDEX idx_reqact_org (organization_id, created_at) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;