using Oms.Application.Dtos.Orders;
namespace Oms.Application.Services.Orders;
///
/// 算价用的收件地址(国家 + 省市区邮编)。
///
internal readonly record struct OrderBillingAddress(
string CountryCode,
string? Province,
string? City,
string? ZipCode);
///
/// 订单单次算价上下文:快照、分区键、计费重、货类、价区键、仓库。
///
internal sealed class OrderBillingContext
{
public required ProductSnapshotBinding SnapshotBinding { get; init; }
public required IReadOnlyList ZoneKeys { get; init; }
public required decimal ChargeableWeight { get; init; }
public required string CargoAttribute { get; init; }
///
/// 卖价 JSON 价区键(如 普通客户、VIP1、客户组1)。
///
public string? PriceTierKey { get; init; }
public int? WarehouseId { get; init; }
public string? WarehouseName { get; init; }
}