34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
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<Role>;
|
|
@prop({ required: true, ref: 'FriendRelation', type: mongoose.Schema.Types.ObjectId })
|
|
friendShip: Ref<FriendShip>;
|
|
}
|
|
|
|
/**
|
|
* 好友系统关系表
|
|
*/
|
|
@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<DocumentType<FriendRelation>, keyof FriendRelation>{}; |