Feat: Implementar backend completo del Informe de Comercios
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 56s

- Crear 8 queries en Metabase para análisis de comercios:
  * Lista de comercios con datos de cliente (ID: 62)
  * Totales monetarios y distribución de pagos (ID: 63)
  * Totales de peso por tipo de café (ID: 64)
  * Top 10 comercios por inversión (ID: 65)
  * Serie temporal con acumulados (ID: 66)
  * Opciones de filtros disponibles (ID: 67)
  * Contadores para estadísticas (ID: 68)
  * Detalle de ingresos por comercio (ID: 69)

- Crear endpoint POST /api/metabase/informe-comercios
  * Ejecuta 8 queries en paralelo
  * Soporta filtros: fechas, clientes, tipos, comercio_ids, granularidad
  * Manejo robusto de errores por query individual
  * Transformación de resultados a objetos JavaScript

- Actualizar configuración de queries en metabase-queries.ts
  * Agregar sección informe_comercios con 8 queries
  * Agregar type helper InformeComerciosQueryKey

- Documentar progreso completo en INFORME_COMERCIOS_PROGRESO.md
  * Backend 100% completado
  * Frontend pendiente (componentes Vue y página principal)
  * Guía detallada de queries y estructura de datos
  * Próximos pasos y opciones de implementación

Progreso: 70% (Backend completo, Frontend pendiente)
This commit is contained in:
2025-11-04 16:47:46 -06:00
parent d4c289c6bd
commit 490835d729
3 changed files with 972 additions and 0 deletions

View File

@@ -43,6 +43,20 @@ export const METABASE_QUERIES = {
totales_por_cosecha: 'comparativa_totales_por_cosecha',
datos_acumulados_por_dia: 'comparativa_datos_acumulados_por_dia',
metadata_cosechas: 'comparativa_metadata_cosechas'
},
/**
* Queries para Informe de Comercios
*/
informe_comercios: {
lista_comercios: 'Informe Comercios - Lista de Comercios',
totales_monetarios: 'Informe Comercios - Totales Monetarios',
totales_peso: 'Informe Comercios - Totales de Peso',
top_comercios: 'Informe Comercios - Top 10 Comercios',
serie_temporal: 'Informe Comercios - Serie Temporal Acumulada',
opciones_filtros: 'Informe Comercios - Opciones de Filtros',
contadores: 'Informe Comercios - Contadores de Filtros',
detalle_ingresos: 'Informe Comercios - Detalle de Ingresos por Comercio'
}
} as const
@@ -53,3 +67,4 @@ export type MetabaseQueryCategory = keyof typeof METABASE_QUERIES
export type PanoramaQueryKey = keyof typeof METABASE_QUERIES.panorama
export type InformeQueryKey = keyof typeof METABASE_QUERIES.informe
export type ComparativaQueryKey = keyof typeof METABASE_QUERIES.comparativa
export type InformeComerciosQueryKey = keyof typeof METABASE_QUERIES.informe_comercios