package com.wzj.soopin.member.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.dromara.common.excel.annotation.Excel;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 会员信息 数据视图对象
 *
 * @author zcc
 */
@Data
@Schema(description = "会员信息")
public class MemberVO {
    /** 会员唯一标识 ID */
    @Schema(description = "会员唯一标识 ID")
    private Long id;

    /** 会员昵称 */
    @Excel(name = "昵称")
    @Schema(description = "会员昵称")
    private String nickname;

    /** 会员手机号 */
    @Schema(description = "会员手机号")
    private String phone;

    /** 隐藏部分信息后的手机号（如：138****1234） */
    @Schema(description = "隐藏前三位后四位的手机号")
    private String phoneHidden;

    /** 用户备注信息 */
    @Excel(name = "用户备注")
    @Schema(description = "用户备注信息")
    private String mark;

    /** 帐号启用状态：0->禁用；1->启用 */
    @Excel(name = "帐号启用状态:0->禁用；1->启用")
    @Schema(description = "帐号启用状态：0->禁用；1->启用")
    private Integer status;

    /** 头像地址 */
    @Excel(name = "头像")
    @Schema(description = "头像地址")
    private String avatar;

    /** 性别：0->未知；1->男；2->女 */
    @Excel(name = "性别：0->未知；1->男；2->女")
    @Schema(description = "性别：0->未知；1->男；2->女")
    private Integer gender;

    /** 用户所在城市名称 */
    @Excel(name = "用户所在城市")
    @Schema(description = "用户所在城市名称")
    private String city;

    /** 用户所在省份名称 */
    @Excel(name = "用户所在省份")
    @Schema(description = "用户所在省份名称")
    private String province;

    /** 用户所在国家名称 */
    @Excel(name = "用户所在国家")
    @Schema(description = "用户所在国家名称")
    private String country;

    /** 公众号运营者对粉丝的备注 */
    @Excel(name = "公众号运营者对粉丝的备注，公众号运营者可在微信公众平台用户管理界面对粉丝添加备注")
    @Schema(description = "公众号运营者对粉丝的备注")
    private String remark;

    /** 生日日期（格式：yyyy-MM-dd） */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
    @Schema(description = "生日日期（格式：yyyy-MM-dd）")
    private LocalDate birthday;

    /** 推广员用户 ID */
    @Excel(name = "推广员id")
    @Schema(description = "推广员用户 ID")
    private Long spreadUid;


    @Excel(name = "推广员二维码")
    @Schema(description = "推广员二维码")
    private String spreadCode;

    /** 推广员关联时间（格式：yyyy-MM-dd HH:mm:ss） */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "推广员关联时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "推广员关联时间（格式：yyyy-MM-dd HH:mm:ss）")
    private LocalDateTime spreadTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "注册时间（格式：yyyy-MM-dd HH:mm:ss）")
    private LocalDateTime createTime;

    /** 会员等级 */
    @Excel(name = "等级")
    @Schema(description = "会员等级")
    private Integer level;

    /** 用户剩余积分 */
    @Excel(name = "用户剩余积分")
    @Schema(description = "用户剩余积分")
    private BigDecimal integral;

    /** 微信 OpenID */
    @Excel(name = "openId")
    @Schema(description = "微信 OpenID")
    private String openId;

    /** 用户名 */
    @Excel(name = "userName")
    @Schema(description = "用户名")
    private String userName;

    /** 视频数量 */
    @Schema(description = "视频数")
    @Excel(name = "视频数")
    private Integer vlogCount;

    /** 粉丝数量 */
    @Schema(description = "粉丝数")
    @Excel(name = "粉丝数")
    private Integer fansCount;

    /** 关注数量 */
    @Schema(description = "关注数")
    @Excel(name = "关注数")
    private Integer followCount;

    /** 好友数量 */
    @Schema(description = "好友数")
    @Excel(name = "好友数")
    private Integer friendsCount;

    /** 内部账号id*/
    private Long userId;


    /**
     * 是否关注
     */
    private Boolean doIFollowVloger;

    /**
     * 视频点赞数
     */
    @Schema(description ="视频点赞数")
    private Integer vlogLikeCount;


}
