mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 07:13:12 +00:00
SH-44 and SH-82 both left "blocks, or requires explicit confirmation" to be decided with the team, and the implementation took the blocking branch. SH-254 settles it the other way: the approved design offers "Deactivate anyway" beside the list of open work orders. Deactivation with open work orders is now permitted, but only when the caller says it has shown them: ConfirmOpenWorkOrders on the update DTO and a confirmOpenWorkOrders query parameter on the delete route. Absent the flag the existing guard still throws, so nothing deactivates by accident and no caller loses the check by omission. confirmOpenWorkOrders is a required parameter on DeleteVendorAsync rather than an optional one, so every call site states its intent.
40 lines
1.4 KiB
C#
40 lines
1.4 KiB
C#
namespace Api.SeaHavenIndustries.DTOs
|
|
{
|
|
public class Vendor_DTO
|
|
{
|
|
public string? CompanyName { get; set; }
|
|
public int? CompanyId { get; set; }
|
|
public string? ContactName { get; set; }
|
|
public string? Email { get; set; }
|
|
public string? Phone { get; set; }
|
|
public string? CompanyPhone { get; set; }
|
|
public string? PreferredContact { get; set; }
|
|
public string? Address { get; set; }
|
|
public string? City { get; set; }
|
|
public string? State { get; set; }
|
|
public string? Zip { get; set; }
|
|
public string? TradeSpecialties { get; set; }
|
|
public string? GoogleMapsUrl { get; set; }
|
|
public string? Notes { get; set; }
|
|
public bool? IsActive { get; set; }
|
|
}
|
|
|
|
public class EditVendor_DTO : Vendor_DTO
|
|
{
|
|
public int Id { get; set; }
|
|
|
|
// SH-254: set when the caller has been shown the vendor's open work orders
|
|
// and chose to deactivate anyway. Without it the open-work-order guard holds.
|
|
public bool ConfirmOpenWorkOrders { get; set; }
|
|
}
|
|
|
|
public class WorkOrderVendorUpdate_DTO
|
|
{
|
|
public int WorkOrderId { get; set; }
|
|
public string? ContactName { get; set; }
|
|
public string? PreferredContact { get; set; }
|
|
public string? Phone { get; set; }
|
|
public string? Email { get; set; }
|
|
public string? Notes { get; set; }
|
|
}
|
|
}
|