package com.gxwebsoft.love.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 会员特权购买记录表
 *
 * @author 科技小王子
 * @since 2023-06-20 18:07:50
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "UserPlanLog对象", description = "会员特权购买记录表")
@TableName("love_user_plan_log")
public class UserPlanLog implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "ID")
    @TableId(value = "log_id", type = IdType.AUTO)
    private Integer logId;

    @ApiModelProperty(value = "订单号")
    private String logNo;

    @ApiModelProperty(value = "类型 0单身 1婚介 2线下")
    private Integer type;

    @ApiModelProperty(value = "付款金额")
    private BigDecimal money;

    @ApiModelProperty(value = "套餐ID")
    private Integer planId;

    @ApiModelProperty(value = "支付状态")
    private Integer payStatus;

    @ApiModelProperty(value = "支付时间")
    private Date payTime;

    @ApiModelProperty(value = "过期时间")
    private Date expirationTime;

    @ApiModelProperty(value = "实际付款金额")
    private BigDecimal payPrice;

    @ApiModelProperty(value = "用户ID")
    private Integer userId;

    @ApiModelProperty(value = "排序(数字越小越靠前)")
    private Integer sortNumber;

    @ApiModelProperty(value = "备注")
    private String comments;

    @ApiModelProperty(value = "状态, 0正常, 1冻结")
    private Integer status;

    @ApiModelProperty(value = "是否删除, 0否, 1是")
    @TableLogic
    private Integer deleted;

    @ApiModelProperty(value = "租户id")
    private Integer tenantId;

    @ApiModelProperty(value = "注册时间")
    private Date createTime;

    @ApiModelProperty(value = "修改时间")
    private Date updateTime;

    @ApiModelProperty(value = "价格ID")
    private Integer priceId;

    @ApiModelProperty(value = "会员等级ID")
    private Integer gradeId;

    @ApiModelProperty(value = "名称")
    private String priceName;

    @ApiModelProperty(value = "真实姓名")
    private String realName;

    @ApiModelProperty(value = "联系电话")
    private String phone;

    @ApiModelProperty(value = "所在省份")
    private String province;

    @ApiModelProperty(value = "所在城市")
    private String city;

    @ApiModelProperty(value = "所在区县")
    private String region;

    @ApiModelProperty(value = "完整地区")
    private String area;

    @ApiModelProperty(value = "门店地址")
    private String address;

    @ApiModelProperty(value = "门店ID")
    private Integer merchantId;

    @ApiModelProperty(value = "所属门店")
    private String merchantName;

    @ApiModelProperty(value = "所属门店")
    private String merchantCode;

    @ApiModelProperty(value = "结算状态")
    private Integer isSettled;

    @ApiModelProperty(value = "套餐名称")
    @TableField(exist = false)
    private String planName;

    @ApiModelProperty(value = "套餐图标")
    @TableField(exist = false)
    private String planIcon;

    @ApiModelProperty(value = "会员昵称")
    @TableField(exist = false)
    private String nickname;

    @ApiModelProperty(value = "头像")
    @TableField(exist = false)
    private String userAvatar;

    @ApiModelProperty(value = "openid")
    @TableField(exist = false)
    private String openid;

    @ApiModelProperty(value = "会员身份")
    @TableField(exist = false)
    private Integer roleId;

    @ApiModelProperty(value = "推荐人ID")
    @TableField(exist = false)
    private Integer dealerId;

    @ApiModelProperty(value = "间接推荐人")
    @TableField(exist = false)
    private Integer dealerId2;

    @ApiModelProperty(value = "付款金额")
    @TableField(exist = false)
    private BigDecimal totalPrice;

    @ApiModelProperty(value = "认证的姓名")
    @TableField(exist = false)
    private String realName2;

    @ApiModelProperty(value = "认证的身份证号")
    @TableField(exist = false)
    private String idCard;

}
