shoc-backend/Data.SeaHavenIndustries/Models/DispatchUpliftRequest.cs
2026-08-11 08:58:19 -03:00

54 lines
1.7 KiB
C#

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Data.SeaHavenIndustries
{
public class DispatchUpliftRequest : FullAuditEntity
{
public int DispatchId { get; set; }
[ForeignKey(nameof(DispatchId))]
public virtual Dispatch? Dispatch { get; set; }
[Column(TypeName = "decimal(18,2)")]
public decimal? CurrentNTE { get; set; }
[Column(TypeName = "decimal(18,2)")]
public decimal RequestedNTE { get; set; }
public string? VendorReason { get; set; }
[Required]
[MaxLength(20)]
public string Status { get; set; } = "Pending";
public int RequiredTier { get; set; }
public string? RequestedByVendorName { get; set; }
public DateTime? DecidedAt { get; set; }
public string? DecidedByUserId { get; set; }
public string? DecisionNote { get; set; }
// SH-101: supporting evidence, idempotency, lifecycle, concurrency.
public int? EvidenceDocumentId { get; set; }
[ForeignKey(nameof(EvidenceDocumentId))]
public virtual VendorCompletionDocument? EvidenceDocument { get; set; }
[MaxLength(100)]
public string? RequestKey { get; set; }
public DateTime? ExpiresAt { get; set; }
public DateTime? InitialNotificationSentAt { get; set; }
public DateTime? EscalatedAt { get; set; }
[Required]
[MaxLength(20)]
public string NotificationStatus { get; set; } = "Pending";
[MaxLength(500)]
public string? NotificationError { get; set; }
[Timestamp]
public byte[]? RowVersion { get; set; }
}
}