XuqmGroup-Server/im-service/src/main/java/com/xuqm/im/entity/ImAccountEntity.java

74 行
2.3 KiB
Java

2026-04-21 22:07:29 +08:00
package com.xuqm.im.entity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.xuqm.im.json.EpochMillisLocalDateTimeSerializer;
2026-04-21 22:07:29 +08:00
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import jakarta.persistence.UniqueConstraint;
import java.time.LocalDateTime;
@Entity
@Table(name = "im_account",
uniqueConstraints = @UniqueConstraint(columnNames = {"appId", "userId"}))
public class ImAccountEntity {
public enum Gender { UNKNOWN, MALE, FEMALE }
public enum Status { ACTIVE, BANNED }
@Id
private String id;
@Column(nullable = false, length = 64)
private String appId;
@Column(nullable = false, length = 128)
private String userId;
@Column(length = 64)
private String nickname;
@Enumerated(EnumType.STRING)
@Column(length = 16)
private Gender gender;
@Column(length = 512)
private String avatar;
@Enumerated(EnumType.STRING)
@Column(nullable = false, length = 16)
private Status status;
@Column(nullable = false)
@JsonSerialize(using = EpochMillisLocalDateTimeSerializer.class)
2026-04-21 22:07:29 +08:00
private LocalDateTime createdAt;
public String getId() { return id; }
public void setId(String id) { this.id = id; }
public String getAppId() { return appId; }
public void setAppId(String appId) { this.appId = appId; }
public String getUserId() { return userId; }
public void setUserId(String userId) { this.userId = userId; }
public String getNickname() { return nickname; }
public void setNickname(String nickname) { this.nickname = nickname; }
public Gender getGender() { return gender; }
public void setGender(Gender gender) { this.gender = gender; }
public String getAvatar() { return avatar; }
public void setAvatar(String avatar) { this.avatar = avatar; }
public Status getStatus() { return status; }
public void setStatus(Status status) { this.status = status; }
@JsonSerialize(using = EpochMillisLocalDateTimeSerializer.class)
2026-04-21 22:07:29 +08:00
public LocalDateTime getCreatedAt() { return createdAt; }
public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; }
}