package com.docus.server.entity.segmentation;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.docus.server.enums.OcrStatusEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * ocr文件信息
 *
 * @author AutoGenerator
 * @since 2023-08-29
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@TableName("ocr_file_info")
@ApiModel(value = "OcrFileInfo对象", description = "ocr文件信息")
public class OcrFileInfo implements Serializable {

    @ApiModelProperty(value = "id")
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private Long id;

    @ApiModelProperty(value = "病案id")
    @TableField("patient_id")
    private String patientId;

    @ApiModelProperty(value = "图片标题")
    @TableField("file_title")
    private String fileTitle;

    @ApiModelProperty(value = "图片名称")
    @TableField("pic_name")
    private String picName;

    @ApiModelProperty(value = "文件类型")
    @TableField("file_type")
    private Integer fileType;

    @ApiModelProperty(value = "图片排序")
    @TableField("sort")
    private Integer sort;

    @ApiModelProperty(value = "序列号")
    @TableField("serial_number")
    private String serialNumber;

    @ApiModelProperty(value = "图片地址")
    @TableField("pic_url")
    private String picUrl;

    @ApiModelProperty(value = "图片压缩后地址")
    @TableField("pic_compress_url")
    private String picCompressUrl;

    @ApiModelProperty(value = "图片分割后地址")
    @TableField("pic_cut_url")
    private String picCutUrl;

    @ApiModelProperty(value = "图片旋转角度(整数 90 180 360)")
    @TableField("angle")
    private Integer angle;

    @ApiModelProperty(value = "识别文本结果")
    @TableField("ocr_text")
    private String ocrText;

    @ApiModelProperty(value = "分段完成时间")
    @TableField("ocr_finish_time")
    private Date ocrFinishTime;

    @ApiModelProperty(value = "分段状态 0未开始 1分段中,2完成分段")
    @TableField("ocr_status")
    private OcrStatusEnum ocrStatus;

    @ApiModelProperty(value = "分段id")
    @TableField("assort_id")
    private String assortId;

    @ApiModelProperty(value = "分段名称")
    @TableField("assort_name")
    private String assortName;

    @ApiModelProperty(value = "命中策略id")
    @TableField("rule_id")
    private Long ruleId;

    @ApiModelProperty(value = "命中关键词")
    @TableField("hit_key")
    private String hitKey;

    @ApiModelProperty(value = "命中占比")
    @TableField("rate")
    private Double rate;

    @ApiModelProperty(value = "文件大小")
    @TableField("file_size")
    private Long fileSize;

    @ApiModelProperty(value = "高度")
    @TableField("height")
    private int height;

    @ApiModelProperty(value = "宽度")
    @TableField("width")
    private int width;

    @ApiModelProperty(value = "横坐标")
    @TableField("x")
    private int x;

    @ApiModelProperty(value = "纵坐标")
    @TableField("y")
    private int y;

    @ApiModelProperty(value = "额外参数")
    @TableField("json_str")
    private String jsonStr;

    @ApiModelProperty(value = "创建时间")
    @TableField("create_time")
    private Date createTime;

    @ApiModelProperty(value = "更新时间")
    @TableField("update_time")
    private Date updateTime;


}
