using System.ComponentModel.DataAnnotations; namespace SJZY.Track.Application.Contract.Dtos.ProvideServices; public class UpsertTrackInput : OrderNoInfo { /// /// true新增,false更新 /// public bool IsAdd { get; set; } /// /// 轨迹唯一标识(可选) /// public string? EsId { get; set; } /// /// 轨迹内容代码 /// [Required] [MaxLength(50)] public string TrackCode { get; set; } = null!; /// /// 轨迹发生地 /// [Required] [MaxLength(200)] public string TrackPlace { get; set; } = null!; /// /// 轨迹发生时间 /// [Required] public DateTime TrackTime { get; set; } /// /// 新的轨迹发生时间 /// 如果是新增,那么优先级高于TrackTime /// 如果要修改TrackTime,请同时传递TrackTime(旧的用于匹配),和NewTrackTime /// public DateTime? NewTrackTime { get; set; } /// /// 轨迹发生时区 /// // [Required] // [Range(-12, 12)] public float? TrackTimeZone { get; set; } /// /// 客户是否可见 /// [Obsolete("废弃的,请使用IsExternal")] public bool IsVisibility { get; set; } /// /// 是否对外(可选的) /// 如果未填则按照【轨迹内容】中的【是否可见】做为默认值 /// public bool? IsExternal { get; set; } /// /// 数据来源:1外部服务商创建,2内部系统创建,3人工创建 /// [Required] public int Source { get; set; } /// /// 轨迹备注 /// public string? Remarks { get; set; } /// /// 附件集合 /// public List? Files { get; set; } /// /// 轨迹内容,若为空则取轨迹内容表中该轨迹Code对应的轨迹内容 /// public string? Content { get; set; } /// /// 轨迹内容英文,若为空则取轨迹内容表中该轨迹Code对应的轨迹英文内容 /// public string? EnStatus { get; set; } /// /// 轨迹发生地(城市) /// public string? TrackPlaceCity { get; set; } /// /// 轨迹发生地(城市)Id /// public int? TrackPlaceCityId { get; set; } /// /// 轨迹发生地(省/州) /// public string? TrackPlaceProvince { get; set; } /// /// 轨迹发生地(省/州)Id /// public int? TrackPlaceProvinceId { get; set; } /// /// 轨迹发生地(国家/地区) /// public string? TrackPlaceNation { get; set; } /// /// 轨迹发生地(国家/地区)Id /// public int? TrackPlaceNationId { get; set; } /// /// 轨迹发生地邮编 /// public string? TrackPlacePostcode { get; set; } /// /// 预计到达时间 /// public DateTime? EstimatedDeliveryDate { get; set; } /// /// 目的地时区 /// [Range(-12, 12)] public float? DestinationTimeZone { get; set; } /// /// 当前操作人 /// public int OptionUserId { get; set; } /// /// 重复的情况下,用什么比较 /// public string? CompareFields { get; set; } /// /// 扩展信息字段,用与轨迹推送的附加字段 /// public string? Extra { get; set; } /// /// 新的扩展信息, /// 如果是新增,那么优先级高于Extra /// 如果要修改Extra,请同时传递Extra(用于匹配旧的)和NewExtra /// public string? NewExtra { get; set; } /// /// 是否强制推送 /// public bool ForcedPush { get; set; } /// /// 指定是否推送 /// public bool IsToMq { get; set; } }