-- Tareas recurrentes: recordatorios periodicos (ej. renovacion de licencias) con recordatorio -- por correo N dias antes, a una hora configurable. Menu propio, independiente de Proyectos, pero -- puede originarse promoviendo una tarea existente de un proyecto (project_id queda como -- referencia/contexto, nunca obligatorio). CREATE TABLE IF NOT EXISTS recurring_tasks ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(160) NOT NULL, description TEXT NULL, project_id INT NULL, responsible_user_id INT NULL, interval_unit ENUM('days','months','years') NOT NULL DEFAULT 'months', interval_value INT NOT NULL DEFAULT 1, next_due_date DATE NOT NULL, reminder_days_before INT NOT NULL DEFAULT 7, reminder_hour TINYINT NOT NULL DEFAULT 9, is_active TINYINT(1) NOT NULL DEFAULT 1, last_reminder_sent_at DATETIME NULL, created_by INT NOT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, CONSTRAINT fk_recurring_tasks_project FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE SET NULL, CONSTRAINT fk_recurring_tasks_responsible FOREIGN KEY (responsible_user_id) REFERENCES users(id) ON DELETE SET NULL, CONSTRAINT fk_recurring_tasks_created_by FOREIGN KEY (created_by) REFERENCES users(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;