46 lines
789 B
TypeScript
46 lines
789 B
TypeScript
export interface IActor {
|
|
id?: string;
|
|
url: string;
|
|
name: string;
|
|
domain: string|null;
|
|
summary: string;
|
|
preferredUsername: string;
|
|
suspended: boolean;
|
|
avatarUrl: string;
|
|
bannerUrl: string;
|
|
}
|
|
|
|
export class Actor implements IActor {
|
|
avatarUrl: string = '';
|
|
bannerUrl: string = '';
|
|
domain: string | null = null;
|
|
name: string = '';
|
|
preferredUsername: string = '';
|
|
summary: string = '';
|
|
suspended: boolean = false;
|
|
url: string = '';
|
|
}
|
|
|
|
export interface IPerson extends IActor {
|
|
|
|
}
|
|
|
|
export interface IGroup extends IActor {
|
|
members: IMember[];
|
|
}
|
|
|
|
export class Person extends Actor implements IPerson {}
|
|
|
|
export enum MemberRole {
|
|
PENDING,
|
|
MEMBER,
|
|
MODERATOR,
|
|
ADMIN,
|
|
}
|
|
|
|
export interface IMember {
|
|
role: MemberRole;
|
|
parent: IGroup;
|
|
actor: IActor;
|
|
}
|