package com.vetti.hotake.domain;

import com.vetti.hotake.domain.dto.HotakeCvInfoDto;
import com.vetti.hotake.domain.dto.HotakeCvOptimizeDto;
import lombok.Data;
import lombok.experimental.Accessors;
import io.swagger.annotations.ApiModelProperty;
import com.vetti.common.annotation.Excel;
import com.vetti.common.core.domain.BaseEntity;

/**
 * 简历信息对象 hotake_cv_info
 *
 * @author wangxiangshun
 * @date 2025-11-02
 */
@Data
@Accessors(chain = true)
public class HotakeCvInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @ApiModelProperty("主键ID")
    private Long id;

    /** 用户ID */
    @ApiModelProperty("用户ID")
    @Excel(name = "用户ID")
    private Long userId;

    /** 简历名称 */
    @ApiModelProperty("简历名称")
    @Excel(name = "简历名称")
    private String cvName;

    @ApiModelProperty("简历类型(cv、letter、 portfolio、other)")
    private String cvFileType;

    /** 简历类型（如：image/jpeg, application/pdf等） */
    @ApiModelProperty("简历文件后缀(doc/pdf)")
    private String cvFileSuffix;

    /** 简历地址 */
    @ApiModelProperty("简历地址")
    @Excel(name = "简历地址")
    private String cvUrl;

    @ApiModelProperty("简历文件大小")
    private String fileSizeShow;

    /** 状态（0 禁用，1 启用） */
    @ApiModelProperty("状态（0 禁用，1 启用）")
    @Excel(name = "状态", readConverterExp = "0=,禁=用，1,启=用")
    private String status;

    @ApiModelProperty("简历模版Json")
    private String cvTemplateJson;

    @ApiModelProperty("简历评分以及说明")
    private String cvScore;

    @ApiModelProperty("简历内容MD5 Hash")
    private String cvMd5;

    @ApiModelProperty("工作经验")
    private String experience;

    @ApiModelProperty("AI评分")
    private String aiMatchScore;

    @ApiModelProperty("AI评分百分比")
    private String aiMatchScorePercentage;

    @ApiModelProperty("简历详细信息-固定模版")
    private HotakeCvInfoDto cvInfoDto;

    @ApiModelProperty("简历预设问题记录")
    private HotakeProblemBaseInfo problemBaseInfo;

    @ApiModelProperty("简历评分")
    private String score;

    @ApiModelProperty("简历分析结果数据存储")
    private String cvOptimizeJson;

    @ApiModelProperty("分析附件结果Json")
    private String analyzedAttachmentJson;

    @ApiModelProperty("文本修正的数量")
    private Integer textCorrectionsNums;

    @ApiModelProperty("逻辑修正的数量")
    private Integer logicCorrectionsNum;

    @ApiModelProperty("数据类型(import:导入,manual:手动,Link:链接)")
    private String dataType;

    @ApiModelProperty("简历分析结果数据")
    private HotakeCvOptimizeDto cvOptimizeDto;

}
