33 lines
507 B
TypeScript
33 lines
507 B
TypeScript
import { Actor, IActor } from '@/types/actor/actor.model';
|
|
|
|
export enum MemberRole {
|
|
PENDING,
|
|
MEMBER,
|
|
MODERATOR,
|
|
ADMIN,
|
|
}
|
|
|
|
export interface IGroup extends IActor {
|
|
members: IMember[];
|
|
}
|
|
|
|
export interface IMember {
|
|
role: MemberRole;
|
|
parent: IGroup;
|
|
actor: IActor;
|
|
}
|
|
|
|
export class Group extends Actor implements IGroup {
|
|
members: IMember[] = [];
|
|
|
|
constructor(hash: IGroup | {} = {}) {
|
|
super(hash);
|
|
|
|
this.patch(hash);
|
|
}
|
|
|
|
patch (hash: any) {
|
|
Object.assign(this, hash);
|
|
}
|
|
}
|