Update project and dist

This commit is contained in:
2026-08-29 08:39:57 -04:00
commit 1d2b8858d6
527 changed files with 27976 additions and 0 deletions
+98
View File
@@ -0,0 +1,98 @@
# Cotizador Walmart Connect
Frontend interno de GomezLee Marketing para cotizaciones Walmart Connect.
## Estado de esta versión
Esta versión ya está conectada a la arquitectura de producción definida para el proyecto:
- Supabase Auth + control de acceso `cotizador_wmc_access`.
- n8n `/webhook/cotizador-wmc-chat` para Gemini, tarifario, históricos y generación de artefactos.
- n8n `/webhook/cotizador-wmc-reportar` para reportes de usuario.
- Persistencia de conversaciones y mensajes en Supabase.
- Adjuntos privados en el bucket `cotizador-wmc-uploads`, con URLs firmadas temporales para n8n/Gemini.
- Analítica global mediante `glm_track_app_event` para alimentar el dashboard general de aplicaciones GLM.
- Módulo Tarifario visible únicamente cuando `can_use_tarifario=true`, con lectura y cambios auditados mediante los RPC seguros de Supabase.
- Google Sheets / Slides / imágenes se generan desde los workflows de n8n y el Apps Script ya configurado en backend.
## Tecnologías
- React 19 + TypeScript
- TanStack Router / Query
- Vite (SPA estática)
- Tailwind CSS
- Supabase JS
## Ruta de producción
```text
https://digitalcompass.agency/cotizador-wmc/
```
La aplicación se compila con base:
```text
/cotizador-wmc/
```
## Configuración frontend
El `.env` incluido contiene las variables públicas necesarias para compilar esta versión:
```env
VITE_SUPABASE_URL="https://dbit.digitalcompass.agency"
VITE_SUPABASE_ANON_KEY="..."
VITE_REPORT_WEBHOOK_URL="https://agenteit.digitalcompass.agency/webhook/cotizador-wmc-reportar"
VITE_CHAT_WEBHOOK_URL="https://agenteit.digitalcompass.agency/webhook/cotizador-wmc-chat"
```
La ANON KEY de Supabase es una clave pública de cliente. No debe agregarse `service_role` al frontend.
## Desarrollo / build
```bash
npm ci
npm run dev
npm run build
```
`npm run build` genera una carpeta **`dist/`** lista para el despliegue del frontend estático.
La ruta base de producción se mantiene en `/cotizador-wmc/`.
## Flujo de uso
1. El usuario inicia sesión con Google mediante Supabase Auth.
2. La app verifica dominio GLM + acceso activo en `cotizador_wmc_access`.
3. Al entrar se registra actividad para métricas globales de uso.
4. Cada chat se conserva en Supabase y además mantiene respaldo local del navegador.
5. Los adjuntos se guardan en Storage privado antes de llamar a n8n.
6. La app envía a n8n el JWT real de Supabase, usuario, conversación, mensaje, adjuntos y `appSessionId`.
7. n8n consulta contexto/tarifario/históricos, llama Gemini y devuelve la respuesta y, cuando aplique, el enlace del Google Sheet, Google Slides o imagen generado.
8. La respuesta y sus metadatos quedan guardados en el historial.
## Tarifario
El botón **Tarifario** solo aparece para usuarios con `can_use_tarifario=true`.
Desde el módulo se puede:
- buscar y filtrar por país;
- consultar tarifa vigente;
- crear una tarifa;
- editar una tarifa;
- eliminar/desactivar una tarifa.
Los cambios no escriben directamente sobre la tabla desde el navegador: utilizan `cotizador_wmc_process_my_agent_action`, que valida de nuevo el permiso y conserva auditoría.
## Analítica para dashboard GLM
La app registra eventos autenticados con `glm_track_app_event`, entre ellos:
- `app_open`;
- `message_sent`;
- `chat_deleted`;
- `tariff_opened`;
- `agent_error`;
- `logout`.
Los workflows registran adicionalmente las cotizaciones, propuestas, imágenes, mensualizaciones GLM, ejecuciones del agente y reportes, por lo que las vistas de dashboard de Supabase pueden calcular usuarios únicos, usuarios mensuales, promedio mensual, cotizaciones creadas y demás KPIs definidos.