shoc-backend/SeaHaven.DataServices/Models/VendorOperationsReadModels.cs
Alexandre Brandizzi da0b29f769 feat(notifications): serve the Notification Center feed grouped by reason
Adds GET /api/notifications, a per-user read model derived from live
work-order state: Unassigned (grouped, High), No Vendor and Aveta Missing
(per work order, Medium) and Vendor Conflict, account-scoped from claims
and ordered by section severity with a fixed reason tie-break.
2026-09-18 12:40:37 -03:00

44 lines
1.4 KiB
C#

namespace SeaHaven.DataServices.Models;
public sealed class ScheduledDispatchReadModel
{
public int Id { get; set; }
public int VendorId { get; set; }
public string? VendorName { get; set; }
public int WorkOrderId { get; set; }
public string? WorkOrderNumber { get; set; }
public string? AssignTo { get; set; }
public DateTime Start { get; set; }
public DateTime End { get; set; }
}
public sealed class NoVendorCandidateReadModel
{
public int Id { get; set; }
public string? InternalWONumber { get; set; }
public string? WorkerOrderNumber { get; set; }
public DateTime? ScheduledDate { get; set; }
}
public sealed class ActiveVendorReadModel
{
public int Id { get; set; }
public string? CompanyName { get; set; }
public string? ContactName { get; set; }
public string? TradeSpecialties { get; set; }
public string? AvailabilityStatus { get; set; }
public DateTime? AvailabilityUpdatedAt { get; set; }
}
public sealed class InsightDispatchData
{
public int VendorId { get; set; }
public string? VendorName { get; set; }
public string? Status { get; set; }
public DateTime? DispatchedAt { get; set; }
public DateTime? CreatedDate { get; set; }
public DateTime? ScheduledDate { get; set; }
public DateTime? AcknowledgedAt { get; set; }
public DateTime? CompletedDate { get; set; }
public DateTime? DueDate { get; set; }
}