package com.ruoyi.group.domain.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * 客群实体
 *
 * @author ruoyi
 */
@Data
@TableName("ibs_cust_group")
public class CustGroup {

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

    /**
     * 客群名称
     */
    @ApiModelProperty(value = "客群名称", name = "groupName")
    private String groupName;

    /**
     * 客群模式：0=静态, 1=动态
     */
    @ApiModelProperty(value = "客群模式：0=静态, 1=动态", name = "groupMode")
    private String groupMode;

    /**
     * 客群类型：0=零售类（个人+商户）, 1=公司类（企业）
     */
    @ApiModelProperty(value = "客群类型：0=零售类（个人+商户）, 1=公司类（企业）", name = "groupType")
    private String groupType;

    /**
     * 柜员号
     */
    @ApiModelProperty(value = "柜员号", name = "userName")
    private String userName;

    /**
     * 柜员名称
     */
    @ApiModelProperty(value = "柜员名称", name = "nickName")
    private String nickName;

    /**
     * 所属机构ID
     */
    @ApiModelProperty(value = "所属机构ID", name = "deptId")
    private Long deptId;

    /**
     * 是否开启共享：0=否, 1=是
     */
    @ApiModelProperty(value = "是否开启共享：0=否, 1=是", name = "shareEnabled")
    private Integer shareEnabled;

    /**
     * 可见部门ID列表（逗号分隔）
     */
    @ApiModelProperty(value = "可见部门ID列表（逗号分隔）", name = "shareDeptIds")
    private String shareDeptIds;

    /**
     * 客群状态：0=正常, 1=已禁用
     */
    @ApiModelProperty(value = "客群状态：0=正常, 1=已禁用", name = "groupStatus")
    private String groupStatus;

    /**
     * 创建状态：0=创建中, 1=创建成功, 2=创建失败
     */
    @ApiModelProperty(value = "创建状态：0=创建中, 1=创建成功, 2=创建失败", name = "createStatus")
    private String createStatus;

    /**
     * 创建者
     */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 删除标识：0=正常, 1=删除
     */
    @TableLogic(value = "0", delval = "1")
    @TableField("del_flag")
    private Integer delFlag;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注", name = "remark")
    private String remark;

    /**
     * 客群标签（多个标签用逗号分隔）
     */
    @ApiModelProperty(value = "客群标签（多个标签用逗号分隔）", name = "groupTags")
    @TableField("group_tags")
    private String groupTags;

    /**
     * 网格类型：0=绩效网格, 1=地理网格, 2=绘制网格（管户关系来源）
     */
    @ApiModelProperty(value = "网格类型（管户关系来源）：0=绩效网格, 1=地理网格, 2=绘制网格", name = "gridType")
    private String gridType;

    /**
     * 地理网格ID列表（逗号分隔，动态客群使用）
     */
    @ApiModelProperty(value = "地理网格ID列表", name = "regionGridIds")
    private String regionGridIds;

    /**
     * 绘制网格ID列表（逗号分隔，动态客群使用）
     */
    @ApiModelProperty(value = "绘制网格ID列表", name = "drawGridIds")
    private String drawGridIds;

    /**
     * 有效期截止时间
     */
    @ApiModelProperty(value = "有效期截止时间", name = "validTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date validTime;

}