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; } }