Convenios y Clientes

Endpoints para gestionar convenios con empresas y el registro de clientes. Un convenio permite asociar descuentos a grupos de clientes.


GET/convenios

Listar convenios

Devuelve la lista completa de convenios registrados.

Response

[
  {
    "id": 1,
    "nombre": "Empresa ABC",
    "descuento": 15.0,
    "activo": true,
    "created_at": "2025-01-10T08:00:00Z"
  }
]

POST/convenios

Crear convenio

Crea un nuevo convenio.

  • Name
    nombre
    Type
    string
    Description

    Nombre de la empresa o convenio.

  • Name
    descuento
    Type
    number
    Description

    Porcentaje de descuento (0-100).

  • Name
    activo
    Type
    boolean
    Description

    Si el convenio está activo. Por defecto true.

Request body

{
  "nombre": "Empresa ABC",
  "descuento": 15.0,
  "activo": true
}

Response (201)

{
  "id": 1,
  "nombre": "Empresa ABC",
  "descuento": 15.0,
  "activo": true,
  "created_at": "2025-01-10T08:00:00Z"
}

GET/convenios/:id

Obtener convenio

Devuelve los detalles de un convenio específico por su ID.

Response

{
  "id": 1,
  "nombre": "Empresa ABC",
  "descuento": 15.0,
  "activo": true,
  "created_at": "2025-01-10T08:00:00Z"
}

PUT/convenios/:id

Actualizar convenio

Actualiza los datos de un convenio existente.

  • Name
    nombre
    Type
    string
    Description

    Nombre de la empresa o convenio.

  • Name
    descuento
    Type
    number
    Description

    Porcentaje de descuento (0-100).

  • Name
    activo
    Type
    boolean
    Description

    Si el convenio está activo.

Request body

{
  "nombre": "Empresa ABC Actualizada",
  "descuento": 20.0
}

Response

{
  "id": 1,
  "nombre": "Empresa ABC Actualizada",
  "descuento": 20.0,
  "activo": true,
  "created_at": "2025-01-10T08:00:00Z"
}

DELETE/convenios/:id

Eliminar convenio

Elimina un convenio por su ID. Los clientes asociados a este convenio dejarán de tener convenio asignado.

Request

curl -X DELETE \
  -H "Authorization: Bearer TOKEN" \
  https://api.mundodelentes.com/convenios/1

Response (204)

No content

GET/clientes

Listar clientes

Devuelve la lista de clientes. Soporta filtros por query parameters.

  • Name
    convenio_id
    Type
    number
    Description

    Filtra clientes por ID de convenio.

  • Name
    search
    Type
    string
    Description

    Busca por nombre, email o teléfono.

  • Name
    active
    Type
    boolean
    Description

    Filtra por clientes activos/inactivos.

Request con filtros

curl -H "Authorization: Bearer TOKEN" \
  "https://api.mundodelentes.com/clientes?convenio_id=1&active=true"

Response

[
  {
    "id": 1,
    "nombre": "Juan Pérez",
    "email": "juan@email.com",
    "telefono": "555-0101",
    "convenio_id": 1,
    "activo": true,
    "created_at": "2025-02-01T10:00:00Z"
  }
]

POST/clientes

Crear cliente

Registra un nuevo cliente.

  • Name
    nombre
    Type
    string
    Description

    Nombre completo del cliente.

  • Name
    email
    Type
    string
    Description

    Correo electrónico del cliente.

  • Name
    telefono
    Type
    string
    Description

    Número de teléfono del cliente.

  • Name
    convenio_id
    Type
    number
    Description

    ID del convenio asociado (opcional).

Request body

{
  "nombre": "Juan Pérez",
  "email": "juan@email.com",
  "telefono": "555-0101",
  "convenio_id": 1
}

Response (201)

{
  "id": 1,
  "nombre": "Juan Pérez",
  "email": "juan@email.com",
  "telefono": "555-0101",
  "convenio_id": 1,
  "activo": true,
  "created_at": "2025-02-01T10:00:00Z"
}

GET/clientes/:id

Obtener cliente

Devuelve los detalles de un cliente específico, incluyendo la información de su convenio si tiene uno.

Response

{
  "id": 1,
  "nombre": "Juan Pérez",
  "email": "juan@email.com",
  "telefono": "555-0101",
  "convenio_id": 1,
  "convenio": {
    "id": 1,
    "nombre": "Empresa ABC",
    "descuento": 15.0
  },
  "activo": true,
  "created_at": "2025-02-01T10:00:00Z"
}

PUT/clientes/:id

Actualizar cliente

Actualiza los datos de un cliente existente.

  • Name
    nombre
    Type
    string
    Description

    Nombre completo del cliente.

  • Name
    email
    Type
    string
    Description

    Correo electrónico del cliente.

  • Name
    telefono
    Type
    string
    Description

    Número de teléfono del cliente.

  • Name
    convenio_id
    Type
    number or null
    Description

    ID del convenio asociado. Enviar null para desasociar.

Request body

{
  "nombre": "Juan Pérez García",
  "telefono": "555-0202"
}

Response

{
  "id": 1,
  "nombre": "Juan Pérez García",
  "email": "juan@email.com",
  "telefono": "555-0202",
  "convenio_id": 1,
  "activo": true,
  "created_at": "2025-02-01T10:00:00Z"
}

DELETE/clientes/:id

Eliminar cliente

Elimina un cliente por su ID. Solo se permite si el cliente no tiene ventas activas.

Request

curl -X DELETE \
  -H "Authorization: Bearer TOKEN" \
  https://api.mundodelentes.com/clientes/1

Response (204)

No content

Was this page helpful?