<?php
/**
 * TechShop Perú - API: Calculadora de Envío por Departamento (Mejora 10)
 */
define('SECURE_ACCESS', true);
header('Content-Type: application/json; charset=utf-8');

require_once __DIR__ . '/../includes/config.php';
require_once __DIR__ . '/../includes/functions.php';

// Tarifas de envío por departamento (S/)
$tarifas = [
    'lima'          => ['tarifa' => 8.00,  'dias' => '24-48h',  'nombre' => 'Lima Metropolitana'],
    'callao'        => ['tarifa' => 8.00,  'dias' => '24-48h',  'nombre' => 'Callao'],
    'arequipa'      => ['tarifa' => 15.00, 'dias' => '2-3 días','nombre' => 'Arequipa'],
    'trujillo'      => ['tarifa' => 15.00, 'dias' => '2-3 días','nombre' => 'La Libertad / Trujillo'],
    'chiclayo'      => ['tarifa' => 16.00, 'dias' => '2-3 días','nombre' => 'Lambayeque / Chiclayo'],
    'piura'         => ['tarifa' => 18.00, 'dias' => '3-4 días','nombre' => 'Piura'],
    'cusco'         => ['tarifa' => 20.00, 'dias' => '3-4 días','nombre' => 'Cusco'],
    'iquitos'       => ['tarifa' => 28.00, 'dias' => '5-7 días','nombre' => 'Loreto / Iquitos'],
    'puno'          => ['tarifa' => 22.00, 'dias' => '3-5 días','nombre' => 'Puno'],
    'huancayo'      => ['tarifa' => 14.00, 'dias' => '2-3 días','nombre' => 'Junín / Huancayo'],
    'tacna'         => ['tarifa' => 22.00, 'dias' => '3-5 días','nombre' => 'Tacna'],
    'ica'           => ['tarifa' => 12.00, 'dias' => '1-2 días','nombre' => 'Ica'],
    'ancash'        => ['tarifa' => 15.00, 'dias' => '2-3 días','nombre' => 'Áncash'],
    'cajamarca'     => ['tarifa' => 18.00, 'dias' => '3-4 días','nombre' => 'Cajamarca'],
    'amazonas'      => ['tarifa' => 25.00, 'dias' => '4-6 días','nombre' => 'Amazonas'],
    'apurimac'      => ['tarifa' => 22.00, 'dias' => '3-5 días','nombre' => 'Apurímac'],
    'ayacucho'      => ['tarifa' => 22.00, 'dias' => '3-5 días','nombre' => 'Ayacucho'],
    'huanuco'       => ['tarifa' => 18.00, 'dias' => '3-4 días','nombre' => 'Huánuco'],
    'madre_de_dios' => ['tarifa' => 30.00, 'dias' => '5-7 días','nombre' => 'Madre de Dios'],
    'moquegua'      => ['tarifa' => 22.00, 'dias' => '3-5 días','nombre' => 'Moquegua'],
    'pasco'         => ['tarifa' => 18.00, 'dias' => '3-4 días','nombre' => 'Pasco'],
    'san_martin'    => ['tarifa' => 22.00, 'dias' => '3-5 días','nombre' => 'San Martín'],
    'tumbes'        => ['tarifa' => 22.00, 'dias' => '3-5 días','nombre' => 'Tumbes'],
    'ucayali'       => ['tarifa' => 25.00, 'dias' => '4-6 días','nombre' => 'Ucayali'],
    'otro'          => ['tarifa' => 30.00, 'dias' => '5-8 días','nombre' => 'Otro departamento'],
];

$departamento = strtolower(trim($_GET['departamento'] ?? ''));
$subtotal = (float)($_GET['subtotal'] ?? 0);

if (empty($departamento)) {
    // Devolver lista completa de departamentos
    echo json_encode(['success' => true, 'departamentos' => $tarifas]);
    exit;
}

$info = $tarifas[$departamento] ?? $tarifas['otro'];

// Envío gratis para Lima en pedidos mayores a S/ 199
$envio_gratis_min = 199;
$tarifa_final = $info['tarifa'];
$mensaje_gratis = '';

if (in_array($departamento, ['lima', 'callao']) && $subtotal >= $envio_gratis_min) {
    $tarifa_final = 0;
    $mensaje_gratis = '¡Envío gratis para Lima en pedidos mayores a S/ ' . number_format($envio_gratis_min, 0) . '!';
} elseif (in_array($departamento, ['lima', 'callao']) && $subtotal < $envio_gratis_min) {
    $faltan = $envio_gratis_min - $subtotal;
    $mensaje_gratis = 'Agrega S/ ' . number_format($faltan, 2) . ' más para envío gratis en Lima';
}

echo json_encode([
    'success'        => true,
    'departamento'   => $info['nombre'],
    'tarifa'         => $tarifa_final,
    'tarifa_normal'  => $info['tarifa'],
    'tarifa_format'  => $tarifa_final > 0 ? 'S/ ' . number_format($tarifa_final, 2) : 'Gratis',
    'dias'           => $info['dias'],
    'mensaje_gratis' => $mensaje_gratis,
]);
