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."
    }