using System.ComponentModel.DataAnnotations;
using Dlhis.Entity.Basic.Enums;
using Kurisu.AspNetCore.Utils.Extensions;
namespace Dlhis.Basic.WorkGrids.Request;
public class WorkGridTimePeriodSaveRequest : IValidatableObject
{
public long? Id { get; set; }
///
/// 班次, eg: 禁止编辑
///
public WorkGridTimePeriodEnumType Type { get; set; }
///
/// 前(min)
///
[Range(1, int.MaxValue)]
public int Before { get; set; }
///
/// 后(min)
///
[Range(1, int.MaxValue)]
public int After { get; set; }
///
/// 开始时间
///
public TimeOnly Start { get; set; }
///
/// 结束时间
///
public TimeOnly End { get; set; }
///
public IEnumerable Validate(ValidationContext validationContext)
{
if (Type != WorkGridTimePeriodEnumType.Day)
{
yield break;
}
if (End.AddMinutes(After) < End)
{
yield return new ValidationResult(WorkGridTimePeriodEnumType.Day.GetDescription() + "禁止跨天,请检查时间段配置", new[] { nameof(Type) });
}
}
}