package cn.iocoder.yudao.module.im.controller.admin.friend.vo.request; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.time.LocalDateTime; /** * IM 好友申请 Response VO * * @author 芋道源码 */ @Schema(description = "管理后台 - IM 好友申请 Response VO") @Data public class ImFriendRequestRespVO { @Schema(description = "申请编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; @Schema(description = "发起方用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Long fromUserId; @Schema(description = "接收方用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "200") private Long toUserId; @Schema(description = "处理结果", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") private Integer handleResult; // 参见 ImFriendRequestHandleResultEnum 枚举 @Schema(description = "申请理由", example = "我是芋艿(一种食材)") private String applyContent; @Schema(description = "处理理由(接收方拒绝时可选填)", example = "暂不通过") private String handleContent; @Schema(description = "添加来源", example = "1") private Integer addSource; // 参见 ImFriendAddSourceEnum 枚举 @Schema(description = "处理时间") private LocalDateTime handleTime; @Schema(description = "申请创建时间") private LocalDateTime createTime; @Schema(description = "最近更新时间(增量拉取游标用)") private LocalDateTime updateTime; // ========== 下面是聚合字段,方便前端显示 ========== @Schema(description = "发起方昵称(实时聚合自 AdminUser)", example = "芋道") private String fromNickname; @Schema(description = "发起方头像(实时聚合自 AdminUser)") private String fromAvatar; @Schema(description = "接收方昵称(实时聚合自 AdminUser)", example = "老张") private String toNickname; @Schema(description = "接收方头像(实时聚合自 AdminUser)") private String toAvatar; }