feat(containers): implement CRUD operations and UI for container management

This commit is contained in:
2025-11-02 14:47:44 -06:00
parent 206e81ef05
commit 4099d73765
12 changed files with 999 additions and 3 deletions

View File

@@ -0,0 +1,69 @@
/**
* API Client para Containers
* Gestiona las operaciones CRUD para los contenedores
*/
import { api } from '$lib/api';
export interface Container {
key: string;
description: string;
}
export interface ContainerListResponse {
items: Container[];
total: number;
page: number;
page_size: number;
}
export interface CreateContainerData {
key: string;
description: string;
}
export interface UpdateContainerData {
key?: string;
description?: string;
}
/**
* API para Containers
*/
export const containersApi = {
/**
* Lista todos los containers 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<ContainerListResponse>(
`/v1/containers?page=${page}&page_size=${pageSize}`
),
/**
* Obtiene un container por ID
* @param key - ID del container
*/
get: (key: number) => api.get<Container>(`/v1/containers/${key}`),
/**
* Crea un nuevo container
* @param data - Datos del container a crear
*/
create: (data: CreateContainerData) =>
api.post<Container>('/v1/containers', data),
/**
* Actualiza un container existente
* @param key - ID del container a actualizar
* @param data - Datos a actualizar
*/
update: (key: number, data: UpdateContainerData) =>
api.put<Container>(`/v1/containers/${key}`, data),
/**
* Elimina un container
* @param key - ID del container a eliminar
*/
delete: (key: number) => api.delete(`/v1/containers/${key}`)
};