package com.mall.member.domain.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.util.Date;

@Getter
@Setter
@Accessors(chain = true)
@TableName("ums_member")
@Schema(name = "Member对象", title = "会员", description = "会员的实体类对象")
public class Member {

    @Schema(name = "id", title = "id")
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;

    @Schema(name = "levelId", title = "会员等级id")
    private Long levelId;

    @Schema(name = "username", title = "用户名")
    private String username;

    @Schema(name = "password", title = "密码")
    private String password;

    @Schema(name = "nickname", title = "昵称")
    private String nickname;

    @Schema(name = "mobile", title = "手机号码")
    private String mobile;

    @Schema(name = "email", title = "邮箱")
    private String email;

    @Schema(name = "header", title = "头像")
    private String header;

    @Schema(name = "gender", title = "性别")
    private Integer gender;

    @Schema(name = "birth", title = "生日")
    private Date birth;

    @Schema(name = "city", title = "所在城市")
    private String city;

    @Schema(name = "job", title = "职业")
    private String job;

    @Schema(name = "sign", title = "个性签名")
    private String sign;

    @Schema(name = "sourceType", title = "用户来源")
    private Integer sourceType;

    @Schema(name = "integration", title = "积分")
    private Integer integration;

    @Schema(name = "growth", title = "成长值")
    private Integer growth;

    @Schema(name = "status", title = "启用状态")
    private Integer status;

    @Schema(name = "createTime", title = "注册时间")
    private LocalDateTime createTime;

    @Schema(name = "socialUid", title = "社交用户的唯一id")
    private String socialUid;

    @Schema(name = "accessToken", title = "访问令牌")
    private String accessToken;

    @Schema(name = "expiresIn", title = "访问令牌的时间")
    private String expiresIn;

}