using System.ComponentModel.DataAnnotations; namespace LittleShop.DTOs; public class BotActivityDto { public Guid Id { get; set; } public Guid BotId { get; set; } public string BotName { get; set; } = string.Empty; public string SessionIdentifier { get; set; } = string.Empty; public string UserDisplayName { get; set; } = string.Empty; public string ActivityType { get; set; } = string.Empty; public string ActivityDescription { get; set; } = string.Empty; public Guid? ProductId { get; set; } public string ProductName { get; set; } = string.Empty; public Guid? OrderId { get; set; } public string CategoryName { get; set; } = string.Empty; public decimal? Value { get; set; } public int? Quantity { get; set; } public string Platform { get; set; } = "Telegram"; public string DeviceType { get; set; } = string.Empty; public string Location { get; set; } = string.Empty; public DateTime Timestamp { get; set; } public string Metadata { get; set; } = "{}"; } public class CreateBotActivityDto { [Required] public Guid BotId { get; set; } [Required] [StringLength(256)] public string SessionIdentifier { get; set; } = string.Empty; [StringLength(100)] public string UserDisplayName { get; set; } = string.Empty; [Required] [StringLength(50)] public string ActivityType { get; set; } = string.Empty; [Required] [StringLength(500)] public string ActivityDescription { get; set; } = string.Empty; public Guid? ProductId { get; set; } [StringLength(200)] public string ProductName { get; set; } = string.Empty; public Guid? OrderId { get; set; } [StringLength(100)] public string CategoryName { get; set; } = string.Empty; public decimal? Value { get; set; } public int? Quantity { get; set; } [StringLength(100)] public string Platform { get; set; } = "Telegram"; [StringLength(50)] public string DeviceType { get; set; } = string.Empty; [StringLength(100)] public string Location { get; set; } = string.Empty; public string Metadata { get; set; } = "{}"; } public class LiveActivitySummaryDto { public int ActiveUsers { get; set; } public int TotalActivitiesLast5Min { get; set; } public int ProductViewsLast5Min { get; set; } public int CartsActiveNow { get; set; } public decimal TotalValueInCartsNow { get; set; } public List ActiveUserNames { get; set; } = new(); public List RecentActivities { get; set; } = new(); }