Files
OrpaonVision/OrpaonVision.Core/Training/IRuleValidationService.cs
2026-04-06 22:08:38 +08:00

53 lines
1.9 KiB
C#

using OrpaonVision.Core.Results;
using OrpaonVision.Core.Training.Contracts;
namespace OrpaonVision.Core.Training;
/// <summary>
/// 规则校验服务接口。
/// </summary>
public interface IRuleValidationService
{
/// <summary>
/// 校验规则快照包。
/// </summary>
/// <param name="packagePath">包路径。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>校验结果。</returns>
Task<Result<RuleSnapshotValidationResultDto>> ValidateRuleSnapshotPackageAsync(
string packagePath,
CancellationToken cancellationToken = default);
/// <summary>
/// 校验层顺序。
/// </summary>
/// <param name="layerOrderData">层顺序数据。</param>
/// <param name="expectedOrder">期望的层顺序。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>校验结果。</returns>
Task<Result<LayerOrderValidationResultDto>> ValidateLayerOrderAsync(
string[] layerOrderData,
string[] expectedOrder,
CancellationToken cancellationToken = default);
/// <summary>
/// 校验部件编码唯一性。
/// </summary>
/// <param name="partCodes">部件编码列表。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>校验结果。</returns>
Task<Result<PartCodeUniquenessValidationResultDto>> ValidatePartCodeUniquenessAsync(
string[] partCodes,
CancellationToken cancellationToken = default);
/// <summary>
/// 校验Schema合法性。
/// </summary>
/// <param name="schemaFiles">Schema文件路径列表。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>校验结果。</returns>
Task<Result<SchemaValidationResultDto>> ValidateSchemaAsync(
string[] schemaFiles,
CancellationToken cancellationToken = default);
}