package com.ruoyi.frequency.store.entity;

import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.frequency.enterprise.entity.Enterprise;
import com.ruoyi.vo.UserInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 商户对象 t_store (表现师)
 *
 * @author liwenlong
 * @date 2023-09-22
 */
@Data
@Accessors(chain = true)
@TableName("t_store")
public class Store extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long id;


    /** 删除标志 1正常 删除 3 禁用 */
    private Integer delFlag;

    /** 用户id */
    @Excel(name = "用户id")
    private Long customerId;

    /** 系统用户id */
    @Excel(name = "系统用户id")
    private Long sysUserId;

    /** 售后天数 */
    @Excel(name = "售后天数")
    private Long afterSaleDays;

    /** 昵称 */
    @Excel(name = "昵称")
    private String nickname;

    /** 头像 */
    @Excel(name = "头像")
    private String avatar;

    /** 账号 */
    @Excel(name = "账号")
    private String account;

    /** 手机号(账号) */
    @Excel(name = "手机号(账号)")
    private String mobile;

    /** 个签 */
    @Excel(name = "个签")
    private String signature;

    /** 登录密码 */
    @Excel(name = "登录密码")
    private String loginPwd;

    /** 支付密码 */
    @Excel(name = "支付密码")
    private String payPwd;


    /** 注销时间 */
    @Excel(name = "注销时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date cancellationTime;

    /** 用户粉丝基数 */
    @Excel(name = "用户粉丝基数")
    private Long fansNum;

    /** 用户关注基数 */
    @Excel(name = "用户关注基数")
    private Long followNum;

    /** 余额 */
    @Excel(name = "余额")
    private BigDecimal balance;

    /** 获赞量 */
    @Excel(name = "获赞量")
    private Long likeNum;

    /** 是否缴纳保证金 1没有 2 已缴纳 */
    @Excel(name = "是否缴纳保证金 1没有 2 已缴纳")
    private Integer isBond;

    /** 保证金额 */
    @Excel(name = "保证金额")
    private BigDecimal bondAmount;

    /** 邀请码 */
    @Excel(name = "邀请码")
    private String invitationCode;

    /** 绑定企业id */
    @Excel(name = "绑定企业id")
    private Long bindEnterpriseId;

    /** 企业微信二维码 */
    @Excel(name = "企业微信二维码")
    private String wecomQrcode;

    /** 入行时间 */
    @Excel(name = "入行时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy")
    private Date enterDate;

    /** 所属区域 */
    @Excel(name = "所属区域")
    private String area;

    /** 在线状态;1:在线,2离线 */
    @Excel(name = "在线状态;1:在线,2离线")
    private Integer onlineStatus;

    /** 在线时长;分钟 */
    @Excel(name = "在线时长;分钟")
    private Integer onlineDuration;

    /** 微信openID */
    @Excel(name = "微信openID")
    private String wechatOpenid;

    /** 小程序id */
    @Excel(name = "小程序id")
    private String wechatAppletOpenid;

    /** 小程序unionId*/
    @Excel(name = "小程序unionId")
    private String unionId;

    /** 苹果id */
    @Excel(name = "苹果id")
    private String appleOpenid;

    /** 累计收益 */
    @Excel(name = "累计收益")
    private BigDecimal income;

    /** 扣款 */
    @Excel(name = "扣款")
    private BigDecimal violationDeduction;

    /** 等级id */
    @Excel(name = "等级id")
    private Long levelId;

    /** 评分 */
    @Excel(name = "评分")
    private BigDecimal star;

    /** 推送是否关闭;1不关闭2  关闭 */
    @Excel(name = "推送是否关闭;1不关闭2  关闭")
    private Integer closeMessage;

    /** 是否是官方账号： 1不是 2 是 */
    private Integer isPlatform;


    @ApiModelProperty(value = "积分")
    private BigDecimal integral;

    @ApiModelProperty(value = "累计积分")
    private BigDecimal accumulateIntegral;

    @ApiModelProperty(value = "曾经任职公司")
    private String onceWorkCompanys;

    @ApiModelProperty(value = "是否是dd认证 1不是 2是")
    private Integer isDdAuth;

    @ApiModelProperty(value = "用户类型 1 用户 2 代理商 3 企业")
    @TableField(exist = false)
    private Integer userType = 2;

    /** 等级名称 */
    @Excel(name = "等级名称")
    @TableField(exist = false)
    private String levelName;

    /** 认证状态 1未认证 2普通认证 3高端认证 */
    @Excel(name = "认证状态 1未认证 2普通认证 3高端认证")
    @TableField(exist = false)
    private Integer authStatus;

    @ApiModelProperty(value = "是否高端认证 1 没有 2认证")
    @TableField(exist = false)
    private Integer ifHighend;

    @ApiModelProperty(value = "高端认证 0 未认证 1 待完善 2待付款 3待上传企业微信二维码")
    @TableField(exist = false)
    private Integer isHighendAuth;

    @ApiModelProperty("擅长领域")
    @Excel(name = "擅长领域")
    private String specialityArea;

    @ApiModelProperty("昵称")
    private String name;

    @ApiModelProperty("企业微信userid")
    private String wecomUserid;

    @ApiModelProperty("表现师订单提成比例")
    private BigDecimal commissionRatio;

    @ApiModelProperty(value = "是否普通认证 1 没有 2认证")
    @TableField(exist = false)
    private Integer isAuth;

    @ApiModelProperty(value = "企业信息")
    @TableField(exist = false)
    private Enterprise enterprise;


    @ApiModelProperty(value = "背景图")
    private String backgroundImage;

    @ApiModelProperty(value = "用户信息")
    @TableField(exist = false)
    private UserInfo userInfo = new UserInfo();

    @ApiModelProperty("开始时间")
    @TableField(exist = false)
    private Date beginTime;

    @ApiModelProperty("结束时间")
    @TableField(exist = false)
    private Date endTime;


    @ApiModelProperty("排序 1在线时长降序 2 在线时长升序")
    @TableField(exist = false)
    private Integer sortType;


    @ApiModelProperty("用户ids")
    @TableField(exist = false)
    private List<Long> userIds;

    @ApiModelProperty("从业年限范围")
    @TableField(exist = false)
    private String yearRange;

    @ApiModelProperty("从业年限范围")
    @TableField(exist = false)
    private Integer minYear;

    @ApiModelProperty("从业年限范围")
    @TableField(exist = false)
    private Integer maxYear;

    @ApiModelProperty(value = "可提现金额")
    @TableField(exist = false)
    private BigDecimal withdrawableAmount;

    @ApiModelProperty(value = "待提现金额")
    @TableField(exist = false)
    private BigDecimal toBeWithdrawnAmount;

    @ApiModelProperty("从业年限范围")
    @TableField(exist = false)
    private Date beginOfMonth = DateUtil.beginOfMonth(new Date());

    @ApiModelProperty("筛选 1未创建高端认证")
    @TableField(exist = false)
    private Integer screen;

    @ApiModelProperty("性别")
    @TableField(exist = false)
    private String sex;

    @ApiModelProperty("订单数量")
    @TableField(exist = false)
    private Integer orderCount;

    @ApiModelProperty("订单单价")
    @TableField(exist = false)
    private BigDecimal unitPrice;

    @ApiModelProperty("最近交易时间")
    @TableField(exist = false)
    private Date lastTransactionTime;

    @ApiModelProperty("当月金额、业绩")
    @TableField(exist = false)
    private BigDecimal monthAmount;

    @ApiModelProperty("订单id")
    @Excel(name = "订单id")
    @TableField(exist = false)
    private Long orderId;

    @ApiModelProperty("扣款类型")
    @Excel(name = "扣款类型")
    @TableField(exist = false)
    private String deductionType;
}
