using System;

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

/// <summary>
/// 添加班次规则映射
/// </summary>
public class ShiftRuleMappingAddInput
{
    /// <summary>
    /// 班次ID
    /// </summary>
    public long ShiftId { get; set; }

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

    /// <summary>
    /// 规则覆盖参数 (JSON格式，覆盖规则默认参数)
    /// </summary>
    public string OverrideParameters { get; set; }

    /// <summary>
    /// 规则执行优先级 (数字越小优先级越高)
    /// </summary>
    public int ExecutionPriority { get; set; } = 1;

    /// <summary>
    /// 规则生效开始时间 (覆盖规则默认时间)
    /// </summary>
    public DateTime? EffectiveStartTime { get; set; }

    /// <summary>
    /// 规则生效结束时间 (覆盖规则默认时间)
    /// </summary>
    public DateTime? EffectiveEndTime { get; set; }

    /// <summary>
    /// 映射描述
    /// </summary>
    public string MappingDescription { get; set; }

    /// <summary>
    /// 是否启用该规则
    /// </summary>
    public bool IsEnabled { get; set; } = true;
}