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.']); }