-- init.sql
CREATE DATABASE IF NOT EXISTS utopia_incidenti CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE utopia_incidenti;

CREATE TABLE IF NOT EXISTS incidents (
  id INT AUTO_INCREMENT PRIMARY KEY,
  codice VARCHAR(30) NOT NULL UNIQUE,
  rilevato_da VARCHAR(100) NOT NULL,
  referente_primario VARCHAR(100),
  referente_secondario VARCHAR(100),
  data_rilevazione DATETIME NOT NULL,
  data_inizio DATETIME,
  stato_incidente ENUM('Aperto','In lavorazione','Risolto','Chiuso') DEFAULT 'Aperto',
  data_chiusura DATETIME,
  categoria VARCHAR(150),
  rapporto_iniziale TEXT,
  descrizione_generale TEXT,
  problema_specifico TEXT,
  dinamica_evento TEXT,
  collegato_precedenti TINYINT(1) DEFAULT 0,
  conseguenze_pagamenti TEXT,
  contesto_rilevazione TEXT,
  aree_interessate VARCHAR(255),
  terze_parti_coinvolte TEXT,
  modalita_crisi_avviata ENUM('SI','NO','N/A') DEFAULT 'NO',
  classificazione_interna ENUM('Basso','Medio','Alto','Critico') DEFAULT 'Medio',
  azioni_ripristino TEXT,
  interventi_correttivi TEXT,
  analisi_cause TEXT,
  lezioni_apprese TEXT,
  created_by INT,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  FOREIGN KEY (created_by) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS attachments (
  id INT AUTO_INCREMENT PRIMARY KEY,
  incident_id INT NOT NULL,
  filename VARCHAR(255) NOT NULL,
  original_name VARCHAR(255) NOT NULL,
  uploaded_by INT,
  uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (incident_id) REFERENCES incidents(id) ON DELETE CASCADE,
  FOREIGN KEY (uploaded_by) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
