Files
jdescopingtool/NEW/src/JdeScoping.Domain/Models/ManualSyncRequest.cs
T
Joseph Doherty 29ac56006d feat: implement ETL pipeline redesign and ConfigManager improvements
- Add pipeline registry with JSON-based configuration and hot-reload support
- Implement manual sync request feature with API, client UI, and database
- Improve ConfigManager: connection string dropdown in pipeline editor,
  step delete/reorder functionality, and fix JSON parsing for ConnectionStrings
2026-01-22 17:48:33 -05:00

60 lines
1.9 KiB
C#

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