CREATE DATABASE IF NOT EXISTS cecitpe_protocolos_minedu CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE cecitpe_protocolos_minedu;
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS evidences;
DROP TABLE IF EXISTS instruments;
DROP TABLE IF EXISTS case_logs;
DROP TABLE IF EXISTS case_tasks;
DROP TABLE IF EXISTS cases;
DROP TABLE IF EXISTS protocol_tasks;
DROP TABLE IF EXISTS protocols;
DROP TABLE IF EXISTS students;
DROP TABLE IF EXISTS users;
DROP TABLE IF EXISTS external_services;
DROP TABLE IF EXISTS institution_settings;
SET FOREIGN_KEY_CHECKS=1;
CREATE TABLE institution_settings (
 id INT PRIMARY KEY DEFAULT 1,
 name VARCHAR(200) DEFAULT '',
 modular_code VARCHAR(50) DEFAULT '',
 local_code VARCHAR(50) DEFAULT '',
 education_level VARCHAR(80) DEFAULT 'Educación Básica Regular',
 management_type VARCHAR(40) DEFAULT 'Pública',
 ugel VARCHAR(150) DEFAULT '',
 dre_gre VARCHAR(150) DEFAULT '',
 region VARCHAR(100) DEFAULT '',
 province VARCHAR(100) DEFAULT '',
 district VARCHAR(100) DEFAULT '',
 address VARCHAR(255) DEFAULT '',
 phone VARCHAR(80) DEFAULT '',
 email VARCHAR(160) DEFAULT '',
 director_name VARCHAR(160) DEFAULT '',
 convivencia_name VARCHAR(160) DEFAULT '',
 toe_name VARCHAR(160) DEFAULT '',
 school_year VARCHAR(20) DEFAULT '',
 period_name VARCHAR(80) DEFAULT '',
 modality VARCHAR(80) DEFAULT 'Presencial',
 logo_path VARCHAR(255) DEFAULT NULL,
 stamp_path VARCHAR(255) DEFAULT NULL,
 updated_by INT NULL,
 updated_at DATETIME NULL
) ENGINE=InnoDB;
INSERT INTO institution_settings(id,name,modular_code,local_code,education_level,management_type,ugel,dre_gre,region,province,district,address,phone,email,director_name,convivencia_name,toe_name,school_year,period_name,modality,updated_at)
VALUES(1,'Institución Educativa Demo','','','Educación Básica Regular','Pública','','','','','','','','','','','',YEAR(CURDATE()),'','Presencial',NOW());
CREATE TABLE users (
 id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(120) NOT NULL, email VARCHAR(160) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL,
 role ENUM('admin','director','convivencia','coordinador_toe','tutor','docente','comite_bienestar','ugel','consulta') NOT NULL DEFAULT 'consulta',
 active TINYINT(1) NOT NULL DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB;
CREATE TABLE students (
 id INT AUTO_INCREMENT PRIMARY KEY, full_name VARCHAR(180) NOT NULL, document_number VARCHAR(30), grade VARCHAR(30), section VARCHAR(20),
 guardian_name VARCHAR(160), guardian_phone VARCHAR(50), has_disability TINYINT(1) DEFAULT 0, status VARCHAR(40) DEFAULT 'matriculado', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB;
CREATE TABLE protocols (
 id INT AUTO_INCREMENT PRIMARY KEY, number INT NOT NULL UNIQUE, name VARCHAR(255) NOT NULL, description TEXT, deadline_days INT NULL, active TINYINT(1) DEFAULT 1) ENGINE=InnoDB;
CREATE TABLE protocol_tasks (
 id INT AUTO_INCREMENT PRIMARY KEY, protocol_id INT NOT NULL, stage ENUM('Acción','Derivación','Seguimiento','Cierre') NOT NULL,
 name VARCHAR(255) NOT NULL, description TEXT, responsible_role VARCHAR(255), instrument VARCHAR(255), relative_day INT NULL, sort_order INT NOT NULL,
 FOREIGN KEY(protocol_id) REFERENCES protocols(id) ON DELETE CASCADE) ENGINE=InnoDB;
CREATE TABLE cases (
 id INT AUTO_INCREMENT PRIMARY KEY, case_code VARCHAR(60) NOT NULL UNIQUE, student_id INT NOT NULL, protocol_id INT NOT NULL,
 source VARCHAR(255) NOT NULL, known_date DATE NOT NULL, incident_date DATE NULL, summary VARCHAR(255) NOT NULL, description TEXT,
 assigned_user_id INT NULL, registered_by INT NULL, deadline_date DATE NULL,
 status ENUM('abierto','en_atencion','derivado','seguimiento','cerrado','observado') DEFAULT 'abierto', priority ENUM('Media','Alta','Urgente') DEFAULT 'Alta',
 close_notes TEXT NULL, closed_at DATETIME NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
 FOREIGN KEY(student_id) REFERENCES students(id), FOREIGN KEY(protocol_id) REFERENCES protocols(id), FOREIGN KEY(assigned_user_id) REFERENCES users(id), FOREIGN KEY(registered_by) REFERENCES users(id)) ENGINE=InnoDB;
CREATE TABLE case_tasks (
 id INT AUTO_INCREMENT PRIMARY KEY, case_id INT NOT NULL, protocol_task_id INT NOT NULL, stage VARCHAR(50) NOT NULL, name VARCHAR(255) NOT NULL,
 description TEXT, responsible_role VARCHAR(255), instrument VARCHAR(255), relative_day INT NULL, deadline_date DATE NULL,
 status ENUM('pendiente','en_proceso','cumplida','observada') DEFAULT 'pendiente', notes TEXT, completed_at DATETIME NULL,
 FOREIGN KEY(case_id) REFERENCES cases(id) ON DELETE CASCADE, FOREIGN KEY(protocol_task_id) REFERENCES protocol_tasks(id)) ENGINE=InnoDB;
CREATE TABLE evidences (
 id INT AUTO_INCREMENT PRIMARY KEY, case_id INT NOT NULL, case_task_id INT NULL, uploaded_by INT NOT NULL, filename VARCHAR(255) NOT NULL,
 original_name VARCHAR(255) NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
 FOREIGN KEY(case_id) REFERENCES cases(id) ON DELETE CASCADE, FOREIGN KEY(case_task_id) REFERENCES case_tasks(id) ON DELETE SET NULL, FOREIGN KEY(uploaded_by) REFERENCES users(id)) ENGINE=InnoDB;
CREATE TABLE instruments (
 id INT AUTO_INCREMENT PRIMARY KEY, case_id INT NOT NULL, case_task_id INT NULL, type VARCHAR(80) NOT NULL DEFAULT 'acta', title VARCHAR(255) NOT NULL,
 content LONGTEXT NOT NULL, status ENUM('borrador','finalizado','validado') NOT NULL DEFAULT 'borrador', created_by INT NULL,
 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NULL,
 FOREIGN KEY(case_id) REFERENCES cases(id) ON DELETE CASCADE, FOREIGN KEY(case_task_id) REFERENCES case_tasks(id) ON DELETE SET NULL, FOREIGN KEY(created_by) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB;
CREATE TABLE case_logs (
 id INT AUTO_INCREMENT PRIMARY KEY, case_id INT NOT NULL, user_id INT NULL, action VARCHAR(120) NOT NULL, detail TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
 FOREIGN KEY(case_id) REFERENCES cases(id) ON DELETE CASCADE, FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE SET NULL) ENGINE=InnoDB;
CREATE TABLE external_services (
 id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(160) NOT NULL, type VARCHAR(80), phone VARCHAR(80), address VARCHAR(255), notes TEXT) ENGINE=InnoDB;
INSERT INTO users(name,email,password,role,active) VALUES ('Administrador Demo','admin@demo.edu.pe','$2y$12$cEjsjg/XIJ6SpkhMKaHYCeeZRXtjOOr6REnh2Aehrpo8Va09ZXFKC','admin',1),('Director/a IE','director@demo.edu.pe','$2y$12$cEjsjg/XIJ6SpkhMKaHYCeeZRXtjOOr6REnh2Aehrpo8Va09ZXFKC','director',1),('Responsable Convivencia','convivencia@demo.edu.pe','$2y$12$cEjsjg/XIJ6SpkhMKaHYCeeZRXtjOOr6REnh2Aehrpo8Va09ZXFKC','convivencia',1),('Coordinador TOE','toe@demo.edu.pe','$2y$12$cEjsjg/XIJ6SpkhMKaHYCeeZRXtjOOr6REnh2Aehrpo8Va09ZXFKC','coordinador_toe',1),('Tutor/a','tutor@demo.edu.pe','$2y$12$cEjsjg/XIJ6SpkhMKaHYCeeZRXtjOOr6REnh2Aehrpo8Va09ZXFKC','tutor',1);
INSERT INTO students(full_name,document_number,grade,section,guardian_name,guardian_phone,has_disability,status) VALUES ('Estudiante Demo 1','00000001','1°','A','Apoderado Demo','999999999',0,'matriculado'),('Estudiante Demo 2','00000002','2°','B','Apoderado Demo 2','988888888',1,'matriculado');
INSERT INTO protocols(number,name,description,deadline_days) VALUES (1,'Violencia física y/o psicológica entre estudiantes','Protocolos de violencia entre estudiantes. Plazo de atención de 30 días hábiles para cumplir con las acciones.',30);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=1),'Acción','Definir medidas de protección y correctivas','El Comité de Gestión del Bienestar define medidas de protección para el estudiante afectado y medidas correctivas/educativas para los involucrados.','Director/a y Responsable de Convivencia Escolar','Acta de reunión con miembros del CGB',2,1);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=1),'Acción','Convocar a tutores','Convocatoria a tutores para realizar talleres grupales, tutorías individuales y orientación a familias.','Coordinador TOE y tutores','Acta de primera reunión con tutores',2,2);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=1),'Acción','Reunión con familias','Reunión con familias o estudiante mayor de edad para informar medidas y compromisos.','Director/a y Responsable de Convivencia Escolar','Acta de primera reunión con padres/apoderados',2,3);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=1),'Acción','Registrar en Libro de Incidencias y SíseVe','Registrar el caso en el Libro de Registro de Incidencias y en el Portal SíseVe si no fue reportado previamente.','Director/a y Responsable de Convivencia Escolar','Libro de Registro de Incidencias y Portal SíseVe',3,4);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=1),'Derivación','Derivar a centro de salud o servicio especializado','Derivación al centro de salud o servicio especializado si corresponde.','Director/a y Responsable de Convivencia Escolar','Acta de reunión con padres/apoderados o ficha de derivación',5,5);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=1),'Seguimiento','Reunión con tutores','Reuniones con tutores para evaluar avances y fortalecer el aspecto socioemocional.','Director/a, Coordinador TOE, Responsable de Convivencia Escolar y tutores','Acta de segunda reunión con tutores',7,6);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=1),'Seguimiento','Reunión con padres del agresor','Reunión con padres del agresor para verificar compromisos. Si no cumplen, comunicar a DEMUNA, UPE, Fiscalía o Juzgado.','Director/a','Oficio de comunicación adjuntando acta de incumplimiento o inasistencia',7,7);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=1),'Cierre','Cierre del caso','Cerrar el caso tras cumplir acciones e informar a la familia o estudiante mayor de edad.','Director/a y Responsable de Convivencia Escolar','Acta de cierre del caso con cargo de notificación',30,8);
INSERT INTO protocols(number,name,description,deadline_days) VALUES (2,'Acoso entre estudiantes (bullying y ciberbullying)','Protocolos de violencia entre estudiantes. Plazo de atención de 30 días hábiles para cumplir con las acciones.',30);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=2),'Acción','Definir medidas de protección y correctivas','El CGB define medidas de protección para los afectados y medidas correctivas para los agresores.','Director/a y Responsable de Convivencia Escolar','Acta de reunión con miembros del CGB',2,1);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=2),'Acción','Convocar a tutores','Convocatoria a tutores para talleres grupales, tutorías individuales y orientación a familias.','Coordinador TOE y Tutor/a','Acta de primera reunión con tutores',2,2);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=2),'Acción','Reunión por separado con familias','Reunión por separado con familias o estudiante mayor de edad para informar medidas y compromisos.','Director/a y Responsable de Convivencia Escolar','Acta de primera reunión con padres/apoderados',2,3);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=2),'Acción','Registrar en Libro de Incidencias y SíseVe','Registrar el caso en el Libro de Registro de Incidencias y en el Portal SíseVe si no fue reportado previamente.','Director/a y Responsable de Convivencia Escolar','Libro de Registro de Incidencias y Portal SíseVe',3,4);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=2),'Derivación','Derivación a salud o servicio de atención psicológica','Derivación a centro de salud u otro servicio para atención psicológica; con acompañamiento especial si se trata de residencia, pueblos originarios o estudiantes con discapacidad.','Director/a y Responsable de Convivencia Escolar','Acta de reunión con padres/apoderados o ficha de derivación',5,5);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=2),'Seguimiento','Reuniones con tutores','Reuniones con tutores para evaluar avances y reforzar el aspecto socioemocional y académico.','Director/a, Responsable de Convivencia Escolar y Tutor/a','Acta de segunda reunión con tutores',7,6);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=2),'Seguimiento','Reunión con padres del agresor','Reunión con padres del agresor para verificar compromisos. Si no cumplen, comunicar a DEMUNA, UPE, Fiscalía o Juzgado.','Director/a','Oficio de comunicación a DEMUNA, UPE, Fiscalía o Juzgado',7,7);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=2),'Cierre','Cierre del caso','Cerrar cuando se cumplan todas las acciones; informar a la familia o estudiante mayor de edad y dejar constancia en acta.','Director/a y Responsable de Convivencia Escolar','Acta de cierre del caso con cargo de notificación',30,8);
INSERT INTO protocols(number,name,description,deadline_days) VALUES (3,'Violencia con uso de armas entre estudiantes','Protocolos de violencia entre estudiantes. Atención prioritaria con acciones inmediatas e informe en 24 horas. Plazo general de 20 días hábiles.',20);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=3),'Acción','Comunicación inmediata e informe en 24 horas','Cualquier integrante que conozca uso de arma informa al director. El director comunica a Policía y familias, no manipula el arma y evalúa evacuación si existe riesgo.','Director/a','Informe a UGEL y constancia de comunicación a Policía y familias',1,1);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=3),'Acción','Atención médica si hubiera heridos','Trasladar de emergencia al servicio de salud más cercano e informar en paralelo al padre/madre o apoderado del estudiante afectado.','Director/a','Constancia de atención médica o derivación de emergencia',1,2);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=3),'Acción','Convocar al Comité de Gestión del Bienestar','Convocar al CGB para definir medidas de protección y medidas correctivas.','Director/a','Acta de reunión con miembros del CGB',2,3);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=3),'Acción','Reunión con tutores','Reunión con tutores de estudiantes involucrados para brindar soporte socioemocional.','Comité de Gestión del Bienestar','Acta de primera reunión con tutores',2,4);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=3),'Acción','Reunión con padres/apoderados','Reunión con padres o apoderados para informar medidas adoptadas.','Director/a','Acta de primera reunión con padres/apoderados',2,5);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=3),'Acción','Comunicación a comunidad educativa','Comunicar a la comunidad educativa las medidas adoptadas preservando la confidencialidad.','Director/a','Comunicado o acta de reunión con padres de la IE',2,6);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=3),'Acción','Registrar en Libro y SíseVe','Registrar el caso en Libro de Registro de Incidencias y Portal SíseVe si no fue reportado previamente.','Director/a y Responsable de Convivencia Escolar','Libro de Registro de Incidencias y Portal SíseVe',3,7);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=3),'Acción','Informar a UGEL','Informar a la UGEL sobre las acciones adoptadas. En caso de COAR, comunicar a DEBEDSAR del MINEDU.','Director/a','Oficio de comunicación con informe adjunto',3,8);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=3),'Derivación','Derivar a salud o servicio especializado','Derivación a centro de salud u otro servicio si el estudiante requiere atención psicológica.','Director/a','Ficha de derivación',3,9);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=3),'Seguimiento','Seguimiento socioemocional y continuidad educativa','Revisar asistencia, bienestar y cumplimiento de medidas de protección hasta el cierre.','Director/a, Responsable de Convivencia Escolar y Tutor/a','Ficha de seguimiento e informes tutoriales',4,10);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=3),'Cierre','Cierre del caso','Cerrar cuando se cumplan acciones, se garantice protección y se informe a familia o estudiante mayor de edad.','Director/a y Responsable de Convivencia Escolar','Acta de cierre del caso',20,11);
INSERT INTO protocols(number,name,description,deadline_days) VALUES (4,'Violencia sexual entre estudiantes','Violación sexual, tocamientos, actos de connotación sexual o actos libidinosos y acoso sexual. Plazo de 30 días hábiles.',30);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=4),'Acción','Comunicación inmediata y protección','Tomar conocimiento, proteger al estudiante y evitar exposición o revictimización. Comunicar a familia o adulto protector y activar atención urgente.','Director/a y Responsable de Convivencia Escolar','Acta de registro inicial y medidas de protección',1,1);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=4),'Acción','Comunicar a autoridad competente','Comunicar el hecho a Policía Nacional o Ministerio Público según corresponda.','Director/a','Oficio o constancia de denuncia/comunicación',1,2);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=4),'Acción','Derivación inmediata a salud','Acompañar u orientar la atención en servicio de salud para protección y atención integral.','Director/a y Responsable de Convivencia Escolar','Ficha de derivación o constancia de atención',1,3);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=4),'Acción','Convocar al CGB y definir medidas','El CGB define medidas de protección, soporte socioemocional y continuidad educativa.','Director/a y Comité de Gestión del Bienestar','Acta de reunión del CGB',2,4);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=4),'Acción','Registrar en Libro y SíseVe','Registrar el caso en el Libro de Registro de Incidencias y en el Portal SíseVe si no fue reportado previamente.','Director/a y Responsable de Convivencia Escolar','Libro de Registro de Incidencias y Portal SíseVe',3,5);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=4),'Acción','Informar a UGEL','Comunicar el caso y las medidas adoptadas a UGEL, preservando confidencialidad.','Director/a','Oficio a UGEL con informe adjunto',3,6);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=4),'Derivación','Derivar a servicios especializados','Orientar o acompañar a familia para atención en CEM, DEMUNA, UPE, ALEGRA, salud u otros servicios.','Director/a y Responsable de Convivencia Escolar','Ficha de derivación',3,7);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=4),'Seguimiento','Seguimiento socioemocional y educativo','Verificar protección, continuidad educativa, atención por servicios y soporte tutorial.','Responsable de Convivencia Escolar, Tutor/a y Director/a','Ficha de seguimiento e informes',7,8);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=4),'Cierre','Cierre del caso','Cerrar cuando se haya cumplido la ruta, se garantice protección y se informe a la familia o estudiante mayor de edad.','Director/a y Responsable de Convivencia Escolar','Acta de cierre y documentos sustentatorios',30,9);
INSERT INTO protocols(number,name,description,deadline_days) VALUES (5,'Castigo físico y humillante del personal de la IE a estudiantes','Protocolos de violencia escolar de personal de la IE a estudiantes. Plazo de 30 días hábiles.',30);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=5),'Acción','Cese inmediato y protección','Proteger al estudiante, cesar la situación y evitar nueva exposición al personal involucrado.','Director/a','Acta de intervención y medidas de protección',1,1);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=5),'Acción','Reunión con familia o estudiante mayor de edad','Informar medidas adoptadas y registrar compromisos preservando confidencialidad.','Director/a','Acta de primera reunión con padres/apoderados',2,2);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=5),'Acción','Convocar al CGB','Definir medidas de protección, acompañamiento y acciones correctivas institucionales.','Director/a y Comité de Gestión del Bienestar','Acta de reunión con miembros del CGB',2,3);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=5),'Acción','Comunicar a UGEL','Informar a UGEL sobre el hecho y las medidas adoptadas para acciones correspondientes.','Director/a','Oficio de comunicación a UGEL con informe adjunto',3,4);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=5),'Acción','Registrar en Libro y SíseVe','Registrar el caso en Libro de Registro de Incidencias y Portal SíseVe si no fue reportado previamente.','Director/a y Responsable de Convivencia Escolar','Libro de Registro de Incidencias y Portal SíseVe',3,5);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=5),'Derivación','Derivar a salud o servicio especializado','Derivar al estudiante a centro de salud o servicio para atención psicológica cuando corresponda.','Responsable de Convivencia Escolar','Ficha de derivación',5,6);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=5),'Seguimiento','Seguimiento de medidas y continuidad educativa','Verificar asistencia, protección, soporte socioemocional y cumplimiento de medidas.','Director/a, Responsable de Convivencia Escolar y Tutor/a','Ficha de seguimiento',7,7);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=5),'Cierre','Cierre del caso','Cerrar cuando se cumplan acciones, se garantice protección y se informe a familia o estudiante mayor de edad.','Director/a y Responsable de Convivencia Escolar','Acta de cierre del caso',30,8);
INSERT INTO protocols(number,name,description,deadline_days) VALUES (6,'Violencia sexual del personal de la IE a estudiantes','Violación sexual, tocamientos, actos de connotación sexual o actos libidinosos y acoso sexual cometidos por personal de la IE. Plazo de 30 días hábiles.',30);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=6),'Acción','Protección inmediata del estudiante','Activar protección, evitar contacto con el presunto agresor y preservar confidencialidad.','Director/a','Acta de medidas de protección',1,1);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=6),'Acción','Reunión con padres/apoderados','Reunión con familia. De no existir denuncia escrita, levantar acta de denuncia y medidas de protección.','Director/a','Acta de denuncia o reunión',1,2);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=6),'Acción','Comunicar a Policía o Ministerio Público','Comunicar el hecho a autoridad competente remitiendo denuncia o acta.','Director/a','Oficio o constancia de comunicación a PNP/MP',1,3);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=6),'Acción','Comunicar a UGEL y separar preventivamente','Comunicar a UGEL y poner a disposición al personal presunto agresor, según corresponda.','Director/a','Oficio a UGEL y resolución/directiva de separación preventiva',1,4);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=6),'Acción','Registrar en Libro y SíseVe','Reportar el caso en SíseVe y anotarlo en el Libro de Registro de Incidencias.','Responsable de Convivencia Escolar','Portal SíseVe y Libro de Registro de Incidencias',3,5);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=6),'Acción','Soporte a estudiantes afectados indirectamente','Realizar acciones para restablecer convivencia y seguridad con apoyo de UGEL, CEM, DEMUNA u otros servicios.','Director/a y Comité de Gestión del Bienestar','Acta o informe de soporte institucional',5,6);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=6),'Derivación','Derivar a servicios especializados','Orientar a familia para acudir a CEM, DEMUNA, Defensa Pública/ALEGRA u otras entidades según corresponda.','Responsable de Convivencia Escolar','Ficha de derivación',5,7);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=6),'Seguimiento','Permanencia y soporte integral','Asegurar permanencia en IE o sistema educativo y brindar apoyo emocional y pedagógico.','Director/a, Responsable de Convivencia Escolar y Tutor/a','Ficha de seguimiento e informe tutorial',7,8);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=6),'Cierre','Cierre del caso','Cerrar cuando se garantice protección, permanencia y soporte socioemocional por servicio especializado.','Responsable de Convivencia Escolar y Director/a','Portal SíseVe, documentos sustentatorios y acta de cierre',30,9);
INSERT INTO protocols(number,name,description,deadline_days) VALUES (7,'Violencia del entorno familiar o comunitario contra estudiantes','Violencia física, psicológica o sexual ejercida por una persona del entorno familiar o comunitario. Requiere articulación con servicios especializados y seguimiento permanente.',NULL);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=7),'Acción','Registro del conocimiento del caso','Registrar lo sucedido en acta cuando la escuela toma conocimiento por familia, estudiante, docente, UGEL/DRE, SíseVe o testigo.','Director/a y Responsable de Convivencia Escolar','Acta de registro inicial',1,1);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=7),'Acción','Medidas de protección inmediata','Brindar protección al estudiante y evitar exposición a la persona agresora del entorno familiar o comunitario.','Director/a y Comité de Gestión del Bienestar','Acta de medidas de protección',1,2);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=7),'Acción','Comunicar a autoridad o servicio competente','Comunicar o acompañar la comunicación a DEMUNA, UPE, CEM, PNP, Ministerio Público o juzgado según el caso.','Director/a','Oficio, constancia de denuncia o comunicación',1,3);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=7),'Acción','Registrar en Libro y SíseVe','Registrar en Libro de Incidencias y Portal SíseVe si corresponde.','Responsable de Convivencia Escolar','Libro de Registro de Incidencias y Portal SíseVe',3,4);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=7),'Derivación','Derivar a servicios especializados','Derivar a salud, CEM, DEMUNA, UPE, ALEGRA u otros servicios para atención integral.','Director/a y Responsable de Convivencia Escolar','Ficha de derivación',3,5);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=7),'Seguimiento','Seguimiento permanente de protección y continuidad educativa','Verificar continuidad educativa, asistencia, bienestar y atención por instituciones especializadas.','Responsable de Convivencia Escolar, Tutor/a y Director/a','Ficha de seguimiento permanente',7,6);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=7),'Seguimiento','Coordinación con instituciones externas','Registrar respuestas, informes o acciones de instituciones externas involucradas.','Director/a y ECEU/UGEL cuando corresponda','Oficios, informes o actas de coordinación',15,7);
INSERT INTO protocol_tasks(protocol_id,stage,name,description,responsible_role,instrument,relative_day,sort_order) VALUES ((SELECT id FROM protocols WHERE number=7),'Cierre','Cierre administrativo con sustento','Cerrar solo cuando existan medidas de protección, atención especializada documentada y condiciones para continuidad educativa.','Director/a y Responsable de Convivencia Escolar','Acta de cierre y documentos sustentatorios',NULL,8);
INSERT INTO external_services(name,type,phone,address,notes) VALUES ('DEMUNA','Protección municipal','','','Derivación y protección de NNA'),('Centro Emergencia Mujer - CEM','Atención especializada','','','Apoyo en casos de violencia'),('Comisaría PNP','Autoridad policial','','','Comunicación de hechos y denuncias'),('Ministerio Público/Fiscalía','Autoridad fiscal','','','Casos con presunto delito'),('Centro de salud','Salud','','','Atención médica o psicológica'),('UGEL - Especialista de Convivencia Escolar','Gestión educativa descentralizada','','','Supervisión y acompañamiento');