UNPKG

event-app-api

Version:

Package for easy access to Event App API

162 lines (161 loc) 3.74 kB
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 {};