package com.label.dto; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Builder; import lombok.Data; import java.time.LocalDateTime; /** * 任务接口统一响应体(任务池、我的任务、任务详情均复用)。 */ @Data @Builder @Schema(description = "标注任务响应") public class TaskResponse { @Schema(description = "任务主键") private Long id; @Schema(description = "关联资料 ID") private Long sourceId; /** 任务类型(对应 taskType 字段):EXTRACTION / QA_GENERATION */ @Schema(description = "任务类型", example = "EXTRACTION") private String taskType; @Schema(description = "任务状态", example = "UNCLAIMED") private String status; @Schema(description = "领取人用户 ID") private Long claimedBy; @Schema(description = "领取时间") private LocalDateTime claimedAt; @Schema(description = "提交时间") private LocalDateTime submittedAt; @Schema(description = "完成时间") private LocalDateTime completedAt; /** 驳回原因(REJECTED 状态时非空) */ @Schema(description = "驳回原因") private String rejectReason; @Schema(description = "创建时间") private LocalDateTime createdAt; }