using Distribution.Models; namespace Distribution.Features.ShopPO; public record CreateShopPORequest(Guid StoreId, List Items, Guid? RaisedByUserId = null); public record ShopPOItemRequest(Guid ItemId, int Quantity, decimal? UnitPrice = null); public record UpdateShopPOItemsRequest(List Items); public record ConfirmShopPORequest(Guid? ConfirmedByUserId = null); public record CancelShopPORequest(string Reason, Guid? CancelledByUserId = null); public record ShopPOItemResponse(Guid Id, Guid ItemId, string ItemName, int Quantity, int QuantityFulfilled, decimal UnitPrice, bool IsActive); public record ShopPOResponse( Guid Id, Guid StoreId, string StoreName, Guid RaisedById, Guid? InvoiceId, decimal TotalAmount, ShopPOStatus Status, DateTime? ConfirmedAt, Guid? ConfirmedBy, DateTime? FulfilledAt, List Items, bool IsActive, DateTime CreatedAt, string? RaisedByName = null, string? RaisedByRole = null, string? ConfirmedByName = null, string? ConfirmedByRole = null, Guid? CancelledBy = null, DateTime? CancelledAt = null, string? CancelReason = null, string? CancelledByName = null, string? CancelledByRole = null);