<?php
// Detectar si estamos en la carpeta 'modelos' o siendo llamados desde fuera
$ruta_conexion = dirname(__DIR__) . "/config/Conexion.php";
if (file_exists($ruta_conexion)) {
    require_once $ruta_conexion;
} else {
    // Fallback por si la estructura de carpetas es distinta
    require_once "../config/Conexion.php";
}

class Crecimiento
{
    public function __construct()
    {

    }

    // Obtener datos estándar de la OMS para un gráfico específico
    // $tipo: 'oms_pde' (Peso/Edad), 'oms_tde' (Talla/Edad), 'oms_imc' (IMC/Edad),
    //        'oms_pce' (P.Cefálico/Edad), 'oms_pt' (Peso/Talla)
    // $sexo: 1=Masculino, 2=Femenino
    public function listarEstandares($tipo, $sexo)
    {
        $tablas_permitidas = ['oms_pde', 'oms_tde', 'oms_imc', 'oms_pce', 'oms_pt'];
        if (!in_array($tipo, $tablas_permitidas)) {
            return false;
        }

        // oms_pt usa 'talla_cm' como eje X (no 'mes')
        // Crear tabla automáticamente si no existe (vacía hasta importar datos OMS)
        if ($tipo === 'oms_pt') {
            $ck = "SHOW TABLES LIKE 'oms_pt'";
            $rs = @ejecutarConsulta($ck);
            if (!$rs || $rs->num_rows === 0) {
                $create = "CREATE TABLE IF NOT EXISTS `oms_pt` (
                    `id` int(11) NOT NULL AUTO_INCREMENT,
                    `sexo` int(1) NOT NULL COMMENT '1=Masculino, 2=Femenino',
                    `talla_cm` decimal(5,1) NOT NULL,
                    `sd3neg` decimal(5,2) DEFAULT NULL,
                    `sd2neg` decimal(5,2) DEFAULT NULL,
                    `sd1neg` decimal(5,2) DEFAULT NULL,
                    `sd0` decimal(5,2) DEFAULT NULL,
                    `sd1` decimal(5,2) DEFAULT NULL,
                    `sd2` decimal(5,2) DEFAULT NULL,
                    `sd3` decimal(5,2) DEFAULT NULL,
                    PRIMARY KEY (`id`),
                    KEY `idx_sexo_talla` (`sexo`, `talla_cm`)
                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci";
                @ejecutarConsulta($create);
            }
            $sql = "SELECT talla_cm, sd3neg, sd2neg, sd1neg, sd0, sd1, sd2, sd3 FROM oms_pt WHERE sexo='$sexo' ORDER BY talla_cm ASC";
            return ejecutarConsulta($sql);
        }

        $sql = "SELECT mes, sd3neg, sd2neg, sd1neg, sd0, sd1, sd2, sd3 FROM $tipo WHERE sexo='$sexo' ORDER BY mes ASC";
        return ejecutarConsulta($sql);
    }

    // Obtener historial de crecimiento de un paciente
    public function listarHistorialPaciente($idpersona)
    {
        // Consultamos Triaje y Atención.
        // NOTA: Se eliminó perimetro_cefalico de la query porque no existe en la tabla triaje actual.
        $sql = "SELECT 
					a.idatencion,
					t.peso, 
					t.talla, 
					t.imc, 
					a.fecha,
					p.fecha_nacimiento,
					TIMESTAMPDIFF(MONTH, p.fecha_nacimiento, a.fecha) as edad_meses
				FROM triaje t
				INNER JOIN atencion a ON t.idatencion = a.idatencion
				INNER JOIN persona p ON a.idpersona = p.idpersona
				WHERE a.idpersona = '$idpersona' AND (t.peso > 0 OR t.talla > 0)
				ORDER BY a.fecha ASC";
        return ejecutarConsulta($sql);
    }
}
?>