namespace ViewEngine.Client.Models; /// /// Request to add a client programmatically /// public class AddClientRequest { /// /// Email address of the user to add as client /// public string Email { get; set; } = string.Empty; /// /// Friendly name for this client (e.g., "John's Feeder") /// public string? Alias { get; set; } /// /// Your custom identifier for this client (alternative to using clientId) /// public string? CustomUserId { get; set; } /// /// Max jobs per day for this client (0 = unlimited, default: 0) /// public int DailyMaximum { get; set; } } /// /// Request to update client settings /// public class UpdateClientRequest { /// /// Friendly name for this client /// public string? Alias { get; set; } /// /// Your custom identifier for this client /// public string? CustomUserId { get; set; } /// /// Max jobs per day for this client (0 = unlimited) /// public int? DailyMaximum { get; set; } } /// /// Information about a client /// public class ClientInfo { /// /// Client ID /// public Guid Id { get; set; } /// /// User ID of the client /// public Guid UserId { get; set; } /// /// Client's email address /// public string Email { get; set; } = string.Empty; /// /// Client's display name /// public string? DisplayName { get; set; } /// /// Friendly alias for the client /// public string? Alias { get; set; } /// /// Your custom user identifier /// public string? CustomUserId { get; set; } /// /// Client status: Active, Suspended, etc. /// public string Status { get; set; } = string.Empty; /// /// Maximum jobs per day /// public int DailyMaximum { get; set; } /// /// When the client was added /// public DateTime CreatedAt { get; set; } /// /// When the client was last active /// public DateTime? LastActiveAt { get; set; } /// /// Whether the client's feeder is currently online /// public bool FeederOnline { get; set; } /// /// Number of jobs processed today /// public int JobsProcessedToday { get; set; } } /// /// Statistics for a client /// public class ClientStats { /// /// Client ID /// public Guid ClientId { get; set; } /// /// Total jobs processed all time /// public int TotalJobsProcessed { get; set; } /// /// Jobs processed today /// public int JobsProcessedToday { get; set; } /// /// Jobs processed this month /// public int JobsProcessedThisMonth { get; set; } /// /// Average processing time in milliseconds /// public double AverageProcessingTimeMs { get; set; } /// /// Success rate (0-100) /// public double SuccessRate { get; set; } /// /// When the feeder was last online /// public DateTime? LastOnlineAt { get; set; } /// /// Current feeder status /// public bool IsOnline { get; set; } }