package com.storlead.sales.pojo.vo.systemrule;

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.annotate.Dict;
import com.storlead.framework.mybatis.entity.SysBaseField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

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

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "SystemRuleModuleConfigDetileVO", description = "规则配置模块详情VO")
public class SystemRuleModuleConfigDetileVO extends SysBaseField {
    @ApiModelProperty(value = "规则模块id")
    private Long id;

//    @ApiModelProperty(value = "模块名称")
//    @Dict(dictCode = "work_data_group",valueField = "serviceName")
//    private String serviceCode;

    @ApiModelProperty(value = "业务类型编码")
    @Dict(dictCode = "work_data_group",valueField = "resourceName")
    private String resourceType;

    @ApiModelProperty(value = "模块名称")
    private String resourceName;

    @ApiModelProperty(value = "更新人姓名")
    private String updateByName;

    @ApiModelProperty(value = "更新说明")
    private String updateExplain;

    @ApiModelProperty(value = "是否限制成员拥有线索/客户上限")
    private Boolean hasMaxMember;

    @ApiModelProperty(value = "成员拥有线索/客户上限数量")
    private Integer maxMemberNum;

    @ApiModelProperty(value = "是否开启线索/客户置公设置")
    private Boolean hasPublicClues;

    @ApiModelProperty(value = "是否区分重点客户与普通客户")
    private Boolean hasDistinguishKeyRegular;

    @ApiModelProperty(value = "普通客户最大未跟进天数")
    private Integer regularFollowDate;

    @ApiModelProperty(value = "重点客户最大未跟进天数")
    private Integer keyFollowDate;

    @ApiModelProperty(value = "普通客户最大未成交天数")
    private Integer regularTransactionDate;

    @ApiModelProperty(value = "重点客户最大未成交天数")
    private Integer keyTransactionDate;

    @ApiModelProperty(value = "线索/客户置公时间")
    private Integer maxPublicCluesNum;

    @ApiModelProperty(value = "是否开启线索/客户清空设置")
    private Boolean hasClearClues;

    @ApiModelProperty(value = "线索/客户清空时间（天数）")
    private Integer maxClearCluesNum;

    @ApiModelProperty(value = "是否开启查重规则配置")
    private Boolean hasPlagiarismRules;

    @ApiModelProperty(value = "查重规则配置详情（JSON）")
    private String plagiarismRules;

    @ApiModelProperty(value = "归属人员姓名")
    private String ownerByName;

    @ApiModelProperty(value = "查重规则配置详情（JSON）")
    @TableField(exist = false)
    private List<FieldSimilarityConfigVO> fieldSimilarityls;

    @ApiModelProperty(value = "是否区分客户类型")
    private Boolean hasDistinguishCustomerType;

    @ApiModelProperty(value = "客户类型规则（JSON对应CustomerTypeRulesVO）")
    private List<CustomerTypeRulesVO> customerTypeRules;

    @ApiModelProperty(value = "是否开启转垃圾客户设置")
    private Boolean hasGarbageClues;

    @ApiModelProperty(value = "转垃圾客户最大未跟进天数")
    private Integer maxGarbageCluesNum;

    @ApiModelProperty(value = "是否开启垃圾客户清空设置")
    private Boolean hasGarbageEmptyClues;

    @ApiModelProperty(value = "垃圾客户清空时间（天数）")
    private Integer maxGarbageEmptyCluesNum;

}
