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

83 lines
3.5 KiB
C#

using OrpaonVision.Core.Results;
using OrpaonVision.Core.Training.Contracts;
using OrpaonVision.Core.Training.Contracts.Commands;
namespace OrpaonVision.Core.Training;
/// <summary>
/// 模型包应用服务接口。
/// </summary>
public interface IModelPackageAppService
{
/// <summary>
/// 构建模型包。
/// </summary>
/// <param name="command">构建模型包命令。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>模型包ID。</returns>
Task<Result<Guid>> BuildPackageAsync(BuildModelPackageCommand command, CancellationToken cancellationToken = default);
/// <summary>
/// 导出模型包。
/// </summary>
/// <param name="command">导出模型包命令。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>导出文件信息。</returns>
Task<Result<ExportFileDto>> ExportPackageAsync(ExportModelPackageCommand command, CancellationToken cancellationToken = default);
/// <summary>
/// 获取模型包详情。
/// </summary>
/// <param name="modelPackageId">模型包ID。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>模型包详情。</returns>
Task<Result<ModelPackageDetailDto>> GetDetailAsync(Guid modelPackageId, CancellationToken cancellationToken = default);
/// <summary>
/// 导入模型包。
/// </summary>
/// <param name="packagePath">模型包文件路径。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>导入结果。</returns>
Task<Result<ModelPackageImportResultDto>> ImportPackageAsync(string packagePath, CancellationToken cancellationToken = default);
/// <summary>
/// 校验模型包。
/// </summary>
/// <param name="modelPackageId">模型包ID。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>校验结果。</returns>
Task<Result<ModelPackageValidationResultDto>> ValidatePackageAsync(Guid modelPackageId, CancellationToken cancellationToken = default);
/// <summary>
/// 启用模型包。
/// </summary>
/// <param name="modelPackageId">模型包ID。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>启用结果。</returns>
Task<Result<ModelPackageActivationResultDto>> ActivatePackageAsync(Guid modelPackageId, CancellationToken cancellationToken = default);
/// <summary>
/// 停用模型包。
/// </summary>
/// <param name="modelPackageId">模型包ID。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>停用结果。</returns>
Task<Result<ModelPackageDeactivationResultDto>> DeactivatePackageAsync(Guid modelPackageId, CancellationToken cancellationToken = default);
/// <summary>
/// 回滚到指定版本。
/// </summary>
/// <param name="targetModelPackageId">目标模型包ID。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>回滚结果。</returns>
Task<Result<ModelPackageRollbackResultDto>> RollbackToPackageAsync(Guid targetModelPackageId, CancellationToken cancellationToken = default);
/// <summary>
/// 获取已导入的模型包列表。
/// </summary>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>模型包列表。</returns>
Task<Result<IReadOnlyList<ModelPackageSummaryDto>>> GetImportedPackagesAsync(CancellationToken cancellationToken = default);
}