package com.chinaweal.aiccs.aiccs.fraudreg.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.chinaweal.aiccs.aiccs.abnormal.entity.EAlterRecoderTemp;
import com.chinaweal.aiccs.aiccs.auditing.entity.TSOpinion;
import com.chinaweal.aiccs.aiccs.fraudreg.entity.*;
import com.chinaweal.aiccs.crgs.moveinDetails.entity.EAlterRecoder;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;

/**
 * Created by IDEA.
 * Code: Yangmc
 * Date: 2021/11/15
 * Time: 15:01
 */
@Data
@Accessors(chain = true)
@ApiModel(value = "撤销案件流程模型")
public class FraudProcessDto implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 业务主键
     */
    @ApiModelProperty(value = "业务主键")
    @NotBlank(message = "业务主键不能为空！")
    private String bizSeq;

    /**
     * 下一流程节点
     */
    @ApiModelProperty(value = "下一流程节点")
    @NotBlank(message = "下一流程节点类型不能为空！")
    private String nextNodeID;

    /**
     * 意见
     */
    @ApiModelProperty(value = "意见")
    @Valid
    private TSOpinion opinion;

    /**
     * 下一步处理人id数组
     */
    @ApiModelProperty(value = "下一步处理人ids")
    private String[] nextPerformerIds;

    /**
     * 下一步处理人姓名数组
     */
    @ApiModelProperty(value = "下一步处理人姓名数组")
    private String[] nextPerformerNames;


    /**
     * 涉嫌冒用登记主体业务相关信息
     */
    @ApiModelProperty(value = "涉嫌冒用登记主体业务相关信息")
    @Valid
    private TFraudEnt fraudEntInfo;

    /**
     * 投诉原因 (冒用他人身份信息登记、冒用地址信息登记、冒用其他信息登记)
     */
    @ApiModelProperty(value = "投诉原因 (冒用他人身份信息登记、冒用地址信息登记、冒用其他信息登记)")
    @NotBlank(message = "投诉原因不能为空！")
    private String complaintReason;

    /**
     * 是否生成待检查任务 0-不生成 1-生成
     */
    @ApiModelProperty(value = "是否生成待检查任务 0-不生成 1-生成")
    private String isCase;

    /**
     * 待检查任务处理人id
     */
    @ApiModelProperty(value = "待检查任务处理人id")
    private String casePerformerId;

    /**
     * 涉嫌冒用他人身份取得登记责任人
     */
    @ApiModelProperty(value = "涉嫌冒用他人身份取得登记责任人")
    @Valid
    private TFraudPerson fraudPersonInfo;

    /**
     * 撤销登记案件转现场核查信息
     */
    @ApiModelProperty(value = "撤销登记案件转现场核查信息")
    @Valid
    private TFraudCheck fraudCheckInfo;

    /**
     * 处理结果-用于业务判断（撤销设立、撤销变更、撤销注销、终止撤销、不予撤销）
     */
    @ApiModelProperty(value = "处理结果-用于业务判断（撤销设立、撤销变更、撤销注销、终止撤销、不予撤销）")
    private String bizHandleResult;

    /**
     * 撤销业务表
     */
    @ApiModelProperty(value = "撤销业务表")
    @Valid
    private TBizFraud bizFraudInfo;

    /**
     * 撤销撤销案件业务表
     */
    @ApiModelProperty(value = "撤销撤销案件业务表")
    @Valid
    private RevokeTBizFraud revokeTBizFraudInfo;

    /**
     * 变更记录
     */
    @ApiModelProperty(value = "变更记录")
    @Valid
    private List<EAlterRecoderTemp> selectedRecords;
}
