版本260406

This commit is contained in:
2026-04-06 22:04:05 +08:00
parent 7dc5e73af7
commit 0b150470be
216 changed files with 98993 additions and 33 deletions

View File

@@ -0,0 +1,44 @@
using OrpaonVision.Core.Enums;
namespace OrpaonVision.Core.Annotation.Contracts;
/// <summary>
/// 标注任务详情 DTO。
/// </summary>
public sealed class AnnotationTaskDetailDto
{
/// <summary>
/// 平台类型(当前固定为 Cvat
/// </summary>
public AnnotationPlatformEnum Platform { get; init; } = AnnotationPlatformEnum.Cvat;
/// <summary>
/// CVAT 任务 ID。
/// </summary>
public long CvatTaskId { get; init; }
/// <summary>
/// CVAT 任务名称。
/// </summary>
public string TaskName { get; init; } = string.Empty;
/// <summary>
/// CVAT 项目 ID。
/// </summary>
public long? CvatProjectId { get; init; }
/// <summary>
/// CVAT 任务状态。
/// </summary>
public string TaskStatus { get; init; } = string.Empty;
/// <summary>
/// 任务内图像或条目数量。
/// </summary>
public int ItemCount { get; init; }
/// <summary>
/// 最近更新时间UTC
/// </summary>
public DateTime? UpdatedAtUtc { get; init; }
}

View File

@@ -21,4 +21,9 @@ public interface IAnnotationSyncAppService
/// 查询同步状态。
/// </summary>
Task<Result<AnnotationSyncStatusDto>> GetSyncStatusAsync(Guid projectId, CancellationToken cancellationToken = default);
/// <summary>
/// 查询 CVAT 任务详情。
/// </summary>
Task<Result<AnnotationTaskDetailDto>> GetTaskDetailAsync(long cvatTaskId, CancellationToken cancellationToken = default);
}

View File

@@ -0,0 +1,24 @@
using OrpaonVision.Core.Annotation.Contracts;
using OrpaonVision.Core.Results;
namespace OrpaonVision.Core.Annotation;
/// <summary>
/// 标注任务持久化仓储(最小可运行骨架)。
/// </summary>
public interface IAnnotationTaskStore
{
/// <summary>
/// 保存或更新任务快照。
/// </summary>
/// <param name="detail">任务详情快照。</param>
/// <returns>处理结果。</returns>
Result SaveOrUpdate(AnnotationTaskDetailDto detail);
/// <summary>
/// 按 CVAT 任务 ID 获取任务快照。
/// </summary>
/// <param name="cvatTaskId">CVAT 任务 ID。</param>
/// <returns>任务快照。</returns>
Result<AnnotationTaskDetailDto?> GetByCvatTaskId(long cvatTaskId);
}