package com.lingyue.parse.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 解析任务消息
 * 用于RabbitMQ消息队列
 * 
 * @author lingyue
 * @since 2026-01-14
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ParseTaskMessage implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    /**
     * 文档ID
     */
    private String documentId;
    
    /**
     * 原始文件路径
     */
    private String sourceFilePath;
    
    /**
     * 文件类型
     */
    private String fileType;
    
    /**
     * 用户ID
     */
    private String userId;
    
    /**
     * 优先级（数字越大优先级越高，默认0）
     */
    @Builder.Default
    private Integer priority = 0;
    
    /**
     * 重试次数
     */
    @Builder.Default
    private Integer retryCount = 0;
    
    /**
     * 最大重试次数
     */
    @Builder.Default
    private Integer maxRetries = 3;
    
    /**
     * 创建时间戳
     */
    private Long timestamp;
}
