package com.xdap.self_development.domain.pojo;

import com.definesys.mpaas.query.annotation.*;
import com.definesys.mpaas.query.model.MpaasBasePojo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.sql.Timestamp;


/**
 * 对标报告实体类，用于存储对标报告的基本信息
 *
 * @version 1.0
 * @since 2025
 */
@SQLQuery(value = {
        @SQL(view = "getReportById",
                sql = "SELECT ymbr.series, ymbr.id, ymbr.title, ymbr.manufacturer_name, ymbr.model_name, ymbr.module , ymbr.manufacturer_abbreviation, ymbr.model_abbreviation, ymbr.product_number, ymbr.plate, ymbr.platform , ymbr.market_segment, ymbr.project_name, ymbr.project_number, ymbr.upload_time, ymbr.file_path , ymbr.status, ymbr.file_name FROM yfsjglpt_model_benchmarking_report ymbr where ymbr.id = #reportId")
})
@EqualsAndHashCode(callSuper = true)
@Data
@Table("yfsjglpt_model_benchmarking_report")
@NoArgsConstructor
public class BenchmarkingReportPojo extends MpaasBasePojo {
    /**
     * ID
     */
    @RowID(sequence = "benchmarking_report_s", type = RowIDType.UUID)
    private String id;

    /**
     * 标题
     */
    private String title;
    /**
     * 制造商名称
     */
    private String manufacturerName;
    /**
     * 模型名称
     */
    private String modelName;
    /**
     * 模块
     */
    private String module;
    /**
     * 制造商简称
     */
    private String manufacturerAbbreviation;
    /**
     * 模型简称
     */
    private String modelAbbreviation;
    /**
     * 产品编号
     */
    private String productNumber;
    /**
     * 平台
     */
    private String plate;
    /**
     * 平台
     */
    private String platform;
    /**
     * 系列
     */
    private String series;
    /**
     * 市场细分
     */
    private String marketSegment;
    /**
     * 项目名称
     */
    private String projectName;
    /**
     * 项目编号
     */
    private String projectNumber;

    /**
     * 退回次数
     */
    private Integer returnNum;

    /**
     * 创建人
     */
    private String createBy;
    /**
     * 是否删除
     */
    private Integer isDelete;
    /**
     * 上传时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Timestamp uploadTime;
    /**
     * 文件路径
     */
    private String filePath;
    /**
     * 文件名
     */
    private String fileName;
    /**
     * 状态
     */
    private String status;
}
