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)
71 lines
2.7 KiB
TypeScript
71 lines
2.7 KiB
TypeScript
/**
|
|
* Metabase Query Names Configuration
|
|
*
|
|
* Centraliza los nombres de las queries de Metabase para facilitar mantenimiento.
|
|
* Los nombres deben coincidir EXACTAMENTE con los nombres en Metabase.
|
|
*/
|
|
|
|
export const METABASE_QUERIES = {
|
|
/**
|
|
* Queries para Panorama Facturador
|
|
*/
|
|
panorama: {
|
|
totales_financieros_principales: 'panorama_totales_financieros_principales',
|
|
totales_ingreso_compra: 'panorama_totales_ingreso_compra',
|
|
totales_monetarios: 'panorama_totales_monetarios',
|
|
totales_verde: 'panorama_totales_verde',
|
|
secos_vendidos: 'panorama_secos_vendidos',
|
|
rechazos_subproductos: 'panorama_rechazos_subproductos',
|
|
serie_temporal_diaria: 'panorama_serie_temporal_diaria',
|
|
top_clientes: 'panorama_top_clientes',
|
|
conteo_registros: 'panorama_conteo_registros'
|
|
},
|
|
|
|
/**
|
|
* Queries para Informe de Ingresos
|
|
*/
|
|
informe: {
|
|
totales_ingreso_compra: 'Informe Ingresos - Totales Ingreso y Compra',
|
|
totales_monetarios: 'Informe Ingresos - Totales Monetarios',
|
|
totales_verde: 'Informe Ingresos - Totales Verde',
|
|
lista_ingresos: 'Informe Ingresos - Lista de Ingresos',
|
|
lista_clientes: 'Informe Ingresos - Lista de Clientes con Totales',
|
|
serie_temporal: 'Informe Ingresos - Serie Temporal Acumulada',
|
|
opciones_filtros: 'Informe Ingresos - Opciones de Filtros',
|
|
contadores: 'Informe Ingresos - Contadores de Filtros'
|
|
},
|
|
|
|
/**
|
|
* Queries para Comparativa de Cosechas
|
|
*/
|
|
comparativa: {
|
|
datos_diarios_completos: 'comparativa_datos_diarios_completos',
|
|
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
|
|
|
|
/**
|
|
* Type helper para acceder a las queries de forma type-safe
|
|
*/
|
|
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
|