using OrpaonVision.Core.Results;
using OrpaonVision.Core.Training.Contracts;
using OrpaonVision.Core.Training.Contracts.Commands;
namespace OrpaonVision.Core.Training;
///
/// 运行时部署快照应用服务接口。
///
public interface IRuntimeDeploymentSnapshotAppService
{
///
/// 创建运行时部署快照。
///
/// 创建命令。
/// 取消令牌。
/// 创建结果。
Task> CreateSnapshotAsync(
CreateRuntimeDeploymentSnapshotCommand command,
CancellationToken cancellationToken = default);
///
/// 获取运行时部署快照详情。
///
/// 快照ID。
/// 取消令牌。
/// 快照详情。
Task> GetSnapshotAsync(
Guid snapshotId,
CancellationToken cancellationToken = default);
///
/// 获取运行时部署快照列表。
///
/// 机种ID(可选)。
/// 状态(可选)。
/// 取消令牌。
/// 快照列表。
Task>> GetSnapshotsAsync(
Guid? productTypeId = null,
RuntimeDeploymentSnapshotStatus? status = null,
CancellationToken cancellationToken = default);
///
/// 激活运行时部署快照。
///
/// 激活命令。
/// 取消令牌。
/// 激活结果。
Task> ActivateSnapshotAsync(
ActivateRuntimeDeploymentSnapshotCommand command,
CancellationToken cancellationToken = default);
///
/// 回滚到运行时部署快照。
///
/// 回滚命令。
/// 取消令牌。
/// 回滚结果。
Task> RollbackToSnapshotAsync(
RollbackToRuntimeDeploymentSnapshotCommand command,
CancellationToken cancellationToken = default);
///
/// 获取当前激活的快照。
///
/// 机种ID。
/// 取消令牌。
/// 当前激活的快照。
Task> GetCurrentActivatedSnapshotAsync(
Guid productTypeId,
CancellationToken cancellationToken = default);
///
/// 获取快照历史记录。
///
/// 机种ID。
/// 取消令牌。
/// 快照历史记录。
Task>> GetSnapshotHistoryAsync(
Guid productTypeId,
CancellationToken cancellationToken = default);
}