<?php
// usuarios_direcciones_api.php
header('Content-Type: application/json');
if (session_status() !== PHP_SESSION_ACTIVE) {
  session_start();
}
require __DIR__ . '/../includes/session_control.php';
require_once __DIR__ . '/../cotizaciones/api/_node.php';

$action    = $_REQUEST['action'] ?? '';
$idUsuario = isset($_REQUEST['idUsuario']) ? (int)$_REQUEST['idUsuario'] : 0;

$token = cpn_node_token_or_fail();
$base = cpn_node_api_base();

if ($action === 'list') {
  if (!$idUsuario) {
    echo json_encode([]);
    exit;
  }
  $url = $base . '/api/ventas/usuarios/' . urlencode((string)$idUsuario) . '/direcciones';
  $r = cpn_node_request('GET', $url, $token);
  if (!isset($r['ok']) || $r['ok'] !== true) {
    http_response_code($r['_http'] ?? 500);
    echo json_encode([]);
    exit;
  }
  $data = $r['data'] ?? [];
  if (!is_array($data)) $data = [];
  echo json_encode($data);
  exit;
}

if ($action === 'listsel') {
  $url = $base . '/api/ventas/ciudades';
  $r = cpn_node_request('GET', $url, $token);
  if (!isset($r['ok']) || $r['ok'] !== true) {
    http_response_code($r['_http'] ?? 500);
    echo json_encode(['ciudades' => []]);
    exit;
  }
  $meta = $r['data'] ?? [];
  echo json_encode(['ciudades' => $meta['ciudades'] ?? []]);
  exit;
}

if ($action === 'add') {
  if (!$idUsuario) {
    http_response_code(400);
    echo json_encode(['success' => false]);
    exit;
  }
  $url = $base . '/api/ventas/usuarios/' . urlencode((string)$idUsuario) . '/direcciones';
  $payload = [
    'identificacion' => $_POST['identificacion'] ?? null,
    'nombre' => $_POST['nombre'] ?? '',
    'apellido' => $_POST['apellido'] ?? '',
    'razonSocial' => $_POST['razonSocial'] ?? null,
    'direccion' => $_POST['direccion'] ?? '',
    'direccionLinea2' => $_POST['direccionLinea2'] ?? null,
    'telefono' => $_POST['telefono'] ?? '',
    'email' => $_POST['email'] ?? null,
    'idCiudad' => $_POST['idCiudad'] ?? null,
  ];
  $r = cpn_node_request('POST', $url, $token, $payload);
  if (!isset($r['ok']) || $r['ok'] !== true) {
    http_response_code($r['_http'] ?? 500);
    echo json_encode(['success' => false, 'error' => ($r['error']['message'] ?? 'Error')]);
    exit;
  }
  echo json_encode(['success' => true]);
  exit;
}

if ($action === 'delete') {
  $id = isset($_POST['idRegistro']) ? (int)$_POST['idRegistro'] : 0;
  if (!$id) {
    http_response_code(400);
    echo json_encode(['error' => 'Parámetros inválidos']);
    exit;
  }

  $url = $base . '/api/ventas/direcciones/' . urlencode((string)$id);
  $r = cpn_node_request('DELETE', $url, $token);
  if (!isset($r['ok']) || $r['ok'] !== true) {
    http_response_code($r['_http'] ?? 500);
    $msg = $r['error']['message'] ?? 'Error eliminando dirección';
    echo json_encode(['error' => $msg]);
    exit;
  }

  echo json_encode(['success' => true]);
  exit;
}



echo json_encode(['error' => 'Acción inválida']);
