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