84 lines
1.8 KiB
Java
84 lines
1.8 KiB
Java
package com.webgame.webgamebackend.entities;
|
||
|
||
import com.webgame.webgamebackend.entities.base.UUIDBaseEntity;
|
||
import jakarta.persistence.Column;
|
||
import jakarta.persistence.Entity;
|
||
import jakarta.persistence.FetchType;
|
||
import jakarta.persistence.JoinColumn;
|
||
import jakarta.persistence.OneToOne;
|
||
import jakarta.persistence.Table;
|
||
import lombok.AllArgsConstructor;
|
||
import lombok.Getter;
|
||
import lombok.NoArgsConstructor;
|
||
import lombok.Setter;
|
||
import lombok.experimental.Accessors;
|
||
|
||
import java.time.LocalDate;
|
||
|
||
/**
|
||
* 用户实体,与 AccountEntity 一对一关联
|
||
*/
|
||
@Entity
|
||
@Getter
|
||
@Setter
|
||
@NoArgsConstructor
|
||
@AllArgsConstructor
|
||
@Accessors(chain = true)
|
||
@Table(name = "user")
|
||
public class UserEntity extends UUIDBaseEntity {
|
||
/**
|
||
* 关联的账号
|
||
*/
|
||
@OneToOne(fetch = FetchType.LAZY)
|
||
@JoinColumn(name = "account_id", referencedColumnName = "id", unique = true)
|
||
private AccountEntity account;
|
||
|
||
/**
|
||
* 昵称
|
||
*/
|
||
@Column(name = "nick_name", length = 16, nullable = false)
|
||
private String nickName;
|
||
|
||
/**
|
||
* 头像
|
||
*/
|
||
@Column(name = "avatar", length = 512)
|
||
private String avatar;
|
||
|
||
/**
|
||
* 个性签名
|
||
*/
|
||
@Column(name = "signature", length = 64)
|
||
private String signature;
|
||
|
||
/**
|
||
* 年龄
|
||
*/
|
||
@Column(name = "age")
|
||
private Integer age;
|
||
|
||
/**
|
||
* 性别 1男 2女
|
||
*/
|
||
@Column(name = "sex", length = 1)
|
||
private Integer sex;
|
||
|
||
/**
|
||
* 生日
|
||
*/
|
||
@Column(name = "birthday")
|
||
private LocalDate birthday;
|
||
|
||
/**
|
||
* 金币余额,默认 1000
|
||
*/
|
||
@Column(name = "balance", nullable = false)
|
||
private Long balance = 1000L;
|
||
|
||
/**
|
||
* 在线状态:ONLINE / AWAY / DND / INVISIBLE,默认 ONLINE
|
||
*/
|
||
@Column(name = "status", length = 16, nullable = false)
|
||
private String status = "ONLINE";
|
||
}
|