namespace DXPBLL.VendorPo; // Mirrors the subset of MM's MMDAL.DTO.StockReservation.StockReservationDTO fields needed for // an AutoLinked reservation triggered by PO acknowledgement. Posted as JSON directly to MM's own // POST /StockReservation/SaveStockReservation endpoint — DXP never writes to TRESERVATION // directly (see Phase 1.3 migration header for the read-vs-write rationale). Property names // must match MM's DTO exactly (PascalCase) — MM's FastEndpoints pipeline uses // PropertyNamingPolicy = null, so no case translation happens on either side. public class StockReservationRequestDTO { public int TenantId { get; set; } public int OUId { get; set; } public byte ReservationMode { get; set; } = 4; // AutoLinked public byte ReservationStatus { get; set; } = 1; // Tentative — matches MM's default for a new reservation public byte ReservationSource { get; set; } public byte AssignmentLevel { get; set; } public int? ForObjectHeaderTypeId { get; set; } public int? ForObjectHeaderId { get; set; } public int? ForBizTransactionTypeId { get; set; } public int ItemId { get; set; } public int? SKUId { get; set; } public int? StoreId { get; set; } public decimal ReservedQuantity { get; set; } public bool IsAutoLinked { get; set; } = true; public int? LinkedPoTypeId { get; set; } public int? LinkedPoId { get; set; } public int CreatedById { get; set; } public int ModifiedById { get; set; } } public class StockReservationOutcome { public bool Success { get; set; } public int? ReservationId { get; set; } public string? Error { get; set; } }