using System;
using System.Collections.Generic;

namespace NPP.SmartSchedue.Api.Contracts.Services.Time.Output;

/// <summary>
/// 班次规则配置详情
/// </summary>
public class ShiftRuleConfigDetail
{
    /// <summary>
    /// 班次ID
    /// </summary>
    public long ShiftId { get; set; }

    /// <summary>
    /// 班次名称
    /// </summary>
    public string ShiftName { get; set; }

    /// <summary>
    /// 规则ID
    /// </summary>
    public long RuleId { get; set; }

    /// <summary>
    /// 规则名称
    /// </summary>
    public string RuleName { get; set; }

    /// <summary>
    /// 是否启用
    /// </summary>
    public bool IsEnabled { get; set; }

    /// <summary>
    /// 优先级
    /// </summary>
    public int Priority { get; set; }

    /// <summary>
    /// 生效开始时间
    /// </summary>
    public DateTime? EffectiveStartTime { get; set; }

    /// <summary>
    /// 生效结束时间
    /// </summary>
    public DateTime? EffectiveEndTime { get; set; }

    /// <summary>
    /// 描述
    /// </summary>
    public string Description { get; set; }

    /// <summary>
    /// 规则参数列表
    /// </summary>
    public List<RuleParameterDetail> Parameters { get; set; } = new List<RuleParameterDetail>();
}

/// <summary>
/// 规则参数详情
/// </summary>
public class RuleParameterDetail
{
    /// <summary>
    /// 参数名称
    /// </summary>
    public string ParameterName { get; set; }

    /// <summary>
    /// 参数值
    /// </summary>
    public string ParameterValue { get; set; }

    /// <summary>
    /// 参数类型
    /// </summary>
    public string ParameterType { get; set; }

    /// <summary>
    /// 参数描述
    /// </summary>
    public string Description { get; set; }

    /// <summary>
    /// 是否必填
    /// </summary>
    public bool IsRequired { get; set; }

    /// <summary>
    /// 默认值
    /// </summary>
    public string DefaultValue { get; set; }
} 