2019-03-21 20:23:42 +01:00
|
|
|
import { ICurrentUser } from '@/types/current-user.model';
|
|
|
|
import { IEvent } from '@/types/event.model';
|
|
|
|
|
2019-01-21 15:08:22 +01:00
|
|
|
export interface IActor {
|
2019-03-05 12:07:58 +01:00
|
|
|
id?: string;
|
2019-02-22 11:24:41 +01:00
|
|
|
url: string;
|
|
|
|
name: string;
|
|
|
|
domain: string|null;
|
|
|
|
summary: string;
|
|
|
|
preferredUsername: string;
|
|
|
|
suspended: boolean;
|
|
|
|
avatarUrl: string;
|
|
|
|
bannerUrl: string;
|
2019-01-21 15:08:22 +01:00
|
|
|
}
|
|
|
|
|
2019-03-05 12:07:58 +01:00
|
|
|
export class Actor implements IActor {
|
|
|
|
avatarUrl: string = '';
|
|
|
|
bannerUrl: string = '';
|
|
|
|
domain: string | null = null;
|
|
|
|
name: string = '';
|
|
|
|
preferredUsername: string = '';
|
|
|
|
summary: string = '';
|
|
|
|
suspended: boolean = false;
|
|
|
|
url: string = '';
|
|
|
|
}
|
|
|
|
|
2019-01-21 15:08:22 +01:00
|
|
|
export interface IPerson extends IActor {
|
2019-03-21 20:23:42 +01:00
|
|
|
feedTokens: IFeedToken[];
|
|
|
|
goingToEvents: IEvent[];
|
2019-01-21 15:08:22 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
export interface IGroup extends IActor {
|
2019-02-22 11:24:41 +01:00
|
|
|
members: IMember[];
|
2019-01-21 15:08:22 +01:00
|
|
|
}
|
|
|
|
|
2019-03-21 20:23:42 +01:00
|
|
|
export class Person extends Actor implements IPerson {
|
|
|
|
feedTokens: IFeedToken[] = [];
|
|
|
|
goingToEvents: IEvent[] = [];
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface IFeedToken {
|
|
|
|
token: string;
|
|
|
|
actor?: IPerson;
|
|
|
|
user: ICurrentUser;
|
|
|
|
}
|
2019-03-05 12:07:58 +01:00
|
|
|
|
2019-01-21 15:08:22 +01:00
|
|
|
export enum MemberRole {
|
2019-02-22 11:24:41 +01:00
|
|
|
PENDING,
|
|
|
|
MEMBER,
|
|
|
|
MODERATOR,
|
|
|
|
ADMIN,
|
2019-01-21 15:08:22 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
export interface IMember {
|
2019-02-22 11:24:41 +01:00
|
|
|
role: MemberRole;
|
|
|
|
parent: IGroup;
|
|
|
|
actor: IActor;
|
|
|
|
}
|