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