diff --git a/ChatbotApi/Services/ChatService.cs b/ChatbotApi/Services/ChatService.cs index c371a96..ee73395 100644 --- a/ChatbotApi/Services/ChatService.cs +++ b/ChatbotApi/Services/ChatService.cs @@ -259,7 +259,7 @@ namespace ChatbotApi.Services catch (Exception ex) { _logger.LogError(ex, "Error en llamada unificada a Gemini."); - errorMessage = "Lo siento, el servicio está temporalmente no disponible. Por favor, intenta de nuevo."; + errorMessage = "Lo siento, el servicio está temporalmente no disponible. Por favor, intenta de nuevo en unos minutos."; } if (!string.IsNullOrEmpty(errorMessage)) @@ -424,7 +424,8 @@ namespace ChatbotApi.Services var specificKeywords = new[] { "economía", "economia", "inflación", "inflacion", "dólar", "dolar", "política", "politica", "elecciones", "gobierno", - "clima", "deporte", "fútbol", "futbol", "boca", "river" + "clima", "deporte", "fútbol", "futbol", "boca", "river", + "estudiantes", "gimnasia", "pincha", "lobo", "partido" }; // Si NO contiene ningún keyword específico, skip AI @@ -463,7 +464,7 @@ namespace ChatbotApi.Services // Confirmaciones/Aceptación (argentinismos incluidos) "ok", "perfecto", "genial", "bárbaro", "barbaro", "dale", "dale dale", "está bien", "esta bien", "de acuerdo", "si", "sí", "vale", "listo", - "joya", "buenísimo", "buenisimo", "excelente", + "joya", "buenísimo", "buenisimo", "excelente", "piola", // Agradecimientos "gracias", "muchas gracias", "mil gracias", "thank you", "thanks", diff --git a/chatbot-admin/src/components/LogsViewer.tsx b/chatbot-admin/src/components/LogsViewer.tsx index 8c0ee21..388e9d5 100644 --- a/chatbot-admin/src/components/LogsViewer.tsx +++ b/chatbot-admin/src/components/LogsViewer.tsx @@ -20,9 +20,18 @@ const LogsViewer: React.FC = ({ onAuthError }) => { const [logs, setLogs] = useState([]); const [error, setError] = useState(null); - // Filtros - const [startDate, setStartDate] = useState(''); - const [endDate, setEndDate] = useState(''); + // Obtener fecha de hoy en formato YYYY-MM-DD + const getTodayDate = () => { + const today = new Date(); + const year = today.getFullYear(); + const month = String(today.getMonth() + 1).padStart(2, '0'); + const day = String(today.getDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; + }; + + // Filtros con fecha de hoy por defecto + const [startDate, setStartDate] = useState(getTodayDate()); + const [endDate, setEndDate] = useState(getTodayDate()); const [search, setSearch] = useState(''); const [paginationModel, setPaginationModel] = useState({ @@ -33,8 +42,19 @@ const LogsViewer: React.FC = ({ onAuthError }) => { const fetchLogs = useCallback(async () => { try { const params = new URLSearchParams(); - if (startDate) params.append('startDate', startDate); - if (endDate) params.append('endDate', endDate); + + // Agregar fecha de inicio con hora 00:00:00 + if (startDate) { + const startDateTime = `${startDate}T00:00:00`; + params.append('startDate', startDateTime); + } + + // Agregar fecha de fin con hora 23:59:59 + if (endDate) { + const endDateTime = `${endDate}T23:59:59`; + params.append('endDate', endDateTime); + } + if (search) params.append('search', search); const response = await apiClient.get(`/api/admin/logs?${params.toString()}`); @@ -47,10 +67,12 @@ const LogsViewer: React.FC = ({ onAuthError }) => { } }, [onAuthError, startDate, endDate, search]); + useEffect(() => { + // Cargar logs automáticamente con los filtros por defecto (fecha de hoy) fetchLogs(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); // Carga inicial solamente, o cuando el usuario pulse "Filtrar" + }, [fetchLogs]); + const columns: GridColDef[] = [