<?php
require "../config/Conexion.php";

$sql = "
DROP TABLE IF EXISTS `vacuna_paciente`;
DROP TABLE IF EXISTS `esquema_vacuna`;

CREATE TABLE `esquema_vacuna` (
  `idesquema` int(11) NOT NULL AUTO_INCREMENT,
  `nombre_vacuna` varchar(100) NOT NULL,
  `edad_meses` int(11) NOT NULL COMMENT 'Edad en meses para aplicación',
  `edad_etiqueta` varchar(50) NOT NULL COMMENT 'Etiqueta visual de edad',
  `dosis_nro` int(11) DEFAULT 1 COMMENT 'Número de dosis',
  `descripcion` text DEFAULT NULL,
  `obligatoria` tinyint(1) DEFAULT 1 COMMENT '1=Obligatoria, 0=Opcional',
  PRIMARY KEY (`idesquema`),
  KEY `idx_edad` (`edad_meses`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE `vacuna_paciente` (
  `idvacuna_paciente` int(11) NOT NULL AUTO_INCREMENT,
  `idatencion` int(11) DEFAULT NULL COMMENT 'Atención donde se aplicó',
  `idpersona` int(11) NOT NULL COMMENT 'Paciente',
  `idesquema` int(11) NOT NULL COMMENT 'Vacuna del esquema',
  `fecha_aplicacion` date NOT NULL,
  `lote` varchar(50) DEFAULT NULL,
  `observacion` text DEFAULT NULL,
  `estado` enum('aplicada','vencida','pendiente') DEFAULT 'aplicada',
  `fecha_registro` timestamp NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`idvacuna_paciente`),
  KEY `idx_persona` (`idpersona`),
  KEY `idx_esquema` (`idesquema`),
  KEY `idx_atencion` (`idatencion`),
  CONSTRAINT `fk_vacuna_persona` FOREIGN KEY (`idpersona`) REFERENCES `persona` (`idpersona`) ON DELETE CASCADE,
  CONSTRAINT `fk_vacuna_esquema` FOREIGN KEY (`idesquema`) REFERENCES `esquema_vacuna` (`idesquema`),
  CONSTRAINT `fk_vacuna_atencion` FOREIGN KEY (`idatencion`) REFERENCES `atencion` (`idatencion`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `esquema_vacuna` (`nombre_vacuna`, `edad_meses`, `edad_etiqueta`, `dosis_nro`, `descripcion`, `obligatoria`) VALUES
('BCG', 0, 'Nacimiento', 1, 'Bacilo de Calmette-Guérin contra tuberculosis', 1),
('HB', 0, 'Nacimiento', 1, 'Hepatitis B (monovalente)', 1),
('Pentavalente', 2, '2 meses', 1, 'DPT + HB + Hib (Primera dosis)', 1),
('OPV', 2, '2 meses', 1, 'Polio oral (Primera dosis)', 1),
('Rotavirus', 2, '2 meses', 1, 'Rotavirus (Primera dosis)', 1),
('Neumococo', 2, '2 meses', 1, 'Neumococo conjugada (Primera dosis)', 1),
('Pentavalente', 4, '4 meses', 2, 'DPT + HB + Hib (Segunda dosis)', 1),
('OPV', 4, '4 meses', 2, 'Polio oral (Segunda dosis)', 1),
('Rotavirus', 4, '4 meses', 2, 'Rotavirus (Segunda dosis)', 1),
('Neumococo', 4, '4 meses', 2, 'Neumococo conjugada (Segunda dosis)', 1),
('Pentavalente', 6, '6 meses', 3, 'DPT + HB + Hib (Tercera dosis)', 1),
('OPV', 6, '6 meses', 3, 'Polio oral (Tercera dosis)', 1),
('Influenza', 6, '6 meses', 1, 'Influenza (Primera dosis)', 0),
('Influenza', 7, '7 meses', 2, 'Influenza (Segunda dosis)', 0),
('SRP', 12, '12 meses', 1, 'Sarampión, Rubeola, Parotiditis (Primera dosis)', 1),
('Neumococo', 12, '12 meses', 3, 'Neumococo conjugada (Refuerzo)', 1),
('Fiebre Amarilla', 12, '12 meses', 1, 'Fiebre Amarilla', 1),
('Varicela', 15, '15 meses', 1, 'Varicela', 1),
('DPT', 18, '18 meses', 1, 'DPT (Primer refuerzo)', 1),
('OPV', 18, '18 meses', 4, 'Polio oral (Primer refuerzo)', 1),
('DPT', 60, '5 años', 2, 'DPT (Segundo refuerzo)', 1),
('OPV', 60, '5 años', 5, 'Polio oral (Segundo refuerzo)', 1),
('dT', 120, '10 años', 1, 'dT adulto (Toxoide tetánico y diftérico)', 1),
('VPH', 120, '10 años (niñas)', 1, 'Virus del Papiloma Humano (Primera dosis - Niñas)', 1),
('VPH', 126, '10 años + 6m (niñas)', 2, 'Virus del Papiloma Humano (Segunda dosis - Niñas)', 1);
";

if ($conexion->multi_query($sql)) {
    echo "Tablas creadas correctamente";
} else {
    echo "Error al crear tablas: " . $conexion->error;
}
?>