- 添加DemoApi接口定义用户认证和资料管理API - 实现LocalImCache用于本地存储IM对话和消息历史 - 添加MessageContent模型处理多媒体消息内容 - 创建AttachmentRepository处理图片视频音频文件发送 - 实现AuthRepository管理用户登录注册和会话 - 添加VoiceRecorder支持语音录制功能 - 创建AppDependencies依赖注入容器 - 添加ChatScreen界面组件实现聊天UI逻辑
64 行
2.1 KiB
Java
64 行
2.1 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 java.time.LocalDateTime;
|
|
|
|
@Entity
|
|
@Table(
|
|
name = "im_group_join_request",
|
|
indexes = @Index(name = "idx_group_join_request_app_group", columnList = "appId,groupId")
|
|
)
|
|
public class ImGroupJoinRequestEntity extends BaseIdEntity {
|
|
|
|
public enum Status { PENDING, ACCEPTED, REJECTED }
|
|
|
|
@Column(nullable = false, length = 64)
|
|
private String appId;
|
|
|
|
@Column(nullable = false, length = 64)
|
|
private String groupId;
|
|
|
|
@Column(nullable = false, length = 128)
|
|
private String requesterId;
|
|
|
|
@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 getGroupId() { return groupId; }
|
|
public void setGroupId(String groupId) { this.groupId = groupId; }
|
|
|
|
public String getRequesterId() { return requesterId; }
|
|
public void setRequesterId(String requesterId) { this.requesterId = requesterId; }
|
|
|
|
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; }
|
|
}
|