40 lines
1.3 KiB
C#
40 lines
1.3 KiB
C#
namespace Distribution.Features.PriceList;
|
|
|
|
public record CreatePriceListRequest(string Name, Guid? RegionId, DateTime EffectiveFrom, DateTime EffectiveTo);
|
|
|
|
public record UpdatePriceListRequest(string Name, Guid? RegionId, DateTime EffectiveFrom, DateTime EffectiveTo, bool IsActive);
|
|
|
|
public record UpsertPriceListItemRequest(
|
|
decimal Price,
|
|
decimal? MinPrice = null,
|
|
decimal? RetailPrice = null,
|
|
decimal? AgencyMarginPercent = null);
|
|
|
|
public record PriceListItemResponse(
|
|
Guid Id,
|
|
Guid ItemId,
|
|
string Sku,
|
|
string ItemName,
|
|
decimal Price,
|
|
decimal? MinPrice,
|
|
decimal? RetailPrice,
|
|
decimal? AgencyMarginPercent);
|
|
|
|
/// <summary>
|
|
/// A resolved price with its negotiable floor, plus the informational retail price and agency
|
|
/// margin when the resolution came from an actual PriceListItem (both null on the Item.SalePrice
|
|
/// fallback, since neither is tracked at the item level).
|
|
/// </summary>
|
|
public record PriceResolution(decimal Price, decimal? MinPrice, decimal? RetailPrice, decimal? AgencyMarginPercent);
|
|
|
|
public record PriceListResponse(
|
|
Guid Id,
|
|
string Name,
|
|
Guid? RegionId,
|
|
string? RegionName,
|
|
DateTime EffectiveFrom,
|
|
DateTime EffectiveTo,
|
|
bool IsActive,
|
|
DateTime CreatedAt,
|
|
List<PriceListItemResponse> Items);
|