mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 07:13:12 +00:00
Harden contextual search on the weekly board and expose paginated cross-week GET /board/search with date presets, FE filter params, SQL indexes, and unit tests.
48 lines
2 KiB
C#
48 lines
2 KiB
C#
using Data.SeaHavenIndustries.Enums;
|
|
using SeaHaven.Services.Helpers;
|
|
|
|
namespace SeaHaven.Services.DTOs
|
|
{
|
|
/// <summary>Payload for creating a board work order (SHOC create wizard).</summary>
|
|
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; }
|
|
}
|
|
|
|
/// <summary>Advanced search / filter query for the board.</summary>
|
|
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<string>? Sites { get; set; }
|
|
public List<WorkOrderType>? Types { get; set; }
|
|
public List<string>? Dispatchers { get; set; }
|
|
public List<LifecycleStatus>? Statuses { get; set; }
|
|
public List<string>? PmTypes { get; set; }
|
|
public List<int>? VendorIds { get; set; }
|
|
public List<DocStatus>? DocStatuses { get; set; }
|
|
public bool MyWorkOrders { get; set; }
|
|
public string? SortBy { get; set; }
|
|
public string? SortDir { get; set; }
|
|
}
|
|
}
|