using System.Collections.Generic;

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

/// <summary>
/// 班次规则配置验证结果
/// </summary>
public class ShiftRuleConfigValidationResult
{
    /// <summary>
    /// 是否通过验证
    /// </summary>
    public bool IsValid { get; set; }

    /// <summary>
    /// 验证消息
    /// </summary>
    public string Message { get; set; }

    /// <summary>
    /// 验证错误列表
    /// </summary>
    public List<ShiftRuleValidationError> Errors { get; set; } = new List<ShiftRuleValidationError>();

    /// <summary>
    /// 验证警告列表
    /// </summary>
    public List<ValidationWarning> Warnings { get; set; } = new List<ValidationWarning>();

    /// <summary>
    /// 建议措施
    /// </summary>
    public string Suggestion { get; set; }
}

/// <summary>
/// 班次规则验证错误
/// </summary>
public class ShiftRuleValidationError
{
    /// <summary>
    /// 错误代码
    /// </summary>
    public string ErrorCode { get; set; }

    /// <summary>
    /// 错误消息
    /// </summary>
    public string ErrorMessage { get; set; }

    /// <summary>
    /// 错误级别
    /// </summary>
    public string ErrorLevel { get; set; }
}

/// <summary>
/// 验证警告
/// </summary>
public class ValidationWarning
{
    /// <summary>
    /// 警告代码
    /// </summary>
    public string WarningCode { get; set; }

    /// <summary>
    /// 警告消息
    /// </summary>
    public string WarningMessage { get; set; }

    /// <summary>
    /// 警告级别
    /// </summary>
    public string WarningLevel { get; set; }
} 