mobilizon.chapril.org-mobil.../js/src/types/event.model.ts

73 lines
1.2 KiB
TypeScript

import { IActor } from './actor.model';
export enum EventStatus {
TENTATIVE,
CONFIRMED,
CANCELLED,
}
export enum EventVisibility {
PUBLIC,
UNLISTED,
RESTRICTED,
PRIVATE,
}
export enum EventJoinOptions {
FREE,
RESTRICTED,
INVITE,
}
export enum ParticipantRole {
NOT_APPROVED = 'not_approved',
PARTICIPANT = 'participant',
MODERATOR = 'moderator',
ADMINISTRATOR = 'administrator',
CREATOR = 'creator',
}
export enum Category {
BUSINESS = 'business',
CONFERENCE = 'conference',
BIRTHDAY = 'birthday',
DEMONSTRATION = 'demonstration',
MEETING = 'meeting',
}
export interface IParticipant {
role: ParticipantRole;
actor: IActor;
event: IEvent;
}
export interface IEvent {
id?: number;
uuid: string;
url: string;
local: boolean;
title: string;
description: string;
category: Category;
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;
}