<?php
// Consolidated sectores API: handles get_sectores, add_sector, update_sector, delete_sector
// Expects $route from api/index.php and bootstrap loaded

$archivo = __DIR__ . '/../data/sectores.json';

switch ($route) {
    case 'get_sectores': {
        header('Content-Type: application/json');
        echo file_exists($archivo) ? file_get_contents($archivo) : json_encode([]);
        break;
    }

    case 'add_sector': {
        if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
            echo json_encode(['success' => false, 'msg' => 'Método no permitido']);
            break;
        }
        $entrada = json_decode(file_get_contents('php://input'), true);
        $nuevo = trim($entrada['sector'] ?? '');
        if ($nuevo === '') {
            echo json_encode(['success' => false, 'msg' => 'Sector vacío']);
            break;
        }
        $sectores = file_exists($archivo) ? json_decode(file_get_contents($archivo), true) : [];
        if (in_array($nuevo, $sectores)) {
            echo json_encode(['success' => false, 'msg' => 'Sector duplicado']);
            break;
        }
        $sectores[] = $nuevo;
        if (file_put_contents($archivo, json_encode($sectores, JSON_PRETTY_PRINT))) {
            echo json_encode(['success' => true]);
        } else {
            echo json_encode(['success' => false, 'msg' => 'No se pudo guardar']);
        }
        break;
    }

    case 'update_sector': {
        if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
            echo json_encode(['success' => false, 'msg' => 'Método no permitido']);
            break;
        }
        $entrada = json_decode(file_get_contents('php://input'), true);
        $viejo = trim($entrada['old_sector'] ?? '');
        $nuevo = trim($entrada['new_sector'] ?? '');
        if ($viejo === '' || $nuevo === '') {
            echo json_encode(['success' => false, 'msg' => 'Datos inválidos']);
            break;
        }
        $sectores = file_exists($archivo) ? json_decode(file_get_contents($archivo), true) : [];
        $actualizado = false;
        foreach ($sectores as &$sector) {
            if ($sector === $viejo) { $sector = $nuevo; $actualizado = true; break; }
        }
        if (!$actualizado) {
            echo json_encode(['success' => false, 'msg' => 'Sector no encontrado']);
            break;
        }
        if (file_put_contents($archivo, json_encode($sectores, JSON_PRETTY_PRINT))) {
            echo json_encode(['success' => true]);
        } else {
            echo json_encode(['success' => false, 'msg' => 'No se pudo guardar']);
        }
        break;
    }

    case 'delete_sector': {
        if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
            echo json_encode(['success' => false, 'msg' => 'Método no permitido']);
            break;
        }
        $entrada = json_decode(file_get_contents('php://input'), true);
        $nombre = trim($entrada['sector'] ?? '');
        if ($nombre === '') {
            echo json_encode(['success' => false, 'msg' => 'Sector inválido']);
            break;
        }
        $sectores = file_exists($archivo) ? json_decode(file_get_contents($archivo), true) : [];
        $nuevaLista = array_values(array_filter($sectores, fn($s) => $s !== $nombre));
        if (file_put_contents($archivo, json_encode($nuevaLista, JSON_PRETTY_PRINT))) {
            echo json_encode(['success' => true]);
        } else {
            echo json_encode(['success' => false, 'msg' => 'No se pudo eliminar']);
        }
        break;
    }

    default:
        json_error('Ruta no soportada en api_sectores', 404);
}
