@community-kitchens/apiinterfaces 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auth/types.ts +40 -0
- package/d4j/types.ts +4 -0
- package/form/formTypes.ts +177 -0
- package/mealProgram/types.ts +181 -0
- package/package.json +12 -0
- package/text/types.ts +56 -0
- package/volunteer/types.ts +117 -0
package/auth/types.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export interface User {
|
|
2
|
+
username: string;
|
|
3
|
+
admin: boolean;
|
|
4
|
+
active: boolean;
|
|
5
|
+
salesforceId: string;
|
|
6
|
+
id: string;
|
|
7
|
+
googleId?: string;
|
|
8
|
+
busDriver?: boolean;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export type UsersState = Record<string, User>;
|
|
12
|
+
|
|
13
|
+
export interface SignInArgs {
|
|
14
|
+
username: string;
|
|
15
|
+
password: string;
|
|
16
|
+
}
|
|
17
|
+
export interface SignInResponse {
|
|
18
|
+
user: User;
|
|
19
|
+
token: string;
|
|
20
|
+
}
|
|
21
|
+
export interface ContactInfo {
|
|
22
|
+
firstName: string;
|
|
23
|
+
lastName: string;
|
|
24
|
+
volunteerAgreement: boolean;
|
|
25
|
+
foodHandler: boolean;
|
|
26
|
+
homeChefAgreement: boolean;
|
|
27
|
+
homeChefQuizPassed: boolean;
|
|
28
|
+
homeChefStatus?: string;
|
|
29
|
+
calfreshVolunteer?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface CreateUserArgs {
|
|
32
|
+
username: string;
|
|
33
|
+
password?: string;
|
|
34
|
+
salesforceId?: string;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export type EditUserArgs = CreateUserArgs & {
|
|
38
|
+
userId: string;
|
|
39
|
+
busDriver?: boolean;
|
|
40
|
+
};
|
package/d4j/types.ts
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { CBOReport, Language } from "../mealProgram/types";
|
|
2
|
+
|
|
3
|
+
export type Service = {
|
|
4
|
+
name: string;
|
|
5
|
+
location: string;
|
|
6
|
+
time: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
instructions?: string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
interface MealsPlusArgs {
|
|
12
|
+
formData: {
|
|
13
|
+
firstName: string;
|
|
14
|
+
lastName: string;
|
|
15
|
+
email: string;
|
|
16
|
+
cbo: string;
|
|
17
|
+
services: Service[];
|
|
18
|
+
};
|
|
19
|
+
name: "MEALS_PLUS";
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
interface CBOReportArgs {
|
|
23
|
+
formData: CBOReport;
|
|
24
|
+
name: "CBO_REPORT";
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
interface VolunteerInterestFormArgs {
|
|
28
|
+
formData: {
|
|
29
|
+
email: string;
|
|
30
|
+
firstName: string;
|
|
31
|
+
lastName: string;
|
|
32
|
+
phoneNumber: string;
|
|
33
|
+
instagramHandle?: string;
|
|
34
|
+
corporate?: string;
|
|
35
|
+
source: string;
|
|
36
|
+
extraInfo?: string;
|
|
37
|
+
employer?: string;
|
|
38
|
+
calfresh: boolean;
|
|
39
|
+
};
|
|
40
|
+
name: "VOLUNTEER_INTEREST";
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface FavoriteOptions {
|
|
44
|
+
American?: number;
|
|
45
|
+
"Asian Cuisine"?: number;
|
|
46
|
+
Barbecue?: number;
|
|
47
|
+
Italian?: number;
|
|
48
|
+
Mexican?: number;
|
|
49
|
+
Sandwiches?: number;
|
|
50
|
+
"Southern/ Soul"?: number;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// interface MealSurveyArgsV2 {
|
|
54
|
+
// formData: {
|
|
55
|
+
// language: "English" | "Spanish";
|
|
56
|
+
// age?: string;
|
|
57
|
+
// ethnicity?: string;
|
|
58
|
+
// zip?: string;
|
|
59
|
+
// microwave?: boolean;
|
|
60
|
+
// utensils?: boolean;
|
|
61
|
+
// numberOfPeople?: string;
|
|
62
|
+
// children?: boolean;
|
|
63
|
+
// time?: string;
|
|
64
|
+
// mealType?: string;
|
|
65
|
+
// mealType2?: string;
|
|
66
|
+
// dietary?: string[];
|
|
67
|
+
// fruit?: boolean;
|
|
68
|
+
// taste?: boolean;
|
|
69
|
+
// access?: boolean;
|
|
70
|
+
// skip?: string;
|
|
71
|
+
// fridge?: boolean;
|
|
72
|
+
// diabetes?: boolean;
|
|
73
|
+
// hbp?: boolean;
|
|
74
|
+
// };
|
|
75
|
+
// name: "MEAL_SURVEY_V2";
|
|
76
|
+
// }
|
|
77
|
+
|
|
78
|
+
interface MealSurveyArgsV3 {
|
|
79
|
+
formData: {
|
|
80
|
+
language: Language;
|
|
81
|
+
age?: string;
|
|
82
|
+
ethnicity?: string;
|
|
83
|
+
preferredLanguage?: string;
|
|
84
|
+
otherPreferredLanguage?: string;
|
|
85
|
+
zip?: string;
|
|
86
|
+
numberOfPeople?: string;
|
|
87
|
+
children?: string;
|
|
88
|
+
homelessness?: string;
|
|
89
|
+
homelessnessOther?: string;
|
|
90
|
+
cookingItems?: string[];
|
|
91
|
+
cookingItemsOther?: string;
|
|
92
|
+
healthConcerns?: string[];
|
|
93
|
+
dietary?: string[];
|
|
94
|
+
dietaryOther?: string;
|
|
95
|
+
fruit?: string;
|
|
96
|
+
favorites?: FavoriteOptions;
|
|
97
|
+
calfresh?: string;
|
|
98
|
+
resources?: string[];
|
|
99
|
+
resourcesOther: string;
|
|
100
|
+
rating?: string;
|
|
101
|
+
skip?: string;
|
|
102
|
+
location?: string[];
|
|
103
|
+
locationOther: string;
|
|
104
|
+
access?: string;
|
|
105
|
+
source?: string;
|
|
106
|
+
};
|
|
107
|
+
name: "MEAL_SURVEY_V3";
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
interface CulinaryTrainingArgs {
|
|
111
|
+
formData: {
|
|
112
|
+
email: string;
|
|
113
|
+
firstName: string;
|
|
114
|
+
lastName: string;
|
|
115
|
+
phone: string;
|
|
116
|
+
address: string;
|
|
117
|
+
internet: boolean;
|
|
118
|
+
description: string;
|
|
119
|
+
source: string;
|
|
120
|
+
};
|
|
121
|
+
name: "CULINARY_TRAINING";
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
interface SNAPSurveyArgs {
|
|
125
|
+
formData: {
|
|
126
|
+
receiveSNAP: boolean;
|
|
127
|
+
november?: boolean;
|
|
128
|
+
whatDay?: string;
|
|
129
|
+
howMuch?: string;
|
|
130
|
+
reduce?: boolean;
|
|
131
|
+
};
|
|
132
|
+
name: "SNAP_SURVEY";
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
interface HomeChefPollArgs {
|
|
136
|
+
formData: {
|
|
137
|
+
city: string;
|
|
138
|
+
miles: string;
|
|
139
|
+
active: boolean;
|
|
140
|
+
support?: string;
|
|
141
|
+
};
|
|
142
|
+
name: "HOME_CHEF_POLL";
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
interface HomeChefOrientationArgs {
|
|
146
|
+
formData: {
|
|
147
|
+
email: string;
|
|
148
|
+
firstName: string;
|
|
149
|
+
lastName: string;
|
|
150
|
+
phone: string;
|
|
151
|
+
};
|
|
152
|
+
name: "HOME_CHEF_ORIENTATION";
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export interface BallersRSVPArgs {
|
|
156
|
+
formData: {
|
|
157
|
+
name: string;
|
|
158
|
+
email: string;
|
|
159
|
+
additional: boolean;
|
|
160
|
+
numberOfPeople: string;
|
|
161
|
+
numberOfAdditional: string;
|
|
162
|
+
};
|
|
163
|
+
name: "BALLERS_RSVP";
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export type SubmitFormArgs =
|
|
167
|
+
| CBOReportArgs
|
|
168
|
+
| VolunteerInterestFormArgs
|
|
169
|
+
| CulinaryTrainingArgs
|
|
170
|
+
| MealSurveyArgsV3
|
|
171
|
+
| SNAPSurveyArgs
|
|
172
|
+
| MealsPlusArgs
|
|
173
|
+
| HomeChefPollArgs
|
|
174
|
+
| HomeChefOrientationArgs
|
|
175
|
+
| BallersRSVPArgs;
|
|
176
|
+
|
|
177
|
+
export type RSVP = BallersRSVPArgs["formData"] & { id: string };
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
export interface Restaurant {
|
|
2
|
+
name: string;
|
|
3
|
+
salesforceId: string;
|
|
4
|
+
user: string;
|
|
5
|
+
id: string;
|
|
6
|
+
}
|
|
7
|
+
export type RestaurantState = Record<string, Restaurant>;
|
|
8
|
+
|
|
9
|
+
export interface CreateRestaurantArgs {
|
|
10
|
+
name: string;
|
|
11
|
+
salesforceId: string;
|
|
12
|
+
userId: string;
|
|
13
|
+
}
|
|
14
|
+
export type EditRestaurantArgs = CreateRestaurantArgs & {
|
|
15
|
+
restaurantId: string;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export interface RestaurantInfo {
|
|
19
|
+
// remainingDocs: UploadFilesResponse[];
|
|
20
|
+
completedDocs: string[];
|
|
21
|
+
status: string;
|
|
22
|
+
healthPermitExpired: boolean;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface MealDelivery {
|
|
26
|
+
date: string;
|
|
27
|
+
cbo: string;
|
|
28
|
+
restaurant: string;
|
|
29
|
+
id: string;
|
|
30
|
+
time: string;
|
|
31
|
+
deliveryMethod: string;
|
|
32
|
+
numberOfMealsMeat: number;
|
|
33
|
+
numberOfMealsVeg: number;
|
|
34
|
+
notes: string;
|
|
35
|
+
price: number;
|
|
36
|
+
isThisWeek: boolean;
|
|
37
|
+
isNextWeek: boolean;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface MealProgramAccount {
|
|
41
|
+
id: string;
|
|
42
|
+
name: string;
|
|
43
|
+
address?: string;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export interface MealProgramScheduleResponse {
|
|
47
|
+
accounts: MealProgramAccount[];
|
|
48
|
+
deliveries: MealDelivery[];
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface MealProgramState {
|
|
52
|
+
accounts: Record<string, MealProgramAccount>;
|
|
53
|
+
deliveries: MealDelivery[];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export type ZipCode =
|
|
57
|
+
| "94501"
|
|
58
|
+
| "94502"
|
|
59
|
+
| "94536"
|
|
60
|
+
| "94537"
|
|
61
|
+
| "94538"
|
|
62
|
+
| "94539"
|
|
63
|
+
| "94540"
|
|
64
|
+
| "94541"
|
|
65
|
+
| "94542"
|
|
66
|
+
| "94543"
|
|
67
|
+
| "94544"
|
|
68
|
+
| "94545"
|
|
69
|
+
| "94546"
|
|
70
|
+
| "94550"
|
|
71
|
+
| "94551"
|
|
72
|
+
| "94552"
|
|
73
|
+
| "94555"
|
|
74
|
+
| "94557"
|
|
75
|
+
| "94560"
|
|
76
|
+
| "94566"
|
|
77
|
+
| "94568"
|
|
78
|
+
| "94577"
|
|
79
|
+
| "94578"
|
|
80
|
+
| "94579"
|
|
81
|
+
| "94580"
|
|
82
|
+
| "94586"
|
|
83
|
+
| "94587"
|
|
84
|
+
| "94588"
|
|
85
|
+
| "94601"
|
|
86
|
+
| "94602"
|
|
87
|
+
| "94603"
|
|
88
|
+
| "94604"
|
|
89
|
+
| "94605"
|
|
90
|
+
| "94606"
|
|
91
|
+
| "94607"
|
|
92
|
+
| "94608"
|
|
93
|
+
| "94609"
|
|
94
|
+
| "94610"
|
|
95
|
+
| "94611"
|
|
96
|
+
| "94612"
|
|
97
|
+
| "94613"
|
|
98
|
+
| "94614"
|
|
99
|
+
| "94615"
|
|
100
|
+
| "94616"
|
|
101
|
+
| "94617"
|
|
102
|
+
| "94618"
|
|
103
|
+
| "94619"
|
|
104
|
+
| "94620"
|
|
105
|
+
| "94621"
|
|
106
|
+
| "94623"
|
|
107
|
+
| "94624"
|
|
108
|
+
| "94661"
|
|
109
|
+
| "94662"
|
|
110
|
+
| "94701"
|
|
111
|
+
| "94702"
|
|
112
|
+
| "94703"
|
|
113
|
+
| "94704"
|
|
114
|
+
| "94705"
|
|
115
|
+
| "94706"
|
|
116
|
+
| "94707"
|
|
117
|
+
| "94708"
|
|
118
|
+
| "94709"
|
|
119
|
+
| "94710"
|
|
120
|
+
| "94712"
|
|
121
|
+
| "DeclinetoState"
|
|
122
|
+
| "Unhoused"
|
|
123
|
+
| "Other";
|
|
124
|
+
|
|
125
|
+
export interface CBOReport {
|
|
126
|
+
month: string;
|
|
127
|
+
name: string;
|
|
128
|
+
cboName: string;
|
|
129
|
+
performanceMeasures: PerformanceMeasures;
|
|
130
|
+
age: Age;
|
|
131
|
+
race: Race;
|
|
132
|
+
individuals: number;
|
|
133
|
+
households: number;
|
|
134
|
+
zips: Partial<Record<ZipCode, number>>;
|
|
135
|
+
feedback?: string;
|
|
136
|
+
phone?: string;
|
|
137
|
+
email: string;
|
|
138
|
+
year: string;
|
|
139
|
+
waters: string;
|
|
140
|
+
juices: string;
|
|
141
|
+
socks: string;
|
|
142
|
+
granolaBars: string;
|
|
143
|
+
tortillaChips: string;
|
|
144
|
+
extraItem: string;
|
|
145
|
+
extraItemAmount: string;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export interface Age {
|
|
149
|
+
age17: number;
|
|
150
|
+
age26: number;
|
|
151
|
+
age49: number;
|
|
152
|
+
age60: number;
|
|
153
|
+
ageOver60: number;
|
|
154
|
+
ageUnknown: number;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
export interface Race {
|
|
158
|
+
raceAfrican: number;
|
|
159
|
+
raceLatin: number;
|
|
160
|
+
raceAsian: number;
|
|
161
|
+
raceNativeAmerican: number;
|
|
162
|
+
raceWhite: number;
|
|
163
|
+
raceDecline: number;
|
|
164
|
+
raceUnknown: number;
|
|
165
|
+
raceOther: number;
|
|
166
|
+
raceOtherText: string;
|
|
167
|
+
raceMixed: number;
|
|
168
|
+
raceMixedText: string;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export interface PerformanceMeasures {
|
|
172
|
+
withoutAccess: number;
|
|
173
|
+
lowIncome: number;
|
|
174
|
+
mealsProvided: number;
|
|
175
|
+
unusable: number;
|
|
176
|
+
postcards: number;
|
|
177
|
+
calfreshApps: number;
|
|
178
|
+
SSA: number;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
export type Language = "English" | "Spanish" | "Chinese";
|
package/package.json
ADDED
package/text/types.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export type Region = "WEST_OAKLAND" | "EAST_OAKLAND" | "BERKELEY";
|
|
2
|
+
|
|
3
|
+
export interface SendTextBody {
|
|
4
|
+
message?: string;
|
|
5
|
+
region: Region | "East Oakland" | "West Oakland" | "Berkeley" | "all";
|
|
6
|
+
photo?: string | File | FileList;
|
|
7
|
+
feedbackId?: string;
|
|
8
|
+
number?: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface AddPhoneArgs {
|
|
12
|
+
phone: string;
|
|
13
|
+
region: Region;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface GetPhoneNumberResponse {
|
|
17
|
+
number: string;
|
|
18
|
+
id: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface MessageInstance {
|
|
22
|
+
sid: string;
|
|
23
|
+
accountSid: string;
|
|
24
|
+
attributes: string;
|
|
25
|
+
author: string;
|
|
26
|
+
body: string;
|
|
27
|
+
chatServiceSid: string;
|
|
28
|
+
conversationSid: string;
|
|
29
|
+
dateCreated: string;
|
|
30
|
+
dateUpdated: string;
|
|
31
|
+
delivery: any;
|
|
32
|
+
status: string;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export type ScheduledTextState = Record<string, MessageInstance[]>;
|
|
36
|
+
|
|
37
|
+
export type GetTextRecordsArgs = {
|
|
38
|
+
startDate: string;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export interface TextRecord {
|
|
42
|
+
id: string;
|
|
43
|
+
message: string;
|
|
44
|
+
date: string;
|
|
45
|
+
sender: string;
|
|
46
|
+
region: Region;
|
|
47
|
+
image: string;
|
|
48
|
+
sendCount?: number;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface SendTextResponse {
|
|
52
|
+
message: string;
|
|
53
|
+
region: Region;
|
|
54
|
+
photoUrl?: string;
|
|
55
|
+
number: string;
|
|
56
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { CarSize } from "../../state/apis/volunteerApi/driver";
|
|
2
|
+
|
|
3
|
+
export type Campaign = {
|
|
4
|
+
mealsDonated: number;
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
export interface Shift {
|
|
8
|
+
id: string;
|
|
9
|
+
startTime: string;
|
|
10
|
+
open: boolean;
|
|
11
|
+
job: string;
|
|
12
|
+
restaurantMeals?: boolean;
|
|
13
|
+
duration: number;
|
|
14
|
+
endTime: string;
|
|
15
|
+
slots: number;
|
|
16
|
+
reservedOpen?: boolean;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export type FridgeRegion =
|
|
20
|
+
| "East Oakland"
|
|
21
|
+
| "West Oakland"
|
|
22
|
+
| "Berkeley"
|
|
23
|
+
| "CK Kitchen";
|
|
24
|
+
|
|
25
|
+
export interface Job {
|
|
26
|
+
id: string;
|
|
27
|
+
name: string;
|
|
28
|
+
location?: string;
|
|
29
|
+
locationInfo?: string;
|
|
30
|
+
locationCity?: string;
|
|
31
|
+
shifts: Shift[];
|
|
32
|
+
active: boolean;
|
|
33
|
+
ongoing: boolean;
|
|
34
|
+
description?: string;
|
|
35
|
+
campaign: string;
|
|
36
|
+
region?: FridgeRegion;
|
|
37
|
+
notes?: string;
|
|
38
|
+
photo?: string;
|
|
39
|
+
noTextAlert?: boolean;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface DriverJob extends Job {
|
|
43
|
+
carSizeRequired: CarSize;
|
|
44
|
+
destination: string;
|
|
45
|
+
dropoffNotes: string;
|
|
46
|
+
distance: number;
|
|
47
|
+
timeRequired?: number;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export interface GetShiftsResponse {
|
|
51
|
+
jobs: Job[];
|
|
52
|
+
shifts: Shift[];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface VolunteerCampaign {
|
|
56
|
+
name: string;
|
|
57
|
+
startDate?: string;
|
|
58
|
+
endDate?: string;
|
|
59
|
+
description?: string;
|
|
60
|
+
id: string;
|
|
61
|
+
shortDescription?: string;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export interface VolunteerHours {
|
|
65
|
+
id: string;
|
|
66
|
+
mealCount?: string;
|
|
67
|
+
time: string;
|
|
68
|
+
job: string;
|
|
69
|
+
status: string;
|
|
70
|
+
shift: string;
|
|
71
|
+
campaign?: string;
|
|
72
|
+
mealType?: "Entree" | "Soup";
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export interface EditHoursArgs {
|
|
76
|
+
id: string;
|
|
77
|
+
mealCount: string;
|
|
78
|
+
cancel: boolean;
|
|
79
|
+
date: string;
|
|
80
|
+
fridge: string;
|
|
81
|
+
mealType: "Soup" | "Entree";
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export interface SignUpForVolunteerShiftArgs {
|
|
85
|
+
shiftId: string;
|
|
86
|
+
jobId: string;
|
|
87
|
+
date: string;
|
|
88
|
+
contactSalesforceId?: string;
|
|
89
|
+
reserved?: boolean;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export interface Volunteer {
|
|
93
|
+
householdId: string;
|
|
94
|
+
name?: string;
|
|
95
|
+
id: string;
|
|
96
|
+
portalUsername?: string;
|
|
97
|
+
firstName?: string;
|
|
98
|
+
volunteerAgreement: boolean;
|
|
99
|
+
email: string;
|
|
100
|
+
calfreshVolunteer?: boolean;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export interface CreateVolunteerArgs {
|
|
104
|
+
email: string;
|
|
105
|
+
firstName: string;
|
|
106
|
+
lastName: string;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export interface CancelVolunteerHoursArgs {
|
|
110
|
+
hoursId: string;
|
|
111
|
+
contactId?: string;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export interface GetVolunteerHoursArgs {
|
|
115
|
+
campaignId: string;
|
|
116
|
+
contactId: string;
|
|
117
|
+
}
|