-- 060_isms_document_lifecycle.sql — Ciclo di vita documentale ISMS (ISO/IEC 27001 cl. 7.5) -- Record DDL. Apply autoritativo idempotente: application/cli/migrate_060_isms_doc_lifecycle.php -- (ALTER guardati da information_schema; CREATE TABLE IF NOT EXISTS). -- Stati del ciclo di vita: aggiunti 'published' e 'archived' ALTER TABLE isms_documents MODIFY COLUMN status ENUM('draft','review','approved','published','archived') NOT NULL DEFAULT 'draft'; -- Tracciamento del ciclo di vita ALTER TABLE isms_documents ADD COLUMN reviewed_by INT NULL; ALTER TABLE isms_documents ADD COLUMN reviewed_at DATETIME NULL; ALTER TABLE isms_documents ADD COLUMN approved_by INT NULL; ALTER TABLE isms_documents ADD COLUMN approved_at DATETIME NULL; ALTER TABLE isms_documents ADD COLUMN published_by INT NULL; ALTER TABLE isms_documents ADD COLUMN published_at DATETIME NULL; ALTER TABLE isms_documents ADD COLUMN archived_at DATETIME NULL; ALTER TABLE isms_documents ADD COLUMN review_note VARCHAR(500) NULL; ALTER TABLE isms_documents ADD COLUMN effective_date DATE NULL; ALTER TABLE isms_documents ADD COLUMN next_review_date DATE NULL; -- Storico versioni (snapshot ad ogni approvazione/pubblicazione/nuova versione) CREATE TABLE IF NOT EXISTS isms_document_versions ( id INT AUTO_INCREMENT PRIMARY KEY, document_id INT NOT NULL, isms_model_id INT NOT NULL, organization_id INT NOT NULL, version VARCHAR(20) NOT NULL, status VARCHAR(20) NOT NULL, body_html LONGTEXT NULL, change_note VARCHAR(255) NULL, created_by INT NULL, created_at DATETIME NULL, INDEX idx_docver_doc (document_id), INDEX idx_docver_org (organization_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;