-- Tabla de contactos
CREATE TABLE contactos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(100) NOT NULL,
    apellido VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE,
    cargo VARCHAR(100),
    departamento VARCHAR(100),
    fecha_creacion DATETIME DEFAULT CURRENT_TIMESTAMP
);

-- Tabla de actividades
CREATE TABLE actividades (
    id INT AUTO_INCREMENT PRIMARY KEY,
    asunto VARCHAR(200) NOT NULL,
    descripcion TEXT,
    lugar VARCHAR(200),
    fecha_inicio DATETIME NOT NULL,
    fecha_fin DATETIME NOT NULL,
    supervisor_id INT NOT NULL,
    estado ENUM('pendiente', 'en_curso', 'completada', 'cancelada') DEFAULT 'pendiente',
    fecha_creacion DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (supervisor_id) REFERENCES supervisores(id),
    tipo ENUM('privada', 'publica') DEFAULT 'privada',
    recordatorio_minutos INT DEFAULT 0
);

-- Tabla de participantes de actividades
CREATE TABLE actividad_participantes (
    id INT AUTO_INCREMENT PRIMARY KEY,
    actividad_id INT NOT NULL,
    contacto_id INT,
    email_externo VARCHAR(100),
    estado_confirmacion ENUM('pendiente', 'confirmado', 'rechazado') DEFAULT 'pendiente',
    fecha_confirmacion DATETIME,
    FOREIGN KEY (actividad_id) REFERENCES actividades(id) ON DELETE CASCADE,
    FOREIGN KEY (contacto_id) REFERENCES contactos(id) ON DELETE SET NULL
);

-- Tabla para registrar recordatorios enviados
CREATE TABLE recordatorios_enviados (
    id INT AUTO_INCREMENT PRIMARY KEY,
    actividad_id INT NOT NULL,
    fecha_envio DATETIME NOT NULL,
    FOREIGN KEY (actividad_id) REFERENCES actividades(id) ON DELETE CASCADE
); 