using System.ComponentModel.DataAnnotations;
using Dlhis.Entity.Canteen.Enums;
using Kurisu.AspNetCore.Utils.Extensions;
namespace Dlhis.Middle.Request;
public class OrderAddRequest : IValidatableObject
{
///
/// 是否离线数据
///
public bool IsOffline { get; set; } = false;
///
/// 消费机器唯一信息
///
public string DeviceUniqueNo { get; set; }
///
/// 第三方订单号
///
public string ThirdNo { get; set; }
///
/// 档案号/QrCode/学工号
///
[Required(ErrorMessage = "人员档案号/QrCode/学工号/userId 不能为空")]
public string UserUniqueNo { get; set; }
///
/// 来源
///
[EnumDataType(typeof(BalanceRecordSourceEnumType))]
public BalanceRecordSourceEnumType Source { get; set; }
///
/// 金额
///
[Range(0.01, double.MaxValue)]
public decimal Amount { get; set; }
///
/// 产生时间
///
public DateTime? CostDateTime { get; set; }
public string Image { get; set; }
public IEnumerable Validate(ValidationContext validationContext)
{
//处理金额
Amount = -Math.Abs(Amount);
CostDateTime ??= DateTime.Now;
if (DeviceUniqueNo.IsEmpty())
{
yield return new ValidationResult("设备号不能为空", new[] { nameof(DeviceUniqueNo) });
}
}
}