using Oms.Application.Dtos.Channels;
namespace Oms.Application.Dtos.Orders;
///
/// 销售产品价格发布快照(与渠道发布 JSON 同构)。
///
public class SalesProductPricePublishSnapshotDto
{
///
/// 销售产品主键。
///
public int SalesProductId { get; set; }
///
/// 价格分区 ID(发布时固化,查价/计费优先用快照内分区规则)。
///
public int? PriceAreaId { get; set; }
///
/// 价格分区名称。
///
public string? PriceAreaName { get; set; }
///
/// 价格分区明细(国家/邮编等),发布时从 t_kpi_area_info 固化。
///
public List PriceAreaInfos { get; set; } = [];
///
/// 价格项列表。
///
public List Prices { get; set; } = [];
}
///
/// 销售产品规则发布快照(与渠道发布 JSON 同构)。
///
public class SalesProductRulesPublishSnapshotDto
{
///
/// 产品基础信息。
///
public SalesProductSaveInput? Product { get; set; }
///
/// 分配的服务商列表。
///
public List Providers { get; set; } = [];
///
/// 黑名单分区 ID(发布时固化)。
///
public int? BlacklistAreaId { get; set; }
///
/// 黑名单分区名称。
///
public string? BlacklistAreaName { get; set; }
///
/// 黑名单分区明细,发布时从 t_kpi_area_info 固化。
///
public List BlacklistAreaInfos { get; set; } = [];
///
/// 偏远分区 ID(发布时固化)。
///
public int? RemoteAreaId { get; set; }
///
/// 偏远分区名称。
///
public string? RemoteAreaName { get; set; }
///
/// 偏远分区明细,发布时从 t_kpi_area_info 固化。
///
public List RemoteAreaInfos { get; set; } = [];
///
/// 计重规则 ID(发布时固化)。
///
public int? WeightRuleId { get; set; }
///
/// 计重规则名称。
///
public string? WeightRuleName { get; set; }
///
/// 计重规则明细,发布时从 t_weight_rule_info 固化。
///
public List WeightRuleInfos { get; set; } = [];
///
/// 计重进位 ID(发布时固化)。
///
public int? WeightRoundingId { get; set; }
///
/// 计重进位名称。
///
public string? WeightRoundingName { get; set; }
///
/// 计重进位区间,发布时从 t_weight_rounding_info 固化。
///
public List WeightRoundingInfos { get; set; } = [];
}
///
/// 绑定到订单的快照版本信息。
///
public class ProductSnapshotBinding
{
///
/// 规则快照版本号。
///
public string RulesVersion { get; set; } = string.Empty;
///
/// 价格快照版本号。
///
public string PriceVersion { get; set; } = string.Empty;
///
/// 规则快照生效时间。
///
public DateTime RulesEffectiveTime { get; set; }
///
/// 价格快照生效时间。
///
public DateTime PriceEffectiveTime { get; set; }
///
/// 规则快照内容。
///
public SalesProductRulesPublishSnapshotDto Rules { get; set; } = new();
///
/// 价格快照内容。
///
public SalesProductPricePublishSnapshotDto Price { get; set; } = new();
}