/** * API Client para Sectors * Gestiona las operaciones CRUD para los sectores */ import { api } from '$lib/api'; export interface Sector { key: string; description: string; authorized: number; } export interface SectorListResponse { items: Sector[]; total: number; page: number; page_size: number; } export interface CreateSectorData { key: string; description: string; authorized: number; } export interface UpdateSectorData { key?: string; description?: string; authorized?: number; } /** * API para Sectors */ export const sectorsApi = { /** * Lista todos los sectores con paginación * @param page - Número de página (por defecto 1) * @param pageSize - Tamaño de página (por defecto 50) */ list: (page = 1, pageSize = 50) => api.get( `/v1/sectors?page=${page}&page_size=${pageSize}` ), /** * Obtiene un sector por key * @param key - Clave del sector */ get: (key: string) => api.get(`/v1/sectors/${key}`), /** * Crea un nuevo sector * @param data - Datos del sector a crear */ create: (data: CreateSectorData) => api.post('/v1/sectors', data), /** * Actualiza un sector existente * @param key - Clave del sector a actualizar * @param data - Datos a actualizar */ update: (key: string, data: UpdateSectorData) => api.put(`/v1/sectors/${key}`, data), /** * Elimina un sector * @param key - Clave del sector a eliminar */ delete: (key: string) => api.delete(`/v1/sectors/${key}`) };