<?php
// Ajustar estos datos según tu XAMPP o cPanel.
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_NAME', 'ficha_medica');

$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if ($mysqli->connect_errno) {
    die('Error de conexión MySQL: ' . $mysqli->connect_error);
}
$mysqli->set_charset('utf8mb4');

// Actualización automática mínima para versiones anteriores del sistema.
// Esto evita errores si la base fue creada antes de agregar Pacientes.
function columna_existe($mysqli, $tabla, $columna) {
    $stmt = $mysqli->prepare("SHOW COLUMNS FROM `$tabla` LIKE ?");
    if (!$stmt) { return false; }
    $stmt->bind_param('s', $columna);
    $stmt->execute();
    return $stmt->get_result()->num_rows > 0;
}

function indice_existe($mysqli, $tabla, $indice) {
    $stmt = $mysqli->prepare("SHOW INDEX FROM `$tabla` WHERE Key_name = ?");
    if (!$stmt) { return false; }
    $stmt->bind_param('s', $indice);
    $stmt->execute();
    return $stmt->get_result()->num_rows > 0;
}

$mysqli->query("CREATE TABLE IF NOT EXISTS patients (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(120) NOT NULL,
  active TINYINT(1) NOT NULL DEFAULT 1,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY uk_patient_name (name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");

$mysqli->query("INSERT IGNORE INTO patients (id, name, active) VALUES (1, 'Yiyita', 1)");

if (!columna_existe($mysqli, 'medical_followups', 'patient_id')) {
    $mysqli->query("ALTER TABLE medical_followups ADD COLUMN patient_id INT NULL AFTER user_id");
    $mysqli->query("UPDATE medical_followups SET patient_id = 1 WHERE patient_id IS NULL");
}

if (!indice_existe($mysqli, 'medical_followups', 'idx_followup_patient')) {
    $mysqli->query("ALTER TABLE medical_followups ADD INDEX idx_followup_patient (patient_id)");
}
?>
