using Data.SeaHavenIndustries.Enums; using SeaHaven.Services.Helpers; namespace SeaHaven.Services.DTOs { /// Payload for creating a board work order (SHOC create wizard). public class WorkOrderBoardCreateRequestDto { public string? WoNumber { get; set; } public WorkOrderType WorkOrderType { get; set; } public string? SiteCode { get; set; } public string? Description { get; set; } public string? Trade { get; set; } public int? LocationId { get; set; } public DateTime? DueDate { get; set; } public string? AssignTo { get; set; } public DateTime? ScheduledDate { get; set; } public DateOnly? TargetWeek { get; set; } public bool? ScheduleWeekOnly { get; set; } public DocStatus? DocStatus { get; set; } public int? VendorId { get; set; } public DateTime? ApptDate { get; set; } public string? ApptTime { get; set; } public int? PocContactId { get; set; } public string? PocNotes { get; set; } } /// Advanced search / filter query for the board. public class WorkOrderAdvancedSearchQueryDto { public int Page { get; set; } = 1; public int PageSize { get; set; } = 50; public string? Search { get; set; } public WorkOrderAdvancedSearchDatePreset? DatePreset { get; set; } public DateOnly? DateFrom { get; set; } public DateOnly? DateTo { get; set; } public List? Sites { get; set; } public List? Types { get; set; } public List? Dispatchers { get; set; } public List? Statuses { get; set; } public List? PmTypes { get; set; } public List? VendorIds { get; set; } public List? DocStatuses { get; set; } public bool MyWorkOrders { get; set; } public string? SortBy { get; set; } public string? SortDir { get; set; } } }