Add leave/join/delete event logic

This commit is contained in:
Chocobozzz
2019-02-22 11:24:41 +01:00
parent e4a08ff83b
commit e19a533e9d
5 changed files with 327 additions and 261 deletions

View File

@@ -1,13 +1,13 @@
export interface IActor {
id: string;
url: string;
name: string;
domain: string|null;
summary: string;
preferredUsername: string;
suspended: boolean;
avatarUrl: string;
bannerUrl: string;
id: string;
url: string;
name: string;
domain: string|null;
summary: string;
preferredUsername: string;
suspended: boolean;
avatarUrl: string;
bannerUrl: string;
}
export interface IPerson extends IActor {
@@ -15,15 +15,18 @@ export interface IPerson extends IActor {
}
export interface IGroup extends IActor {
members: IMember[];
members: IMember[];
}
export enum MemberRole {
PENDING, MEMBER, MODERATOR, ADMIN
PENDING,
MEMBER,
MODERATOR,
ADMIN,
}
export interface IMember {
role: MemberRole;
parent: IGroup;
actor: IActor;
}
role: MemberRole;
parent: IGroup;
actor: IActor;
}

View File

@@ -1,62 +1,70 @@
import { IActor } from "./actor.model";
import { IActor } from './actor.model';
export enum EventStatus {
TENTATIVE,
CONFIRMED,
CANCELLED
TENTATIVE,
CONFIRMED,
CANCELLED,
}
export enum EventVisibility {
PUBLIC,
UNLISTED,
RESTRICTED,
PRIVATE
PUBLIC,
UNLISTED,
RESTRICTED,
PRIVATE,
}
export enum EventJoinOptions {
FREE,
RESTRICTED,
INVITE
FREE,
RESTRICTED,
INVITE,
}
export enum ParticipantRole {
NOT_APPROVED = 'not_approved',
PARTICIPANT = 'participant',
MODERATOR = 'moderator',
ADMINSTRATOR = 'administrator',
CREATOR = 'creator'
NOT_APPROVED = 'not_approved',
PARTICIPANT = 'participant',
MODERATOR = 'moderator',
ADMINISTRATOR = 'administrator',
CREATOR = 'creator',
}
export interface ICategory {
title: string;
description: string;
picture: string;
title: string;
description: string;
picture: string;
}
export interface IParticipant {
role: ParticipantRole,
actor: IActor,
event: IEvent
role: ParticipantRole;
actor: IActor;
event: IEvent;
}
export interface IEvent {
uuid: string;
url: string;
local: boolean;
title: string;
description: string;
begins_on: Date;
ends_on: Date;
status: EventStatus;
visibility: EventVisibility;
join_options: EventJoinOptions;
thumbnail: string;
large_image: string;
publish_at: Date;
// online_address: Adress;
// phone_address: string;
organizerActor: IActor;
attributedTo: IActor;
participants: IParticipant[];
category: ICategory;
}
id?: number;
uuid: string;
url: string;
local: boolean;
title: string;
description: string;
category: ICategory;
begins_on: Date;
ends_on: Date;
publish_at: Date;
status: EventStatus;
visibility: EventVisibility;
join_options: EventJoinOptions;
thumbnail: string;
large_image: string;
organizerActor: IActor;
attributedTo: IActor;
participants: IParticipant[];
// online_address: Address;
// phone_address: string;
}