mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 23:33:10 +00:00
54 lines
1.7 KiB
C#
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; }
|
|
}
|
|
}
|