-- Migration to update agenda_eventos table and create related tables for enhanced Agenda module

-- Alter agenda_eventos table to add new columns
ALTER TABLE agenda_eventos
  ADD COLUMN status ENUM('agendado', 'concluido', 'cancelado', 'remarcado') DEFAULT 'agendado',
  ADD COLUMN prioridade ENUM('normal', 'alta', 'urgente') DEFAULT 'normal',
  ADD COLUMN recorrencia VARCHAR(50) DEFAULT NULL,
  ADD COLUMN id_municipio INT DEFAULT NULL,
  ADD COLUMN id_atendimento INT DEFAULT NULL,
  ADD COLUMN id_oficio INT DEFAULT NULL,
  ADD COLUMN id_demanda INT DEFAULT NULL,
  ADD COLUMN id_usuario_criador INT DEFAULT NULL,
  ADD COLUMN google_event_id VARCHAR(255) UNIQUE DEFAULT NULL,
  ADD COLUMN google_calendar_id VARCHAR(255) DEFAULT NULL;

-- Create evento_participantes table
CREATE TABLE IF NOT EXISTS evento_participantes (
  id INT AUTO_INCREMENT PRIMARY KEY,
  id_evento INT NOT NULL,
  id_contato INT DEFAULT NULL,
  id_usuario INT DEFAULT NULL,
  email_externo VARCHAR(255) DEFAULT NULL,
  CONSTRAINT fk_evento FOREIGN KEY (id_evento) REFERENCES agenda_eventos(id) ON DELETE CASCADE,
  CONSTRAINT fk_contato FOREIGN KEY (id_contato) REFERENCES contatos(id),
  CONSTRAINT fk_usuario FOREIGN KEY (id_usuario) REFERENCES usuarios(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Create agenda_notificacoes table
CREATE TABLE IF NOT EXISTS agenda_notificacoes (
  id INT AUTO_INCREMENT PRIMARY KEY,
  id_evento INT NOT NULL,
  tipo ENUM('email', 'whatsapp', 'sistema') DEFAULT 'sistema',
  data_envio DATETIME,
  enviado BOOLEAN DEFAULT FALSE,
  mensagem TEXT,
  CONSTRAINT fk_evento_notif FOREIGN KEY (id_evento) REFERENCES agenda_eventos(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Create log_lembretes_whatsapp table
CREATE TABLE IF NOT EXISTS log_lembretes_whatsapp (
  id INT AUTO_INCREMENT PRIMARY KEY,
  id_evento INT NOT NULL,
  id_contato INT DEFAULT NULL,
  numero_destino VARCHAR(20) NOT NULL,
  mensagem TEXT NOT NULL,
  status ENUM('enviado', 'falha', 'pendente') DEFAULT 'pendente',
  data_envio DATETIME DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT fk_evento_log FOREIGN KEY (id_evento) REFERENCES agenda_eventos(id) ON DELETE CASCADE,
  CONSTRAINT fk_contato_log FOREIGN KEY (id_contato) REFERENCES contatos(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
