package com.storlead.trade.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.storlead.framework.mybatis.page.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

@Data
public class CustomerAnalysisResultDTO extends Page {

    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键ID")
    private Long id;

    @ApiModelProperty(value = "客户ID")
    @TableField("customer_id")
    private Long customerId;

    @ApiModelProperty(value = "分析批次号")
    @TableField("analysis_batch_no")
    private String analysisBatchNo;

    @ApiModelProperty(value = "分析场景")
    @TableField("analysis_scene")
    private String analysisScene;

    @ApiModelProperty(value = "分析状态")
    @TableField("analysis_status")
    private Integer analysisStatus;

    @ApiModelProperty(value = "潜力分")
    @TableField("potential_score")
    private Double potentialScore;

    @ApiModelProperty(value = "客户等级")
    @TableField("customer_level")
    private String customerLevel;

    @ApiModelProperty(value = "置信度")
    @TableField("confidence")
    private Double confidence;

    @ApiModelProperty(value = "优先级")
    @TableField("priority")
    private Integer priority;

    @ApiModelProperty(value = "核心标签")
    @TableField("core_tags")
    private String coreTags;

    @ApiModelProperty(value = "分析摘要")
    @TableField("reason_summary")
    private String reasonSummary;

    @ApiModelProperty(value = "建议动作")
    @TableField("suggested_actions")
    private String suggestedActions;

    @ApiModelProperty(value = "风险信号")
    @TableField("risk_signals")
    private String riskSignals;

    @ApiModelProperty(value = "特征快照")
    @TableField("feature_snapshot")
    private String featureSnapshot;

    @ApiModelProperty(value = "模型名称")
    @TableField("model_name")
    private String modelName;

    @ApiModelProperty(value = "模型版本")
    @TableField("model_version")
    private String modelVersion;

    @ApiModelProperty(value = "提示词版本")
    @TableField("prompt_version")
    private String promptVersion;

    @ApiModelProperty(value = "错误码")
    @TableField("error_code")
    private String errorCode;

    @ApiModelProperty(value = "错误信息")
    @TableField("error_message")
    private String errorMessage;

    @ApiModelProperty(value = "建议下次跟进时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("next_follow_up_at")
    private Date nextFollowUpAt;

    @ApiModelProperty(value = "分析时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("analysis_time")
    private Date analysisTime;

    @ApiModelProperty(value = "idList")
    private List<Long> idList;
}
