using System;

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

/// <summary>
/// 添加生产班次
/// </summary>
public class ShiftAddInput
{
    /// <summary>
    /// 班次名称
    /// </summary>
    public string Name { get; set; }

    /// <summary>
    /// 班次编号 (1, 2, 3)
    /// </summary>
    public int ShiftNumber { get; set; }

    /// <summary>
    /// 班次开始时间
    /// </summary>
    public TimeSpan StartTime { get; set; }

    /// <summary>
    /// 班次结束时间
    /// </summary>
    public TimeSpan EndTime { get; set; }

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

    /// <summary>
    /// 班次后强制休息天数 (默认值，可被规则覆盖)
    /// </summary>
    public int RestDaysAfterShift { get; set; } = 1;

    /// <summary>
    /// 是否允许连续排班 (默认值，可被规则覆盖)
    /// </summary>
    public bool AllowConsecutive { get; set; } = false;

    /// <summary>
    /// 班次优先级权重
    /// </summary>
    public int PriorityWeight { get; set; } = 1;

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