using System; using System.Collections.Generic; using System.Threading.Tasks; using LittleShop.DTOs; namespace LittleShop.Services; public interface IBotMetricsService { // Metrics Task RecordMetricAsync(Guid botId, CreateBotMetricDto dto); Task RecordMetricsBatchAsync(Guid botId, BotMetricsBatchDto dto); Task> GetBotMetricsAsync(Guid botId, DateTime? startDate = null, DateTime? endDate = null); Task GetMetricsSummaryAsync(Guid botId, DateTime? startDate = null, DateTime? endDate = null); // Sessions Task StartSessionAsync(Guid botId, CreateBotSessionDto dto); Task UpdateSessionAsync(Guid sessionId, UpdateBotSessionDto dto); Task GetSessionAsync(Guid sessionId); Task> GetBotSessionsAsync(Guid botId, bool activeOnly = false); Task GetSessionSummaryAsync(Guid botId, DateTime? startDate = null, DateTime? endDate = null); Task EndSessionAsync(Guid sessionId); Task CleanupInactiveSessionsAsync(int inactiveMinutes = 30); }