Stock - bootcamp-uchile-2026/grupo-4-backend GitHub Wiki
Stock
Servicio encargado de gestionar el stock disponible de los productos del ecommerce.
El servicio permite consultar, crear, actualizar y eliminar el registro de stock asociado a un producto.
Endpoints
- GET /stock/{productoId} - Obtener stock de un producto
- POST /stock - Crear registro de stock
- PATCH /stock/{productoId} - Actualizar stock de un producto
- DELETE /stock/{productoId} - Eliminar registro de stock
Modelo
Stock
Representa el stock disponible de un producto.
| Campo | Tipo | Descripción |
|---|---|---|
id |
number |
Identificador único del registro de stock |
productoId |
number |
Identificador del producto asociado |
cantidad |
number |
Cantidad disponible del producto |
stockMinimo |
number |
Cantidad mínima de stock antes de considerarlo bajo |
DTOs
CreateStockDto
DTO utilizado para crear un nuevo registro de stock.
Campos
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
productoId |
number |
Sí | ID del producto asociado al stock |
cantidad |
number |
Sí | Cantidad disponible del producto |
stockMinimo |
number |
Sí | Cantidad mínima de stock antes de considerarlo bajo |
Ejemplo de Request Body
{
"productoId": 1,
"cantidad": 50,
"stockMinimo": 10
}
UpdateStockDto
DTO utilizado para actualizar parcialmente el stock de un producto.
Hereda todos los campos de CreateStockDto, pero todos son opcionales.
Esto permite modificar solamente los campos necesarios.
Ejemplo de Request Body
{
"cantidad": 25
}
StockResponseDto
DTO utilizado para representar la respuesta de los endpoints de Stock.
{
"id": 1,
"productoId": 1,
"cantidad": 50,
"stockMinimo": 10
}
Endpoints detallados
GET /stock/{productoId}
Obtiene la información de stock asociada a un producto.
Path Parameters
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
productoId |
number |
Sí | Identificador único del producto |
Ejemplo de solicitud
GET /stock/1
Response — 200 OK
{
"id": 1,
"productoId": 1,
"cantidad": 50,
"stockMinimo": 10
}
Response — 400 Bad Request
El ID del producto proporcionado no es válido.
{
"statusCode": 400,
"message": "El ID del producto no es válido."
}
Response — 404 Not Found
No existe stock asociado al producto.
{
"statusCode": 404,
"message": "No existe stock asociado al producto."
}
POST /stock
Crea un nuevo registro de stock asociado a un producto.
Request Body
Utiliza CreateStockDto.
{
"productoId": 1,
"cantidad": 50,
"stockMinimo": 10
}
Response — 201 Created
{
"id": 1,
"productoId": 1,
"cantidad": 50,
"stockMinimo": 10
}
Response — 400 Bad Request
Los datos enviados no son válidos.
{
"statusCode": 400,
"message": "Los datos del stock no son válidos."
}
Response — 404 Not Found
El producto asociado no existe.
{
"statusCode": 404,
"message": "El producto no existe."
}
Response — 409 Conflict
El producto ya tiene un registro de stock.
{
"statusCode": 409,
"message": "El producto ya tiene un registro de stock."
}
PATCH /stock/{productoId}
Actualiza parcialmente la información de stock de un producto existente.
Path Parameters
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
productoId |
number |
Sí | Identificador único del producto |
Request Body
Utiliza UpdateStockDto. Todos los campos son opcionales.
{
"cantidad": 25,
"stockMinimo": 5
}
También es posible actualizar solamente un campo.
{
"cantidad": 25
}
Response — 200 OK
{
"id": 1,
"productoId": 1,
"cantidad": 25,
"stockMinimo": 5
}
Response — 400 Bad Request
El ID o los datos enviados no son válidos.
{
"statusCode": 400,
"message": "El ID o los datos del stock no son válidos."
}
Response — 404 Not Found
No existe stock asociado al producto.
{
"statusCode": 404,
"message": "No existe stock asociado al producto."
}
DELETE /stock/{productoId}
Elimina el registro de stock asociado a un producto.
Path Parameters
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
productoId |
number |
Sí | Identificador único del producto |
Ejemplo de solicitud
DELETE /stock/1
Response — 204 No Content
El registro de stock fue eliminado correctamente.
No se retorna un cuerpo en la respuesta.
Response — 400 Bad Request
El ID del producto proporcionado no es válido.
{
"statusCode": 400,
"message": "El ID del producto no es válido."
}
Response — 404 Not Found
No existe stock asociado al producto.
{
"statusCode": 404,
"message": "No existe stock asociado al producto."
}