using Microsoft.AspNetCore.Http; using SeaHaven.DataServices.Models; namespace SeaHaven.Services.DTOs { public class CreateWorkOrderWithDetailsInput { public string WorkerOrderTitle { get; set; } = ""; public string? Description { get; set; } public string Status { get; set; } = "Open"; public string? Priority { get; set; } public int? LocationId { get; set; } public string? AssignTo { get; set; } public DateTime? DueDate { get; set; } public List? ContactIds { get; set; } public List? CategoryIds { get; set; } public List? Attachments { get; set; } public IFormFile? BeforPhotoAttachment { get; set; } public IFormFile? AfterPhotoAttachment { get; set; } public IFormFile? SignOffAttachment { get; set; } /// Optional CRM customer name for org-wide AccountId resolution. public string? Customer { get; set; } } public class UpdateWorkOrderWithDetailsInput { public int Id { get; set; } public string? WorkerOrderTitle { get; set; } public string? Description { get; set; } public string? Status { get; set; } public string? Priority { get; set; } public int? LocationId { get; set; } public string? AssignTo { get; set; } public DateTime? DueDate { get; set; } public DateTime? CompletedDate { get; set; } public List? ContactIds { get; set; } public List? CategoryIds { get; set; } public List? Attachments { get; set; } public IFormFile? BeforPhotoAttachment { get; set; } public IFormFile? AfterPhotoAttachment { get; set; } public IFormFile? SignOffAttachment { get; set; } } public class AddCommentInput { public int WorkorderId { get; set; } public string? Text { get; set; } public string? CommentType { get; set; } public IFormFile? Document { get; set; } } public class CommentResult { public int Id { get; set; } public DateTime? CreatedDate { get; set; } public string? Commenttext { get; set; } public string? CommentType { get; set; } public string? UserName { get; set; } public string? Documents { get; set; } } public class ChangeStatusResult { public int Id { get; set; } public string? InternalWONumber { get; set; } public string? WorkerOrderNumber { get; set; } public string? WorkerOrderTitle { get; set; } public string? Status { get; set; } public string? Priority { get; set; } } public class ChangeAssignmentResult { public string Message { get; set; } = ""; public string AssignedTo { get; set; } = ""; } public class WorkorderDDItem { public int Id { get; set; } public string? InternalWONumber { get; set; } public string? WorkerOrderNumber { get; set; } public string? WorkerOrderTitle { get; set; } public string? Status { get; set; } public string? Priority { get; set; } public bool istemplate { get; set; } } public class WorkorderFilterVM { public int? Id { get; set; } public int? LocationId { get; set; } public string? WorkerOrderNumber { get; set; } public string? BillingAddress { get; set; } = "Amazon.com Services LLC 410 Terry Ave,North Seattle, Washington, 98109"; public string? WorkerOrderTitle { get; set; } public string? LocationName { get; set; } public string? AssignToUserName { get; set; } public string? Priority { get; set; } public string? Status { get; set; } public DateTime? DueDate { get; set; } public string FormattedDueDate => DueDate.HasValue ? DueDate.Value.ToString("MM/dd/yyyy") : ""; public string? Dispatcher { get; set; } public string? Scheduler { get; set; } public string? PO { get; set; } public string? TT { get; set; } } public class FilteredWorkOrderPageDTO { public IReadOnlyList Data { get; set; } = Array.Empty(); public int PageNumber { get; set; } public int PageSize { get; set; } public int TotalCount { get; set; } public int TotalPages { get; set; } } }