mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-10-02 12:03:21 +00:00
* fix(migrations): make Phase6 completion slide-over migration idempotent Use IF EXISTS / IF COL_LENGTH guards and explicit EF migration metadata so partial environments can apply Phase 6 safely. * feat(locations): add sites options endpoint and vendor contactName Expose GET /api/locations/sites for the WO create wizard and include vendor contactName on dropdown responses. * feat(work-orders): add structured service notes POC and vendor fields Persist primary/extra services, service notes, free-text POC, and tech/vendor notes on create/patch/board/detail instead of embedding them in description. * fix(work-orders): make stacked tip build for CI quality gates * fix(work-orders): align stacked services with CI build * fix(work-orders): keep FlagColor out of structured-notes slice Remove FlagColor model/API/tests from this PR so schema and EF model stay aligned with the structured-fields migration. FlagColor remains in the follow-on PR that adds its migration. --------- Co-authored-by: Arthur Bassi <arthur.winiarski.ranger@outlook.com>
46 lines
1.8 KiB
C#
46 lines
1.8 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace Data.SeaHavenIndustries
|
|
{
|
|
public class Dispatch : FullAuditEntity
|
|
{
|
|
public int? WorkOrderId { get; set; }
|
|
[ForeignKey(nameof(WorkOrderId))]
|
|
public virtual WorkOrder? WorkOrder { get; set; }
|
|
|
|
public int VendorId { get; set; }
|
|
[ForeignKey(nameof(VendorId))]
|
|
public virtual Vendor? Vendor { get; set; }
|
|
|
|
public string? DispatchNumber { get; set; }
|
|
public string? PONumber { get; set; }
|
|
public decimal? NTEAmount { get; set; }
|
|
public string? Description { get; set; }
|
|
public string? Status { get; set; }
|
|
public DateTime? ScheduledDate { get; set; }
|
|
public DateTime? CompletedDate { get; set; }
|
|
public DateTime? DispatchedAt { get; set; }
|
|
public DateTime? AcknowledgedAt { get; set; }
|
|
public bool EmailSent { get; set; }
|
|
public string? ReplyToAddress { get; set; }
|
|
public string? AcceptToken { get; set; }
|
|
public string? VerifiedBy { get; set; }
|
|
public DateTime? VerifiedAt { get; set; }
|
|
|
|
/// <summary>Tech/crew phone for this dispatch (overrides Vendor.Phone on board).</summary>
|
|
[MaxLength(50)]
|
|
public string? TechPhone { get; set; }
|
|
/// <summary>Instructions for the vendor for this appointment/dispatch.</summary>
|
|
[MaxLength(2000)]
|
|
public string? VendorNotes { get; set; }
|
|
|
|
[Timestamp]
|
|
public byte[]? RowVersion { get; set; }
|
|
|
|
public ICollection<Comments>? Comments { get; set; }
|
|
public ICollection<DispatchWorkOrder>? DispatchWorkOrders { get; set; }
|
|
public ICollection<DispatchChecklistItem>? ChecklistItems { get; set; }
|
|
public ICollection<DispatchSignoff>? Signoffs { get; set; }
|
|
}
|
|
}
|