using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using YunDa.SOMS.Entities.DataMonitoring;
namespace YunDa.SOMS.DataTransferObject.DataMonitoring.SecondaryCircuitInspection
{
///
/// 二次回路巡检计划创建输入DTO
///
public class SecondaryCircuitInspectionPlanCreateInput
{
///
/// 计划名称
///
[Required(ErrorMessage = "计划名称不能为空")]
[StringLength(200, ErrorMessage = "计划名称长度不能超过200个字符")]
public string Name { get; set; }
///
/// 计划描述
///
[StringLength(1000, ErrorMessage = "计划描述长度不能超过1000个字符")]
public string Description { get; set; }
///
/// 变电站ID
///
[Required(ErrorMessage = "变电站ID不能为空")]
public Guid TransformerSubstationId { get; set; }
///
/// 巡检计划类型
///
[Required(ErrorMessage = "巡检计划类型不能为空")]
public SecondaryCircuitInspectionPlanType PlanType { get; set; }
///
/// 巡检优先级
///
[Required(ErrorMessage = "巡检优先级不能为空")]
public SecondaryCircuitInspectionPriority Priority { get; set; } = SecondaryCircuitInspectionPriority.Medium;
///
/// 是否启用
///
[Required]
public bool IsActive { get; set; } = true;
///
/// 定时执行的小时(0-23)
///
[Range(0, 23, ErrorMessage = "执行小时必须在0-23之间")]
public int? ScheduledHour { get; set; }
///
/// 定时执行的分钟(0-59)
///
[Range(0, 59, ErrorMessage = "执行分钟必须在0-59之间")]
public int? ScheduledMinute { get; set; }
///
/// 定时执行的星期列表
///
public List ScheduledWeekDaysList { get; set; }
///
/// 间隔执行的间隔分钟数
///
[Range(1, 10080, ErrorMessage = "间隔分钟数必须在1-10080之间")]
public int? IntervalMinutes { get; set; }
///
/// 检修状态遥信配置ID
///
public Guid? MaintenanceStatusConfigId { get; set; }
///
/// 执行超时时间(秒)
///
[Range(10, 3600, ErrorMessage = "执行超时时间必须在10-3600秒之间")]
public int ExecutionTimeoutSeconds { get; set; } = 300;
///
/// 重试次数
///
[Range(0, 5, ErrorMessage = "重试次数必须在0-5之间")]
public int RetryCount { get; set; } = 1;
///
/// 备注
///
[StringLength(1000, ErrorMessage = "备注长度不能超过1000个字符")]
public string Remark { get; set; }
///
/// 巡检子项列表
///
public List InspectionItems { get; set; }
///
/// 事件驱动配置列表
///
public List EventDrivenConfigs { get; set; }
public SecondaryCircuitInspectionPlanCreateInput()
{
InspectionItems = new List();
EventDrivenConfigs = new List();
ScheduledWeekDaysList = new List();
}
}
}