<?php
declare(strict_types=1);

require_once __DIR__ . '/../auth/guard.php';
require_once __DIR__ . '/../conexion.php';
require_once __DIR__ . '/../_helpers.php';

$u = require_login();
require_module_access($u, "instrumentos");

$id  = (int)($_GET['id'] ?? 0);
$cod = trim((string)($_GET['cod'] ?? $_GET['codigo_familia'] ?? ''));

try {
  if ($id <= 0) {
    if ($cod === '') json_response(['ok'=>false,'message'=>'cod o id requerido'], 400);
    $st = $pdo->prepare("SELECT id, creado_en FROM instrumentos_genograma WHERE codigo_familia=:cod ORDER BY id DESC LIMIT 1");
    $st->execute([':cod'=>$cod]);
    $head = $st->fetch(PDO::FETCH_ASSOC);
    if (!$head) json_response(['ok'=>false,'message'=>'No encontrado'], 404);
    $id = (int)$head['id'];
  } else {
    $st = $pdo->prepare("SELECT id, creado_en FROM instrumentos_genograma WHERE id=:id LIMIT 1");
    $st->execute([':id'=>$id]);
    $head = $st->fetch(PDO::FETCH_ASSOC);
    if (!$head) json_response(['ok'=>false,'message'=>'No encontrado'], 404);
  }

  $stR = $pdo->prepare("SELECT rut_a, rut_b, tipo FROM instrumentos_genograma_rel WHERE genograma_id=:id ORDER BY id ASC");
  $stR->execute([':id'=>$id]);

  json_response(['ok'=>true,'data'=>[
    'id'=>$id,
    'creado_en'=>$head['creado_en'],
    'relaciones'=>$stR->fetchAll(PDO::FETCH_ASSOC),
  ]]);

} catch (Throwable $e) {
  error_log("GEN GET ERROR: ".$e->getMessage());
  json_response(['ok'=>false,'message'=>'Error obteniendo Genograma.'], 500);
}
