namespace JdeScoping.Domain.Models; /// /// Represents a manually requested data sync operation. /// public class ManualSyncRequest { /// /// Gets or sets the unique identifier. /// public int Id { get; set; } /// /// Gets or sets the name of the ETL pipeline to sync. /// public string PipelineName { get; set; } = string.Empty; /// /// Gets or sets the type of sync (mass, daily, hourly). /// public string SyncType { get; set; } = string.Empty; /// /// Gets or sets the UTC timestamp when the request was created. /// public DateTime RequestDT { get; set; } /// /// Gets or sets the username of the user who created the request. /// public string RequestedBy { get; set; } = string.Empty; /// /// Gets or sets the UTC timestamp when the sync completed, or null if pending. /// public DateTime? CompletedDT { get; set; } /// /// Gets or sets the UTC timestamp when the request was cancelled, or null if not cancelled. /// public DateTime? CancelDT { get; set; } /// /// Gets or sets the username of the user who cancelled the request, or null. /// public string? CancelledBy { get; set; } /// /// Gets or sets the row version for optimistic concurrency. /// public byte[] RowVersion { get; set; } = Array.Empty(); /// /// Gets the derived status based on CompletedDT and CancelDT. /// public string Status => CancelDT.HasValue ? "Cancelled" : CompletedDT.HasValue ? "Completed" : "Pending"; }