import BaseModel from './BaseModel'; import { index, getModelForClass, prop, DocumentType, mongoose, Ref } from '@typegoose/typegoose'; import Role from './Role'; import FriendShip from './FriendShip'; class Relation { @prop({ required: true, default: '' }) roleId: string; // 对方玩家id @prop({ required: true, ref: 'Role', type: mongoose.Schema.Types.ObjectId }) role: Ref; @prop({ required: true, ref: 'FriendRelation', type: mongoose.Schema.Types.ObjectId }) friendShip: Ref; } /** * 好友系统关系表 */ @index({ roleId: 1, createdAt: -1 }) export default class FriendRelation extends BaseModel { @prop({ required: true, default: '' }) roleId: string; // 操作玩家本人id @prop({ required: true, default: [], type: Relation, _id: false }) friends: Relation[]; // 好友列表 @prop({ required: true, default: [], type: Relation, _id: false }) blacklist: Relation[]; // 黑名单列表 } export const FriendRelationModel = getModelForClass(FriendRelation); export interface FriendRelationType extends Pick, keyof FriendRelation>{};