package org.xyzh.api.bidding.vo;

import lombok.Data;
import lombok.EqualsAndHashCode;
import org.xyzh.common.vo.BaseVO;
import io.swagger.v3.oas.annotations.media.Schema;
import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.databind.JsonNode;
import java.util.Date;

/**
 * 招标文档VO
 * 用于前端展示招标文档信息
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "招标文档VO")
public class BiddingDocumentVO extends BaseVO {
    private static final long serialVersionUID = 1L;
    
    @Schema(description = "文档ID")
    private String docId;
    
    @Schema(description = "所属项目ID")
    private String projectId;
    
    @Schema(description = "项目名称")
    private String projectName;
    
    @Schema(description = "文档类型")
    private String docType;
    
    @Schema(description = "文档类型名称（中文）")
    private String docTypeName;
    
    @Schema(description = "文档名称")
    private String docName;
    
    @Schema(description = "关联文件ID")
    private String fileId;
    
    @Schema(description = "文件路径")
    private String filePath;
    
    @Schema(description = "文件下载URL")
    private String fileUrl;
    
    @Schema(description = "文件大小")
    private Long fileSize;
    
    @Schema(description = "文件大小格式化显示")
    private String fileSizeFormatted;
    
    @Schema(description = "MIME类型")
    private String mimeType;
    
    @Schema(description = "文件类型图标")
    private String fileIcon;
    
    @Schema(description = "版本号")
    private Integer version;
    
    @Schema(description = "语言")
    private String language;
    
    @Schema(description = "页数")
    private Integer pageCount;
    
    @Schema(description = "解析状态")
    private String parseStatus;
    
    @Schema(description = "解析状态名称")
    private String parseStatusName;
    
    @Schema(description = "解析结果")
    private JsonNode parseResult;
    
    @Schema(description = "提取的结构化数据")
    private JsonNode extractionData;
    
    @Schema(description = "AI分析结果")
    private String aiAnalysis;
    
    @Schema(description = "上传日期", format = "date-time")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date uploadDate;
    
    @Schema(description = "创建者姓名")
    private String creatorName;
}
