-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathtypes.ts
138 lines (106 loc) · 3.34 KB
/
types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
declare global {
interface window {
Onesignal: any
}
}
export interface Profile {
/** A unique identifier for the presenter */
readonly id: string
/** The presenter's email address also their username*/
readonly email: string
/** The URL to the presenters profile photo */
readonly avatar_url?: string
/** The user's personal website */
readonly website?: string
/** The time the presenter account was updated. */
readonly updatedAt?: string
}
export type PresenterHeader = Omit<Profile, 'id' | 'updatedAt'>
export type PresenterSignupForm = Omit<Profile, 'id' | 'updatedAt'>
export interface Preso {
/** Just an ID for internal use. */
readonly id: string
/** The name of the presentation. */
readonly title: string
/** The Url where the presener's slides are located */
readonly url: string
/** The Id of the user who created this preso */
readonly userId: string
/** The publically visible unique identifier for the presentation. */
readonly shortCode: string
/** The name of the event where the presentation was given. */
readonly eventName: string
/** The location where the event took place. */
readonly eventLocation?: string
/** The location where the published video or other content can be found. */
readonly publishedContentUrl?: string
/** The time the presentation was created. */
readonly createdAt?: string
/** The time the presentation was updated. */
readonly updatedAt?: string
}
export type PresoForm = Omit<
Preso,
'id' | 'shortCode' | 'createdAt' | 'updatedAt'
>
export type PresoDetails = Omit<Preso, 'userId' | 'shortCode'>
export interface Survey {
/** Just an ID for internal use. */
readonly id: string
/** The presentation this response is for */
readonly presoId: string
/** The attendee whose response is this survey */
readonly attendeeId: string
/** Indicates if the survey respondent
* should be sent an email when
* the recording of the presentation
* is published by the event host.
* */
readonly notifyWhenVideoPublished: boolean
/** Indicates if the survey respondent
* should be sent an SMS with a
* link to a feedback form a few
* minutes after the live talk
* is scheduled to conclude.
*/
readonly sendPresoFeedback: boolean
/** Indicates if the survey respondent
* should be notified whenever
* the presenter presents again.
*/
readonly notifyOfOtherTalks: boolean
/** The feedback they'd like to share with the presenter */
readonly feedback?: string
/** The time the survey was completed. */
readonly createdAt?: string
}
export type SurveyForm = Omit<Survey, 'id' | 'attendeeId' | 'createdAt'>
export type SurveyFormResponse = {
readonly email: string
readonly fullName: string
} & SurveyForm
export interface Profile {
readonly id: string
readonly username: string
readonly firstName: string
readonly lastName: string
readonly email: string
readonly website?: string
readonly avatar_url?: string
readonly createdAt?: string
readonly UpdatedAt?: string
}
export interface Attendee {
readonly id: string
readonly fullName: string
readonly email: string
}
export interface AttendeesView {
readonly presenter: string
readonly preso: string
readonly attendee: string
readonly email: string
readonly name: string
readonly feedback: string
readonly created_at: string
}