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