event-app-api
Version:
Package for easy access to Event App API
162 lines (161 loc) • 3.74 kB
TypeScript
import { Attendee } from "../attendee/types";
import { EventLocation, EventStream, EventVisibility } from "../event/types";
export type Link = {
rel: string;
uri: string;
};
type EventImageType = {
logo: string;
picture: string;
thumbnail: string;
};
export type Session = WithEventTimezoneDates<SessionServerResponse, [
"start_date",
"end_date"
]>;
export type WithEventTimezoneDates<T extends Record<string, unknown>, K extends readonly string[]> = T & {
eventTimezoneDates?: EventTimezoneDates<K>;
};
type EventTimezoneDates<K extends readonly string[]> = {
[key in K[number]]?: any;
};
export type Collaboration = {
type: string;
url: string;
title: string;
};
export type Rating = {
ratingList: {
[key: string]: number;
};
ratingCount: number;
ratingScore: boolean;
};
export type SessionServerResponse = {
title: string;
sub_title: string;
description: string;
discussion: SessionDiscussion | null;
start_date: string;
end_date: string;
id: string;
location: any;
event: string;
stream: any;
visibility: EventVisibility;
published: boolean;
virtual: boolean;
max_seat: number;
document_list: string[];
speaker_list: string[];
reserved_list: string[];
watch_list?: string[];
prerecorded: PrerecordedVideo | null;
rating: Rating;
image: {
image: string;
};
links: Link[];
tags: string[];
type: string;
advertisement?: PrerecordedVideo | null;
collaboration: Collaboration;
priority: number;
promoted_at: string;
speakers?: any[];
};
export type PrerecordedVideo = {
videoType: string;
videoReference: string;
};
export type SessionFull = {
id: string;
start_date: string;
end_date: string;
title: string;
sub_title: string;
description: string;
location: EventLocation;
event: string;
visibility: string;
images: EventImageType;
image: {
image: string;
};
advertisement: {
videoReference: string;
videoType: string;
};
tags: string[];
published: boolean;
virtual: boolean;
max_seat: number;
type: string;
reserved_list: string[];
prerecorded: {
videoReference: string;
videoType: string;
};
links: Link[];
extraDetails: string;
stream: EventStream;
heartCount: number;
priority: number;
discussion: SessionDiscussion | null;
documents: DocumentType[];
like_list: string[];
watch_list: string[];
speakers: Attendee[];
};
export type SessionDiscussion = {
commentCount: number;
comments: {
[commentId: string]: {
createdAt: string;
createdBy: string;
id: string;
message: string;
updatedAt: string;
};
};
};
export type ZoomSignature = {
signature: string;
apiKey: string;
meetingNumber: number;
role: number;
email: string;
name: string;
};
export type ZoomKeySecret = {
key: string;
secret: string;
};
export type SessionDate = {
id: string;
name: string;
};
export type SessionInput = {
location: string;
title: string;
subtitle: string;
description: string;
published: string;
virtual: string;
visibility: string;
maxSeat: string;
type: string;
recordedVideoType: string;
recordedVideoReference: string;
advertisementVideoType: string;
advertisementVideoReference: string;
stream: string;
images: {
image: string;
};
collaborationType: string;
collaborationUrl: string;
collaborationTitle: string;
priority: string | number;
};
export {};