<?php
require 'conexion.php'; // Asegúrate de que este archivo tiene la conexión a la BD

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    try {
        // Recoger datos del formulario
        $fecha_atencion = $_POST['fecha_atencion'] ?? null;
        $hora_atencion = $_POST['hora_atencion'] ?? null;
        $dni = $_POST['dni'] ?? null; // Se usará para encontrar `id_trabajador`
        $lugar_atencion = $_POST['lugar_atencion'] ?? null;
        $tipo_evento = $_POST['tipo_evento'] ?? null; // Se usará para encontrar `id_evento`
        $diagnostico_cie10 = $_POST['diagnostico_cie10'] ?? null;
        $tratamiento = $_POST['tratamiento'] ?? null;
        $descanso_medico = $_POST['descanso_medico'] ?? null;
        $fecha_inicio_descanso = $_POST['fecha_inicio_descanso'] ?? null;
        $fecha_final_descanso = $_POST['fecha_final_descanso'] ?? null;
        $seguimiento = $_POST['seguimiento'] ?? null;
        $responsable_registro = $_POST['responsable_registro'] ?? null;

        // Validación básica
        if (empty($fecha_atencion) || empty($hora_atencion) || empty($dni) || empty($tipo_evento)) {
            throw new Exception("Todos los campos obligatorios deben ser llenados.");
        }

        // Obtener `id_trabajador` desde `Trabajador` usando el DNI
        $stmt1 = $pdo->prepare("SELECT id_trabajador FROM Trabajador WHERE dni_ce = :dni LIMIT 1");
        $stmt1->bindParam(':dni', $dni);
        $stmt1->execute();
        $id_trabajador = $stmt1->fetchColumn();

        if (!$id_trabajador) {
            throw new Exception("No se encontró un trabajador con el DNI ingresado.");
        }

        // Obtener `id_evento` desde `Evento` usando `tipo_evento`
        $stmt2 = $pdo->prepare("SELECT id_evento FROM Evento WHERE tipo_evento = :tipo_evento LIMIT 1");
        $stmt2->bindParam(':tipo_evento', $tipo_evento);
        $stmt2->execute();
        $id_evento = $stmt2->fetchColumn();

        if (!$id_evento) {
            throw new Exception("No se encontró el tipo de evento seleccionado.");
        }

        // Insertar datos en la tabla `Atencion_Medica`
        $query = "INSERT INTO Atencion_Medica 
            (fecha_atencion, hora_atencion, id_trabajador, lugar_atencion, id_evento, diagnostico_cie10, tratamiento, descanso_medico, fecha_inicio_descanso, fecha_final_descanso, seguimiento, responsable_registro) 
            VALUES (:fecha_atencion, :hora_atencion, :id_trabajador, :lugar_atencion, :id_evento, :diagnostico_cie10, :tratamiento, :descanso_medico, :fecha_inicio_descanso, :fecha_final_descanso, :seguimiento, :responsable_registro)";

        $stmt3 = $pdo->prepare($query);

        // Vincular parámetros
        $stmt3->bindParam(':fecha_atencion', $fecha_atencion);
        $stmt3->bindParam(':hora_atencion', $hora_atencion);
        $stmt3->bindParam(':id_trabajador', $id_trabajador);
        $stmt3->bindParam(':lugar_atencion', $lugar_atencion);
        $stmt3->bindParam(':id_evento', $id_evento);
        $stmt3->bindParam(':diagnostico_cie10', $diagnostico_cie10);
        $stmt3->bindParam(':tratamiento', $tratamiento);
        $stmt3->bindParam(':descanso_medico', $descanso_medico);
        $stmt3->bindParam(':fecha_inicio_descanso', $fecha_inicio_descanso);
        $stmt3->bindParam(':fecha_final_descanso', $fecha_final_descanso);
        $stmt3->bindParam(':seguimiento', $seguimiento);
        $stmt3->bindParam(':responsable_registro', $responsable_registro);

        // Ejecutar la consulta
        if ($stmt3->execute()) {
            header("Location: index.php?success=1"); // Redirigir con éxito
            exit;
        } else {
            throw new Exception("Error al insertar la atención médica.");
        }

    } catch (Exception $e) {
        header("Location: index.php?error=" . urlencode($e->getMessage())); // Redirigir con mensaje de error
        exit;
    }
} else {
    header("Location: index.php"); // Redirigir si no es POST
    exit;
}
?>
