XuqmGroup-Server/im-service/src/main/java/com/xuqm/im/entity/ImFriendRequestEntity.java
XuqmGroup 962e1dc722 feat(sample): 添加示例应用的核心功能模块
- 实现环境配置管理,支持外部和本地主机模式切换
- 集成Demo API接口,包含登录、注册、文件上传等功能
- 构建附件处理仓库,支持图片、视频、音频和文件发送
- 开发认证仓库,管理用户会话和IM令牌刷新机制
- 添加语音录制功能,支持实时音频消息录制
- 创建依赖注入容器,统一管理应用组件实例
- 实现登录界面,提供用户认证交互功能
- 开发聊天界面,集成消息收发和媒体处理功能
2026-04-28 16:08:07 +08:00

66 行
2.2 KiB
Java

package com.xuqm.im.entity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.xuqm.im.json.EpochMillisLocalDateTimeSerializer;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Index;
import jakarta.persistence.Table;
import jakarta.persistence.UniqueConstraint;
import java.time.LocalDateTime;
@Entity
@Table(
name = "im_friend_request",
uniqueConstraints = @UniqueConstraint(columnNames = {"appId", "fromUserId", "toUserId"}),
indexes = @Index(name = "idx_friend_request_app_to", columnList = "appId,toUserId")
)
public class ImFriendRequestEntity extends BaseIdEntity {
public enum Status { PENDING, ACCEPTED, REJECTED }
@Column(nullable = false, length = 64)
private String appId;
@Column(nullable = false, length = 128)
private String fromUserId;
@Column(nullable = false, length = 128)
private String toUserId;
@Column(length = 256)
private String remark;
@Column(nullable = false, length = 16)
private String status;
@Column(nullable = false)
private LocalDateTime createdAt;
private LocalDateTime reviewedAt;
public String getAppId() { return appId; }
public void setAppId(String appId) { this.appId = appId; }
public String getFromUserId() { return fromUserId; }
public void setFromUserId(String fromUserId) { this.fromUserId = fromUserId; }
public String getToUserId() { return toUserId; }
public void setToUserId(String toUserId) { this.toUserId = toUserId; }
public String getRemark() { return remark; }
public void setRemark(String remark) { this.remark = remark; }
public String getStatus() { return status; }
public void setStatus(String status) { this.status = status; }
@JsonSerialize(using = EpochMillisLocalDateTimeSerializer.class)
public LocalDateTime getCreatedAt() { return createdAt; }
public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; }
@JsonSerialize(using = EpochMillisLocalDateTimeSerializer.class)
public LocalDateTime getReviewedAt() { return reviewedAt; }
public void setReviewedAt(LocalDateTime reviewedAt) { this.reviewedAt = reviewedAt; }
}