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; }
}