using DS.Module.Core;
using DS.Module.Core.Data;
using DS.WMS.Core.Op.Entity;
using Masuit.Tools.Systems;
using SqlSugar;
namespace DS.WMS.Core.Fee.Entity
{
///
/// 往来单位费用模板
///
[SugarTable("fee_cust_template", "往来单位费用模板")]
public class FeeCustTemplate : SharedOrgModel
{
///
/// 业务类型
///
[SugarColumn(ColumnDescription = "业务类型")]
public BusinessType BusinessType { get; set; }
///
/// 业务类型文本
///
[SugarColumn(IsIgnore = true)]
public string BusinessTypeText => BusinessType.GetDescription();
///
/// 结算对象Id
///
[SugarColumn(ColumnDescription = "结算对象Id")]
public long? CustomerId { get; set; }
///
/// 结算对象
///
[SugarColumn(ColumnDescription = "结算对象", Length = 100, IsNullable = true)]
public string? CustomerName { get; set; }
///
/// 结算对象类型
///
[SugarColumn(ColumnDescription = "结算对象类型", IsNullable = true)]
public string? CustomerType { get; set; }
///
/// 名称
///
[SugarColumn(ColumnDescription = "名称", Length = 50, IsNullable = false)]
public string Name { get; set; } = string.Empty;
///
/// 说明
///
[SugarColumn(ColumnDescription = "说明", Length = 200, IsNullable = true)]
public string? Description { get; set; }
///
/// 判定条件
///
[SugarColumn(ColumnDescription = "判定条件", IsNullable = true)]
public string? Condition { get; set; }
///
/// 费用类型
///
[SugarColumn(ColumnDescription = "费用类型", IsNullable = false)]
public FeeType FeeType { get; set; }
///
/// 费用类型文本
///
[SugarColumn(IsIgnore = true)]
public string FeeTypeText => FeeType.GetDescription();
///
/// 开始时间
///
[SugarColumn(ColumnDescription = "开始时间", IsNullable = true)]
public DateTime? StartTime { get; set; }
///
/// 结束时间
///
[SugarColumn(ColumnDescription = "结束时间", IsNullable = true)]
public DateTime? EndTime { get; set; }
///
/// 是否禁用
///
[SugarColumn(ColumnDescription = "是否禁用", IsNullable = false)]
public bool IsDisabled { get; set; }
///
/// 费用类别ID
///
[SugarColumn(ColumnDescription = "费用类别ID", Length = 50, IsNullable = true)]
public string? FeeCategoryId { get; set; }
///
/// 费用类别名称
///
[SugarColumn(ColumnDescription = "费用类别名称", Length = 50, IsNullable = true)]
public string? FeeCategoryName { get; set; }
///
/// 优先级
///
[SugarColumn(ColumnDescription = "优先级", IsNullable = false)]
public int Priority { get; set; }
///
/// 起运港代码
///
[SugarColumn(ColumnDescription = "起运港代码", Length = 5, IsNullable = true)]
public string? POLCode { get; set; }
///
/// 卸货港代码
///
[SugarColumn(ColumnDescription = "卸货港代码", Length = 5, IsNullable = true)]
public string? PODCode { get; set; }
///
/// 航线代码
///
[SugarColumn(ColumnDescription = "航线代码", Length = 50, IsNullable = true)]
public long? LaneId { get; set; }
///
/// 承运商代码
///
[SugarColumn(ColumnDescription = "承运商代码", Length = 50, IsNullable = true)]
public long? CarrierId { get; set; }
///
/// 付费方式代码
///
[SugarColumn(ColumnDescription = "付费方式代码", Length = 50, IsNullable = true)]
public string? MBLFrtCode { get; set; }
///
/// 业务来源ID
///
[SugarColumn(ColumnDescription = "业务来源ID", IsNullable = true)]
public long? SourceId { get; set; }
///
/// 订舱口ID
///
[SugarColumn(ColumnDescription = "订舱口ID", IsNullable = true)]
public long? ForwarderId { get; set; }
///
/// 模板明细
///
[Navigate(NavigateType.OneToMany, nameof(FeeCustTemplateDetail.TemplateId))]
public List Details { get; set; } = [];
}
}