<?php
/**
 * POST — Crea o actualiza un médico del catálogo.
 */
require_once __DIR__ . '/../../../config/config.php';
if (!isUserLoggedIn()) { http_response_code(401); echo json_encode(['ok'=>false,'error'=>'No autorizado']); exit; }

header('Content-Type: application/json');

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo json_encode(['ok'=>false,'error'=>'Método no permitido']); exit;
}

$datos       = json_decode(file_get_contents('php://input'), true) ?? [];
$id          = !empty($datos['id'])              ? (int)   $datos['id']                          : null;
$codigo      = strtoupper(trim($datos['codigo']      ?? ''));
$nombres     = trim($datos['nombres']     ?? '');
$apellidos   = trim($datos['apellidos']   ?? '');
$especialidad = trim($datos['cod_especialidad'] ?? '');
$docid       = trim($datos['docidmedico'] ?? '');
$telefonos   = trim($datos['telefonos']   ?? '');
$email       = trim($datos['email']       ?? '');

if (!$codigo)    { echo json_encode(['ok'=>false,'error'=>'El código es obligatorio.']);    exit; }
if (!$nombres)   { echo json_encode(['ok'=>false,'error'=>'Los nombres son obligatorios.']); exit; }
if (!$apellidos) { echo json_encode(['ok'=>false,'error'=>'Los apellidos son obligatorios.']); exit; }

$pdo = Database::getInstance()->getConnection();

if ($id) {
    // Editar
    $stmt = $pdo->prepare(
        "UPDATE medicos SET codigo=?, nombres=?, apellidos=?, telefonos=?, email=?, cod_especialidad=?, docidmedico=?
          WHERE id=?"
    );
    $stmt->execute([$codigo, $nombres, $apellidos, $telefonos ?: null, $email ?: null, $especialidad ?: null, $docid ?: null, $id]);
    echo json_encode(['ok'=>true,'mensaje'=>'Médico actualizado correctamente.']);
} else {
    // Crear — verificar código único
    $existe = $pdo->prepare("SELECT id FROM medicos WHERE codigo = ?");
    $existe->execute([$codigo]);
    if ($existe->fetch()) {
        echo json_encode(['ok'=>false,'error'=>"El código '$codigo' ya existe."]); exit;
    }
    $stmt = $pdo->prepare(
        "INSERT INTO medicos (codigo, nombres, apellidos, telefonos, email, cod_especialidad, docidmedico)
         VALUES (?, ?, ?, ?, ?, ?, ?)"
    );
    $stmt->execute([$codigo, $nombres, $apellidos, $telefonos ?: null, $email ?: null, $especialidad ?: null, $docid ?: null]);
    echo json_encode(['ok'=>true,'id'=>(int)$pdo->lastInsertId(),'mensaje'=>'Médico creado correctamente.']);
}
