BranchCategory


Categoría para agrupar comercios en un marketplace. Se asignan comercios (o grupos de comercios) a la categoría manualmente y se usan para navegar el catálogo de comercios.

Notas

  • Admite anidamiento: branch_category_id apunta a la categoría padre; children son las subcategorías, ordenadas por in_order.
  • La asignación de comercios se hace a través de la tabla pivot_branch_categories (relaciones branches y branchGroups), con su propio in_order.
  • Al crear se asignan imágenes por defecto; image_url / image_landscape_url se resuelven a URLs absolutas y vuelven a la imagen por defecto si se dejan vacías.

Estructura de Datos

Atributo Tipo Descripción
id int
name string Nombre de la categoría.
image_url string\|null URL de la imagen (logo) de la categoría; imagen por defecto si no se define.
image_landscape_url string\|null URL de la imagen apaisada de la categoría; imagen por defecto si no se define.
created_at datetime\|null Fecha de creación.
updated_at datetime\|null Fecha de última modificación.
company_id int Compañía dueña de la categoría (oculto en la respuesta).
branch_category_id int\|null Categoría padre; null si es de primer nivel.
in_order int Posición de la categoría en su nivel.
color string\|null Color de la categoría (en minúsculas); puede ser null.
date_beg datetime -
date_end datetime -
day_time_blocks json -
allLogs ApiLog> Registros de auditoría de la API, incluidos los internos.
branchGroups BranchGroup> Grupos de comercios asignados a la categoría.
branches Branch> Comercios asignados a la categoría.
children Collection<int, BranchCategory> Subcategorías, ordenadas por in_order.
company Company Compañía dueña de la categoría.
directPivots PivotBranchCategory> Asignaciones directas de comercios/grupos a esta categoría (oculto en la respuesta).
logs ApiLog> Registros de auditoría de la API visibles.
parent BranchCategory\|null Categoría padre.
parentPivots PivotBranchCategory> Asignaciones heredadas de las categorías padre (oculto en la respuesta).
promotedBanners PromotedBanner> Banners promocionales enlazados a la categoría, ordenados por in_order.
resources UploadedResource> Archivos subidos asociados a la categoría.
{
    "id": 1,
    "name": "Mercado",
    "image_url": "http://127.0.0.1:8000/storage/companies/69/branch/branch_category_image_1_1738876875.png",
    "image_landscape_url": "http://127.0.0.1:8000/storage/static/default/product_category_logo.png",
    "created_at": "2020-05-03 18:55:46",
    "updated_at": "2025-02-06 21:21:15",
    "branch_category_id": null,
    "in_order": 2,
    "color": "/docs/3/branch_category#e7f6f4",
    "date_beg": null,
    "date_end": null,
    "day_time_blocks": null
}

Endpoints

Insertar BranchCategory

Crear una categoría de comercios

Crea una BranchCategory (name, color, in_order, branch_category_id para anidar).

Método URI Cabeceras
POST /companies/{companyId}/branch-categories Authorization
{
    "name": "required|string|max:64",
    "color": "nullable|string|regex:/^#[0-9a-fA-F]{6}$/",
    "branch_category_id": "integer",
    "in_order": "integer|min:1"
}

Listar BranchCategory

{info} Soporta: Paginación Filters Carga dinámica

Listar categorías de comercios

Devuelve las BranchCategory de la compañía, paginadas.

Método URI Cabeceras
GET /companies/{companyId}/branch-categories N/A

Listar BranchCategory de Branch

{info} Soporta: Paginación Filters

Listar las categorías de un comercio

Devuelve las BranchCategory a las que está asignado el comercio indicado.

Método URI Cabeceras
GET /companies/{companyId}/branches/{branchId}/branch-categories N/A

Listar BranchCategory de BranchGroup

{info} Soporta: Paginación Filters Carga dinámica

Listar las categorías de un grupo de comercios

Devuelve las BranchCategory a las que está asignado el grupo indicado.

Método URI Cabeceras
GET /companies/{companyId}/branch-groups/{branchGroupId}/branch-categories N/A

Mostrar BranchCategory

{info} Soporta: Carga dinámica

Ver una categoría de comercios

Devuelve la BranchCategory indicada.

Método URI Cabeceras
GET /companies/{companyId}/branch-categories/{branchCategoryId} N/A

Actualizar BranchCategory

Actualizar una categoría de comercios

Modifica la BranchCategory indicada.

Método URI Cabeceras
PATCH /companies/{companyId}/branch-categories/{branchCategoryId} Authorization
{
    "name": "string|max:64",
    "color": "nullable|string|regex:/^#[0-9a-fA-F]{6}$/",
    "in_order": "integer|min:1"
}

Actualizar la asignación de un grupo a una categoría

Modifica los datos del enlace (in_order) entre el BranchGroup y la BranchCategory.

Método URI Cabeceras
PATCH /companies/{companyId}/branch-categories/{branchCategoryId}/branch-groups/{branchGroupId} Authorization
{
    "in_order": "integer|min:1"
}

Vincular BranchCategory

Asignar un grupo de comercios a una categoría

Enlaza el BranchGroup a la BranchCategory, con su in_order en la categoría.

Método URI Cabeceras
PUT /companies/{companyId}/branch-categories/{branchCategoryId}/branch-groups/{branchGroupId} Authorization
{
    "in_order": "integer|min:1"
}

Desvincular BranchCategory

Quitar un grupo de comercios de una categoría

Elimina el enlace entre el BranchGroup y la BranchCategory.

Método URI Cabeceras
DELETE /companies/{companyId}/branch-categories/{branchCategoryId}/branch-groups/{branchGroupId} Authorization

Eliminar BranchCategory

Eliminar una categoría de comercios

Borra la BranchCategory indicada.

Método URI Cabeceras
DELETE /companies/{companyId}/branch-categories/{branchCategoryId} Authorization

Acciones de BranchCategory

Subir la imagen de una categoría de comercios

Guarda el archivo como image_url (logo) de la BranchCategory.

Método URI Cabeceras
POST /companies/{companyId}/branch-categories/{branchCategoryId}/upload-image Authorization
{
    "image": "required|image|mimes:jpeg,png,bmp|max:8192|dimensions:min_width=600,ratio=1/1"
}

Subir la imagen apaisada de una categoría de comercios

Guarda el archivo como image_landscape_url de la BranchCategory.

Método URI Cabeceras
POST /companies/{companyId}/branch-categories/{branchCategoryId}/upload-image-landscape Authorization
{
    "image": "required|image|mimes:jpeg,png,bmp|max:8192|dimensions:min_width=600,min_height=600"
}

Asignar un comercio a una categoría (compatibilidad)

Variante por branchId del endpoint de asignación; equivale a asignar el grupo del comercio.

Método URI Cabeceras
PUT /companies/{companyId}/branch-categories/{branchCategoryId}/branches/{branchId} Authorization

Quitar un comercio de una categoría (compatibilidad)

Variante por branchId del endpoint de desasignación.

Método URI Cabeceras
DELETE /companies/{companyId}/branch-categories/{branchCategoryId}/branches/{branchId} Authorization

Relaciones