shoc-backend/Data.SeaHavenIndustries/Models/WorkerOrder.cs
Adam Moussa d07e24e419 Add InternalWONumber field with auto-generation
- Add InternalWONumber to WorkOrder model
- Auto-generate 8-digit sequential numbers starting at 10000001
- Generate on new work order creation and DynamoDB sync
- Include in GetWorkorderById and GetWorkOrderList responses
- Add BackfillInternalWONumbers endpoint for existing records
- Add migration for new column
2026-04-16 18:42:58 -04:00

55 lines
2.4 KiB
C#

using System;
using System.ComponentModel.DataAnnotations.Schema;
using static System.Runtime.InteropServices.JavaScript.JSType;
namespace Data.SeaHavenIndustries
{
public class WorkOrder : FullAuditEntity
{
public string? InternalWONumber { get; set; }
public string? ExternalWorkOrderId { get; set; }
public string? WorkerOrderNumber { get; set; }
public string? WorkerOrderTitle { get; set; }
public string? Description { get; set; }
public string? Customer { get; set; }
public string? SiteCode { get; set; }
public string? Building { get; set; }
public string? Severity { get; set; }
public DateTime? DateReported { get; set; }
public DateTime? ScheduledStart { get; set; }
public string? SourceEmailS3Key { get; set; }
public bool? istemplate { get; set; }
public string? PO { get; set; }
public string? TT { get; set; }
//public int? ContactId { get; set; }
//[ForeignKey(nameof(ContactId))]
//public virtual Contacts? POC { get; set; }
public string? AssignTo { get; set; }
[ForeignKey(nameof(AssignTo))]
public virtual ApplicationUser? AssignToUser { get; set; }
public DateTime? DueDate { get; set; }
public string? Priority { get; set; }
public string? Status { get; set; }
public int? LocationId { get; set; }
[ForeignKey(nameof(LocationId))]
public virtual Locations? Locations { get; set; }
//public int? CategoryId { get; set; }
//[ForeignKey(nameof(CategoryId))]
//public virtual Category? Category { get; set; }
public string? Attachments { get; set; }
public string? BeforPhotoIssue { get; set; }
public string? BeforPhotoAttachment { get; set; }
public string? AfterPhotoIssue { get; set; }
public string? AfterPhotoAttachment { get; set; }
public string? SignOffName { get; set; }
public string? SignOffAttachment { get; set; }
public string? SignOffSignature { get; set; }
public ICollection<Comments>? Comments { get; set; }
public ICollection<Quotes>? Quotes { get; set; }
public ICollection<WorkOrderContacts>? WorkOrderContacts { get; set; }
public ICollection<WorkOrderAttachments>? workOrderAttachments { get; set; }
public ICollection<WorkOrderCategories>? WorkOrderCategories { get; set; }
}
}