@jobsearch-works/firestore-models 1.1.14 → 2.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/dist/index.d.ts CHANGED
@@ -1,62 +1,37 @@
1
- type ClientStatus = "active" | "inactive";
2
- interface Client {
1
+ type AgentStatus = "active" | "inactive";
2
+ interface Agent {
3
3
  readonly id?: string;
4
4
  readonly name: string;
5
5
  readonly email: string;
6
- readonly status: ClientStatus;
7
- readonly resume?: string;
6
+ readonly status: AgentStatus;
7
+ readonly profilePicture?: string;
8
8
  readonly createdAt?: Date | string;
9
+ readonly updatedAt?: Date | string;
9
10
  }
10
11
 
11
- declare const ApplicationStatus: {
12
- readonly New: "new";
13
- readonly Submitted: "submitted";
14
- readonly Interviewing: "interviewing";
15
- readonly Accepted: "accepted";
16
- readonly Rejected: "rejected";
17
- readonly Withdrawn: "withdrawn";
18
- readonly Applying: "applying";
19
- readonly Suggested: "suggested";
20
- readonly Approved: "approved";
21
- };
22
- type ApplicationStatus = (typeof ApplicationStatus)[keyof typeof ApplicationStatus];
23
- interface Application {
12
+ interface AuthUser {
24
13
  id?: string;
25
- vacancyId: string;
26
- clientId: string;
27
- status: ApplicationStatus;
28
- assignedTo?: string;
29
- coverLetter?: string;
30
- resume?: string;
31
- submittedAt?: Date | string;
32
- interviewingAt?: Date | string;
33
- acceptedAt?: Date | string;
34
- rejectedAt?: Date | string;
35
- withdrawnAt?: Date | string;
36
- applyingAt?: Date | string;
37
- suggestedAt?: Date | string;
38
- approvedAt?: Date | string;
39
- company?: string;
40
- position?: string;
41
- location?: string;
42
- jobId?: string;
43
- advertisingUrl?: string;
44
- applicationUrl?: string;
45
- applicationDomain?: string;
46
- advertisingDomain?: string;
47
- description?: string;
48
- fullPageText?: string;
14
+ email: string;
15
+ displayName?: string;
16
+ photoURL?: string;
17
+ lastSignIn?: string;
18
+ emailVerified?: boolean;
49
19
  createdAt?: Date | string;
50
20
  updatedAt?: Date | string;
51
21
  }
52
22
 
53
- interface AuthUser {
23
+ interface UserPublic {
54
24
  id?: string;
55
- email: string;
56
25
  displayName?: string;
57
26
  photoURL?: string;
58
- lastSignIn?: string;
59
- emailVerified?: boolean;
27
+ bio?: string;
28
+ location?: string;
29
+ website?: string;
30
+ socialLinks?: {
31
+ linkedin?: string;
32
+ github?: string;
33
+ twitter?: string;
34
+ };
60
35
  createdAt?: Date | string;
61
36
  updatedAt?: Date | string;
62
37
  }
@@ -112,59 +87,52 @@ interface Vacancy {
112
87
  updatedAt?: Date | string;
113
88
  }
114
89
 
115
- type AgentStatus = "active" | "inactive";
116
- interface Agent {
117
- readonly id?: string;
118
- readonly name: string;
119
- readonly email: string;
120
- readonly status: AgentStatus;
121
- readonly profilePicture?: string;
122
- readonly createdAt?: Date | string;
123
- readonly updatedAt?: Date | string;
124
- }
125
-
126
- type ClientQuestionType = "text" | "select";
127
- declare const ClientQuestionTypeOptions: readonly ClientQuestionType[];
128
- interface ClientQuestion {
129
- id?: string;
130
- questionText: string;
131
- answerText?: string;
132
- type: ClientQuestionType;
133
- options?: string[];
134
- createdAt?: Date | string;
135
- updatedAt?: Date | string;
136
- }
137
-
138
- interface ClientData {
90
+ interface VacancySuggestion {
139
91
  id?: string;
140
- firstName: string;
141
- lastName: string;
142
- middleName?: string;
143
- preferredName?: string;
144
- email: string;
145
- phone: string;
146
- address: string;
147
- city: string;
148
- suburb: string;
149
- state: string;
150
- zip: string;
151
- country: string;
152
- linkedIn?: string;
153
- countryPhoneCode: string;
154
- nationality: string;
155
- dateOfBirth?: Date | string;
92
+ clientId: string;
93
+ vacancyId: string;
94
+ status: string;
156
95
  createdAt?: Date | string;
157
- updatedAt?: Date | string;
158
96
  }
159
97
 
160
- interface ClientLogin {
98
+ declare const ApplicationStatus: {
99
+ readonly New: "new";
100
+ readonly Submitted: "submitted";
101
+ readonly Interviewing: "interviewing";
102
+ readonly Accepted: "accepted";
103
+ readonly Rejected: "rejected";
104
+ readonly Withdrawn: "withdrawn";
105
+ readonly Applying: "applying";
106
+ readonly Suggested: "suggested";
107
+ readonly Approved: "approved";
108
+ };
109
+ type ApplicationStatus = (typeof ApplicationStatus)[keyof typeof ApplicationStatus];
110
+ interface Application {
161
111
  id?: string;
162
- userId: string;
163
- url: string;
164
- domain: string;
165
- username?: string;
166
- password: string;
167
- email?: string;
112
+ vacancyId: string;
113
+ clientId: string;
114
+ status: ApplicationStatus;
115
+ assignedTo?: string;
116
+ coverLetter?: string;
117
+ resume?: string;
118
+ submittedAt?: Date | string;
119
+ interviewingAt?: Date | string;
120
+ acceptedAt?: Date | string;
121
+ rejectedAt?: Date | string;
122
+ withdrawnAt?: Date | string;
123
+ applyingAt?: Date | string;
124
+ suggestedAt?: Date | string;
125
+ approvedAt?: Date | string;
126
+ company?: string;
127
+ position?: string;
128
+ location?: string;
129
+ jobId?: string;
130
+ advertisingUrl?: string;
131
+ applicationUrl?: string;
132
+ applicationDomain?: string;
133
+ advertisingDomain?: string;
134
+ description?: string;
135
+ fullPageText?: string;
168
136
  createdAt?: Date | string;
169
137
  updatedAt?: Date | string;
170
138
  }
@@ -180,15 +148,17 @@ interface ApplicationQuestion {
180
148
  updatedAt?: Date | string;
181
149
  }
182
150
 
183
- interface VacancySuggestion {
184
- id?: string;
185
- clientId: string;
186
- vacancyId: string;
187
- status: string;
188
- createdAt?: Date | string;
151
+ type ClientStatus = "active" | "inactive";
152
+ interface Client {
153
+ readonly id?: string;
154
+ readonly name: string;
155
+ readonly email: string;
156
+ readonly status: ClientStatus;
157
+ readonly resume?: string;
158
+ readonly createdAt?: Date | string;
189
159
  }
190
160
 
191
- interface GmailMessage {
161
+ interface ClientEmails {
192
162
  id?: string;
193
163
  messageId: string;
194
164
  threadId?: string;
@@ -214,71 +184,680 @@ interface GmailMessage {
214
184
  updatedAt?: Date | string;
215
185
  }
216
186
 
217
- interface TargetLocation {
218
- id?: string;
219
- country: string;
220
- cities: {
221
- name: string;
222
- areas: string[];
223
- }[];
187
+ interface ClientGmailTokens {
188
+ accessToken: string;
189
+ refreshToken: string;
190
+ email: string;
191
+ useThisEmail: boolean;
224
192
  }
225
193
 
226
- interface TargetJob {
227
- id?: string;
228
- category: VacancyCategory;
194
+ interface ClientInitialQuestion {
195
+ questionText: string;
196
+ answerText: string;
197
+ }
198
+
199
+ interface ClientInterview {
200
+ company: string;
229
201
  position: string;
230
- notes?: string;
202
+ type: string;
203
+ status: string;
204
+ transcript: string;
205
+ notes: string;
206
+ summary: string;
231
207
  }
232
208
 
233
- interface TargetPreferences {
209
+ declare const jobClassifications: {
210
+ readonly Accounting: readonly ["Accounts Officers/Clerks", "Analysis & Reporting", "Assistant Accountants", "Audit - External", "Audit - Internal", "Bookkeeping & Small Practice Accounting", "Business Services & Corporate Advisory", "Company Secretaries", "Cost Accounting", "Financial Accounting & Reporting", "Financial Managers & Controllers", "Forensic Accounting & Investigation", "Insolvency & Corporate Recovery", "Management Accounting & Budgeting", "Payroll", "Strategy & Planning", "Systems Accounting", "Taxation", "Other"];
211
+ readonly "Administration & Office Support": readonly ["Administrative Assistants", "Client & Sales Administration", "Contracts Administration", "Data Entry & Word Processing", "Office Management", "PA, EA & Secretarial", "Receptionists", "Records Management & Document Control", "Other"];
212
+ readonly "Advertising, Arts & Media": readonly ["Agency Account Management", "Art Direction", "Copywriting", "Editing & Publishing", "Event Management", "Journalism & Writing", "Media Buying, Planning & Strategy", "Photography", "Programming & Production", "Promotions", "Sales & Account Management", "Other"];
213
+ readonly "Banking & Financial Services": readonly ["Analysis & Reporting", "Banking - Business", "Banking - Corporate & Institutional", "Banking - Retail/Branch", "Client Services", "Compliance & Risk", "Corporate Finance & Investment Banking", "Financial Planning", "Funds Management", "Investments", "Mortgages", "Settlements", "Stockbroking & Trading", "Treasury", "Other"];
214
+ readonly "Call Centre & Customer Service": readonly ["Customer Service - Call Centre", "Customer Service - Customer Facing", "Customer Service - Manager", "Customer Service - Supervisor", "Customer Service - Team Leader", "Other"];
215
+ readonly "Community Services & Development": readonly ["Aged & Disability Support", "Child Welfare, Youth & Family Services", "Community Development", "Employment Services", "Housing & Homelessness Services", "Indigenous & Multicultural Services", "Management", "Volunteer Coordination & Support", "Other"];
216
+ readonly Construction: readonly ["Contracts Management", "Estimating", "Foreperson/Supervisors", "Health & Safety", "Project Management", "Site Management", "Surveying", "Other"];
217
+ readonly "Consulting & Strategy": readonly ["Corporate Development", "Management & Change Consulting", "Policy & Planning", "Strategy & Planning", "Other"];
218
+ readonly "Design & Architecture": readonly ["Architecture", "Fashion & Textile Design", "Graphic Design", "Illustration & Animation", "Industrial Design", "Interior Design", "Landscape Architecture", "Urban Design & Planning", "Other"];
219
+ readonly "Education & Training": readonly ["Childcare & Outside School Hours Care", "Library Services & Information Management", "Management - Schools", "Management - Universities", "Management - Vocational", "Research & Fellowships", "Student Services", "Teaching - Early Childhood", "Teaching - Primary", "Teaching - Secondary", "Teaching - Tertiary", "Teaching - Vocational", "Teaching Aides & Special Needs", "Tutoring", "Workplace Training & Assessment", "Other"];
220
+ readonly Engineering: readonly ["Aerospace Engineering", "Automotive Engineering", "Chemical Engineering", "Civil/Structural Engineering", "Electrical/Electronic Engineering", "Engineering Drafting", "Environmental Engineering", "Field Engineering", "Industrial Engineering", "Maintenance", "Mechanical Engineering", "Mining - Engineering & Maintenance", "Project Engineering", "Systems Engineering", "Other"];
221
+ readonly "Farming, Animals & Conservation": readonly ["Agronomy & Farm Services", "Animal Welfare", "Conservation, Parks & Wildlife", "Farm Labour", "Fishing & Aquaculture", "Forestry & Logging", "Horticulture", "Veterinary Services & Animal Welfare", "Other"];
222
+ readonly "Government & Defence": readonly ["Air Force", "Army", "Emergency Services", "Federal Government", "Government - Local", "Government - State", "Navy", "Police & Corrections", "Policy, Planning & Regulation", "Security & Intelligence", "Other"];
223
+ readonly "Healthcare & Medical": readonly ["Aged Care Nursing", "Ambulance/Paramedics", "Chiropractic & Osteopathic", "Dental", "General Practitioners", "Medical Imaging", "Nursing - Aged Care", "Nursing - General Medical & Surgical", "Nursing - High Acuity", "Nursing - Management", "Nursing - Midwifery, Neo-Natal, SCN & NICU", "Nursing - Paediatric", "Nursing - Psych, Forensic & Correctional Health", "Nursing - Theatre & Recovery", "Nursing - Other", "Pharmacy", "Physiotherapy, OT & Rehabilitation", "Psychology, Counselling & Social Work", "Speech Therapy", "Other"];
224
+ readonly "Hospitality & Tourism": readonly ["Bar & Beverage Staff", "Chefs/Cooks", "Front Office & Guest Services", "Gaming", "Housekeeping", "Kitchen & Sandwich Hands", "Management", "Reservations", "Tour Guides", "Travel Agents/Consultants", "Waiting Staff", "Other"];
225
+ readonly "Human Resources & Recruitment": readonly ["Consulting & Generalist HR", "Industrial & Employee Relations", "Management - Agency", "Management - Internal", "Occupational Health & Safety", "Organisational Development", "Recruitment - Agency", "Recruitment - Internal", "Remuneration & Benefits", "Training & Development", "Other"];
226
+ readonly "Information & Communication Technology": readonly ["Architects", "Business/Systems Analysts", "Consultants", "Database Development & Administration", "Developers/Programmers", "Engineering - Hardware", "Engineering - Network", "Help Desk & IT Support", "Management", "Networks & Systems Administration", "Product Management & Development", "Project Management", "Security", "Software Engineering", "Team Leaders", "Technical Writers", "Testing & Quality Assurance", "Web Development & Production", "Other"];
227
+ readonly "Insurance & Superannuation": readonly ["Actuarial", "Brokerage", "Claims", "Fund Administration", "Investments", "Risk Consulting", "Superannuation", "Underwriting", "Other"];
228
+ readonly Legal: readonly ["Generalists - In-house", "Generalists - Private Practice", "Law Clerks & Paralegals", "Legal Secretaries", "Litigation & Dispute Resolution", "Other"];
229
+ readonly "Manufacturing, Transport & Logistics": readonly ["Assembly & Process Work", "Couriers, Drivers & Postal Services", "Fleet Management", "Import/Export & Customs", "Machine Operators", "Maintenance", "Pickers & Packers", "Plant & Machinery Operators", "Production, Planning & Scheduling", "Purchasing, Procurement & Inventory", "Rail & Maritime Transport", "Road Transport", "Warehousing, Storage & Distribution", "Other"];
230
+ readonly "Marketing & Communications": readonly ["Brand Management", "Digital & Search Marketing", "Event Management", "Internal Communications", "Market Research & Analysis", "Marketing Assistants/Coordinators", "Marketing Communications", "Marketing Management", "Product Management & Development", "Public Relations & Corporate Affairs", "Other"];
231
+ readonly "Mining, Resources & Energy": readonly ["Analysis & Reporting", "Engineering", "Health, Safety & Environment", "Maintenance", "Management", "Mining - Operations", "Oil & Gas - Engineering & Maintenance", "Oil & Gas - Operations", "Power Generation & Distribution", "Surveying", "Other"];
232
+ readonly "Real Estate & Property": readonly ["Analysts", "Body Corporate & Facilities Management", "Commercial Sales, Leasing & Property Mgmt", "Residential Leasing & Property Management", "Residential Sales", "Retail & Property Development", "Valuation", "Other"];
233
+ readonly "Retail & Consumer Products": readonly ["Buying", "Management - Department/Assistant", "Management - Store", "Merchandisers", "Retail Assistants", "Sales Representatives/Consultants", "Supervisors/Team Leaders", "Other"];
234
+ readonly Sales: readonly ["Account & Relationship Management", "Business Development", "Direct Sales", "Sales Coordinators", "Sales Management", "Sales Representatives/Consultants", "Telesales & Internal Sales", "Other"];
235
+ readonly "Science & Technology": readonly ["Biological & Biomedical Sciences", "Chemistry & Physics", "Environmental, Earth & Geosciences", "Food Technology & Safety", "Laboratory & Technical Services", "Mathematics, Statistics & Information Sciences", "Quality Assurance & Control", "Other"];
236
+ readonly "Self Employment": readonly ["Contract/Temp", "Franchise", "Home Business", "Other"];
237
+ readonly "Sport & Recreation": readonly ["Coaching & Instruction", "Fitness & Personal Training", "Management", "Other"];
238
+ readonly "Trades & Services": readonly ["Air Conditioning & Refrigeration", "Automotive Trades", "Bakers & Pastry Chefs", "Building Trades", "Butchers", "Carpentry & Cabinet Making", "Cleaning Services", "Electricians", "Fitters, Turners & Machinists", "Floristry", "Gardening & Landscaping", "Hair & Beauty Services", "Labourers", "Locksmiths", "Maintenance & Handyperson Services", "Nannies & Babysitters", "Painters & Sign Writers", "Plumbers", "Printing & Publishing Services", "Security Services", "Tailors & Dressmakers", "Technicians", "Welders & Boilermakers", "Other"];
239
+ };
240
+
241
+ declare const locations: readonly [{
242
+ readonly id: "remote-anywhere";
243
+ readonly name: "Remote (Anywhere)";
244
+ readonly country: "Remote";
245
+ readonly region: "Global";
246
+ readonly tags: readonly ["remote", "work-from-home", "flexible"];
247
+ }, {
248
+ readonly id: "australia-anywhere";
249
+ readonly name: "Anywhere in Australia";
250
+ readonly country: "Australia";
251
+ readonly region: "Australia";
252
+ readonly tags: readonly ["country-wide", "australia", "flexible"];
253
+ }, {
254
+ readonly id: "sydney";
255
+ readonly name: "Sydney";
256
+ readonly country: "Australia";
257
+ readonly region: "New South Wales";
258
+ readonly tags: readonly ["major-city", "coastal", "business-hub", "tech-hub", "expat-friendly"];
259
+ }, {
260
+ readonly id: "melbourne";
261
+ readonly name: "Melbourne";
262
+ readonly country: "Australia";
263
+ readonly region: "Victoria";
264
+ readonly tags: readonly ["major-city", "cultural", "business-hub", "tech-hub", "expat-friendly"];
265
+ }, {
266
+ readonly id: "brisbane";
267
+ readonly name: "Brisbane";
268
+ readonly country: "Australia";
269
+ readonly region: "Queensland";
270
+ readonly tags: readonly ["major-city", "coastal", "business-hub", "expat-friendly"];
271
+ }, {
272
+ readonly id: "perth";
273
+ readonly name: "Perth";
274
+ readonly country: "Australia";
275
+ readonly region: "Western Australia";
276
+ readonly tags: readonly ["major-city", "coastal", "mining", "tech-hub", "expat-friendly"];
277
+ }, {
278
+ readonly id: "adelaide";
279
+ readonly name: "Adelaide";
280
+ readonly country: "Australia";
281
+ readonly region: "South Australia";
282
+ readonly tags: readonly ["major-city", "coastal", "wine-region"];
283
+ }, {
284
+ readonly id: "canberra";
285
+ readonly name: "Canberra";
286
+ readonly country: "Australia";
287
+ readonly region: "Australian Capital Territory";
288
+ readonly tags: readonly ["capital", "government", "education"];
289
+ }, {
290
+ readonly id: "hobart";
291
+ readonly name: "Hobart";
292
+ readonly country: "Australia";
293
+ readonly region: "Tasmania";
294
+ readonly tags: readonly ["capital", "coastal", "tourism"];
295
+ }, {
296
+ readonly id: "darwin";
297
+ readonly name: "Darwin";
298
+ readonly country: "Australia";
299
+ readonly region: "Northern Territory";
300
+ readonly tags: readonly ["capital", "coastal", "tropical"];
301
+ }, {
302
+ readonly id: "gold-coast";
303
+ readonly name: "Gold Coast";
304
+ readonly country: "Australia";
305
+ readonly region: "Queensland";
306
+ readonly tags: readonly ["coastal", "tourism", "lifestyle"];
307
+ }, {
308
+ readonly id: "newcastle";
309
+ readonly name: "Newcastle";
310
+ readonly country: "Australia";
311
+ readonly region: "New South Wales";
312
+ readonly tags: readonly ["coastal", "industrial", "port"];
313
+ }, {
314
+ readonly id: "wollongong";
315
+ readonly name: "Wollongong";
316
+ readonly country: "Australia";
317
+ readonly region: "New South Wales";
318
+ readonly tags: readonly ["coastal", "industrial", "university"];
319
+ }, {
320
+ readonly id: "geelong";
321
+ readonly name: "Geelong";
322
+ readonly country: "Australia";
323
+ readonly region: "Victoria";
324
+ readonly tags: readonly ["coastal", "industrial", "manufacturing"];
325
+ }, {
326
+ readonly id: "sunshine-coast";
327
+ readonly name: "Sunshine Coast";
328
+ readonly country: "Australia";
329
+ readonly region: "Queensland";
330
+ readonly tags: readonly ["coastal", "tourism", "lifestyle"];
331
+ }, {
332
+ readonly id: "central-coast";
333
+ readonly name: "Central Coast";
334
+ readonly country: "Australia";
335
+ readonly region: "New South Wales";
336
+ readonly tags: readonly ["coastal", "lifestyle", "commuter"];
337
+ }, {
338
+ readonly id: "toowoomba";
339
+ readonly name: "Toowoomba";
340
+ readonly country: "Australia";
341
+ readonly region: "Queensland";
342
+ readonly tags: readonly ["regional", "agricultural", "education"];
343
+ }, {
344
+ readonly id: "new-zealand-anywhere";
345
+ readonly name: "Anywhere in New Zealand";
346
+ readonly country: "New Zealand";
347
+ readonly region: "New Zealand";
348
+ readonly tags: readonly ["country-wide", "new-zealand", "flexible"];
349
+ }, {
350
+ readonly id: "auckland";
351
+ readonly name: "Auckland";
352
+ readonly country: "New Zealand";
353
+ readonly region: "Auckland";
354
+ readonly tags: readonly ["major-city", "coastal", "business-hub", "tech-hub"];
355
+ }, {
356
+ readonly id: "wellington";
357
+ readonly name: "Wellington";
358
+ readonly country: "New Zealand";
359
+ readonly region: "Wellington";
360
+ readonly tags: readonly ["capital", "coastal", "government", "tech-hub"];
361
+ }, {
362
+ readonly id: "christchurch";
363
+ readonly name: "Christchurch";
364
+ readonly country: "New Zealand";
365
+ readonly region: "Canterbury";
366
+ readonly tags: readonly ["major-city", "coastal", "rebuilding"];
367
+ }, {
368
+ readonly id: "hamilton";
369
+ readonly name: "Hamilton";
370
+ readonly country: "New Zealand";
371
+ readonly region: "Waikato";
372
+ readonly tags: readonly ["regional", "agricultural", "education"];
373
+ }, {
374
+ readonly id: "tauranga";
375
+ readonly name: "Tauranga";
376
+ readonly country: "New Zealand";
377
+ readonly region: "Bay of Plenty";
378
+ readonly tags: readonly ["coastal", "port", "lifestyle"];
379
+ }, {
380
+ readonly id: "dunedin";
381
+ readonly name: "Dunedin";
382
+ readonly country: "New Zealand";
383
+ readonly region: "Otago";
384
+ readonly tags: readonly ["coastal", "education", "heritage"];
385
+ }, {
386
+ readonly id: "palmerston-north";
387
+ readonly name: "Palmerston North";
388
+ readonly country: "New Zealand";
389
+ readonly region: "Manawatu-Wanganui";
390
+ readonly tags: readonly ["regional", "education", "agricultural"];
391
+ }, {
392
+ readonly id: "napier";
393
+ readonly name: "Napier";
394
+ readonly country: "New Zealand";
395
+ readonly region: "Hawke's Bay";
396
+ readonly tags: readonly ["coastal", "wine-region", "art-deco"];
397
+ }, {
398
+ readonly id: "hastings";
399
+ readonly name: "Hastings";
400
+ readonly country: "New Zealand";
401
+ readonly region: "Hawke's Bay";
402
+ readonly tags: readonly ["regional", "agricultural", "wine-region"];
403
+ }, {
404
+ readonly id: "nelson";
405
+ readonly name: "Nelson";
406
+ readonly country: "New Zealand";
407
+ readonly region: "Nelson";
408
+ readonly tags: readonly ["coastal", "tourism", "lifestyle"];
409
+ }, {
410
+ readonly id: "singapore";
411
+ readonly name: "Singapore";
412
+ readonly country: "Singapore";
413
+ readonly region: "Singapore";
414
+ readonly tags: readonly ["major-city", "business-hub", "financial", "tech-hub", "expat-friendly"];
415
+ }, {
416
+ readonly id: "dubai";
417
+ readonly name: "Dubai";
418
+ readonly country: "UAE";
419
+ readonly region: "Dubai";
420
+ readonly tags: readonly ["major-city", "business-hub", "financial", "tech-hub", "expat-friendly"];
421
+ }, {
422
+ readonly id: "tokyo";
423
+ readonly name: "Tokyo";
424
+ readonly country: "Japan";
425
+ readonly region: "Kanto";
426
+ readonly tags: readonly ["major-city", "business-hub", "tech-hub", "expat-friendly"];
427
+ }, {
428
+ readonly id: "hong-kong";
429
+ readonly name: "Hong Kong";
430
+ readonly country: "China";
431
+ readonly region: "Hong Kong";
432
+ readonly tags: readonly ["major-city", "business-hub", "financial", "expat-friendly"];
433
+ }, {
434
+ readonly id: "seoul";
435
+ readonly name: "Seoul";
436
+ readonly country: "South Korea";
437
+ readonly region: "Seoul";
438
+ readonly tags: readonly ["major-city", "business-hub", "tech-hub", "expat-friendly"];
439
+ }, {
440
+ readonly id: "taipei";
441
+ readonly name: "Taipei";
442
+ readonly country: "Taiwan";
443
+ readonly region: "Taipei";
444
+ readonly tags: readonly ["major-city", "business-hub", "tech-hub"];
445
+ }, {
446
+ readonly id: "shanghai";
447
+ readonly name: "Shanghai";
448
+ readonly country: "China";
449
+ readonly region: "Shanghai";
450
+ readonly tags: readonly ["major-city", "business-hub", "financial", "expat-friendly"];
451
+ }, {
452
+ readonly id: "shenzhen";
453
+ readonly name: "Shenzhen";
454
+ readonly country: "China";
455
+ readonly region: "Guangdong";
456
+ readonly tags: readonly ["major-city", "tech-hub", "manufacturing"];
457
+ }, {
458
+ readonly id: "us-anywhere";
459
+ readonly name: "Anywhere in United States";
460
+ readonly country: "United States";
461
+ readonly region: "United States";
462
+ readonly tags: readonly ["country-wide", "us", "flexible"];
463
+ }, {
464
+ readonly id: "new-york";
465
+ readonly name: "New York";
466
+ readonly country: "United States";
467
+ readonly region: "New York";
468
+ readonly tags: readonly ["major-city", "business-hub", "financial", "expat-friendly"];
469
+ }, {
470
+ readonly id: "san-francisco";
471
+ readonly name: "San Francisco";
472
+ readonly country: "United States";
473
+ readonly region: "California";
474
+ readonly tags: readonly ["major-city", "tech-hub", "coastal", "expat-friendly"];
475
+ }, {
476
+ readonly id: "los-angeles";
477
+ readonly name: "Los Angeles";
478
+ readonly country: "United States";
479
+ readonly region: "California";
480
+ readonly tags: readonly ["major-city", "entertainment", "coastal", "expat-friendly"];
481
+ }, {
482
+ readonly id: "chicago";
483
+ readonly name: "Chicago";
484
+ readonly country: "United States";
485
+ readonly region: "Illinois";
486
+ readonly tags: readonly ["major-city", "business-hub", "cultural"];
487
+ }, {
488
+ readonly id: "seattle";
489
+ readonly name: "Seattle";
490
+ readonly country: "United States";
491
+ readonly region: "Washington";
492
+ readonly tags: readonly ["major-city", "tech-hub", "coastal", "expat-friendly"];
493
+ }, {
494
+ readonly id: "boston";
495
+ readonly name: "Boston";
496
+ readonly country: "United States";
497
+ readonly region: "Massachusetts";
498
+ readonly tags: readonly ["major-city", "tech-hub", "education", "expat-friendly"];
499
+ }, {
500
+ readonly id: "austin";
501
+ readonly name: "Austin";
502
+ readonly country: "United States";
503
+ readonly region: "Texas";
504
+ readonly tags: readonly ["major-city", "tech-hub", "cultural"];
505
+ }, {
506
+ readonly id: "denver";
507
+ readonly name: "Denver";
508
+ readonly country: "United States";
509
+ readonly region: "Colorado";
510
+ readonly tags: readonly ["major-city", "outdoor", "lifestyle"];
511
+ }, {
512
+ readonly id: "portland";
513
+ readonly name: "Portland";
514
+ readonly country: "United States";
515
+ readonly region: "Oregon";
516
+ readonly tags: readonly ["major-city", "cultural", "lifestyle"];
517
+ }, {
518
+ readonly id: "miami";
519
+ readonly name: "Miami";
520
+ readonly country: "United States";
521
+ readonly region: "Florida";
522
+ readonly tags: readonly ["major-city", "coastal", "tourism"];
523
+ }, {
524
+ readonly id: "canada-anywhere";
525
+ readonly name: "Anywhere in Canada";
526
+ readonly country: "Canada";
527
+ readonly region: "Canada";
528
+ readonly tags: readonly ["country-wide", "canada", "flexible"];
529
+ }, {
530
+ readonly id: "toronto";
531
+ readonly name: "Toronto";
532
+ readonly country: "Canada";
533
+ readonly region: "Ontario";
534
+ readonly tags: readonly ["major-city", "business-hub", "tech-hub", "expat-friendly"];
535
+ }, {
536
+ readonly id: "vancouver";
537
+ readonly name: "Vancouver";
538
+ readonly country: "Canada";
539
+ readonly region: "British Columbia";
540
+ readonly tags: readonly ["major-city", "tech-hub", "coastal", "expat-friendly"];
541
+ }, {
542
+ readonly id: "montreal";
543
+ readonly name: "Montreal";
544
+ readonly country: "Canada";
545
+ readonly region: "Quebec";
546
+ readonly tags: readonly ["major-city", "cultural", "historical"];
547
+ }, {
548
+ readonly id: "calgary";
549
+ readonly name: "Calgary";
550
+ readonly country: "Canada";
551
+ readonly region: "Alberta";
552
+ readonly tags: readonly ["major-city", "business-hub", "energy"];
553
+ }, {
554
+ readonly id: "edmonton";
555
+ readonly name: "Edmonton";
556
+ readonly country: "Canada";
557
+ readonly region: "Alberta";
558
+ readonly tags: readonly ["major-city", "business-hub", "energy"];
559
+ }, {
560
+ readonly id: "ottawa";
561
+ readonly name: "Ottawa";
562
+ readonly country: "Canada";
563
+ readonly region: "Ontario";
564
+ readonly tags: readonly ["capital", "government", "education"];
565
+ }, {
566
+ readonly id: "winnipeg";
567
+ readonly name: "Winnipeg";
568
+ readonly country: "Canada";
569
+ readonly region: "Manitoba";
570
+ readonly tags: readonly ["major-city", "business-hub", "cultural"];
571
+ }, {
572
+ readonly id: "halifax";
573
+ readonly name: "Halifax";
574
+ readonly country: "Canada";
575
+ readonly region: "Nova Scotia";
576
+ readonly tags: readonly ["major-city", "coastal", "port"];
577
+ }, {
578
+ readonly id: "victoria";
579
+ readonly name: "Victoria";
580
+ readonly country: "Canada";
581
+ readonly region: "British Columbia";
582
+ readonly tags: readonly ["capital", "coastal", "lifestyle"];
583
+ }, {
584
+ readonly id: "saskatoon";
585
+ readonly name: "Saskatoon";
586
+ readonly country: "Canada";
587
+ readonly region: "Saskatchewan";
588
+ readonly tags: readonly ["major-city", "agricultural", "education"];
589
+ }, {
590
+ readonly id: "eu-anywhere";
591
+ readonly name: "Anywhere in European Union";
592
+ readonly country: "European Union";
593
+ readonly region: "EU";
594
+ readonly tags: readonly ["region-wide", "eu", "flexible"];
595
+ }, {
596
+ readonly id: "london";
597
+ readonly name: "London";
598
+ readonly country: "United Kingdom";
599
+ readonly region: "England";
600
+ readonly tags: readonly ["major-city", "business-hub", "financial", "expat-friendly"];
601
+ }, {
602
+ readonly id: "manchester";
603
+ readonly name: "Manchester";
604
+ readonly country: "United Kingdom";
605
+ readonly region: "England";
606
+ readonly tags: readonly ["major-city", "business-hub", "cultural"];
607
+ }, {
608
+ readonly id: "birmingham";
609
+ readonly name: "Birmingham";
610
+ readonly country: "United Kingdom";
611
+ readonly region: "England";
612
+ readonly tags: readonly ["major-city", "business-hub", "industrial"];
613
+ }, {
614
+ readonly id: "edinburgh";
615
+ readonly name: "Edinburgh";
616
+ readonly country: "United Kingdom";
617
+ readonly region: "Scotland";
618
+ readonly tags: readonly ["major-city", "cultural", "historical"];
619
+ }, {
620
+ readonly id: "glasgow";
621
+ readonly name: "Glasgow";
622
+ readonly country: "United Kingdom";
623
+ readonly region: "Scotland";
624
+ readonly tags: readonly ["major-city", "cultural", "industrial"];
625
+ }, {
626
+ readonly id: "cardiff";
627
+ readonly name: "Cardiff";
628
+ readonly country: "United Kingdom";
629
+ readonly region: "Wales";
630
+ readonly tags: readonly ["major-city", "capital", "cultural"];
631
+ }, {
632
+ readonly id: "belfast";
633
+ readonly name: "Belfast";
634
+ readonly country: "United Kingdom";
635
+ readonly region: "Northern Ireland";
636
+ readonly tags: readonly ["major-city", "capital", "cultural"];
637
+ }, {
638
+ readonly id: "leeds";
639
+ readonly name: "Leeds";
640
+ readonly country: "United Kingdom";
641
+ readonly region: "England";
642
+ readonly tags: readonly ["major-city", "business-hub", "cultural"];
643
+ }, {
644
+ readonly id: "liverpool";
645
+ readonly name: "Liverpool";
646
+ readonly country: "United Kingdom";
647
+ readonly region: "England";
648
+ readonly tags: readonly ["major-city", "coastal", "cultural"];
649
+ }, {
650
+ readonly id: "bristol";
651
+ readonly name: "Bristol";
652
+ readonly country: "United Kingdom";
653
+ readonly region: "England";
654
+ readonly tags: readonly ["major-city", "coastal", "cultural"];
655
+ }, {
656
+ readonly id: "berlin";
657
+ readonly name: "Berlin";
658
+ readonly country: "Germany";
659
+ readonly region: "Berlin";
660
+ readonly tags: readonly ["major-city", "tech-hub", "cultural", "expat-friendly"];
661
+ }, {
662
+ readonly id: "paris";
663
+ readonly name: "Paris";
664
+ readonly country: "France";
665
+ readonly region: "Ile-de-France";
666
+ readonly tags: readonly ["major-city", "business-hub", "cultural", "expat-friendly"];
667
+ }, {
668
+ readonly id: "amsterdam";
669
+ readonly name: "Amsterdam";
670
+ readonly country: "Netherlands";
671
+ readonly region: "North Holland";
672
+ readonly tags: readonly ["major-city", "tech-hub", "cultural", "expat-friendly"];
673
+ }, {
674
+ readonly id: "dublin";
675
+ readonly name: "Dublin";
676
+ readonly country: "Ireland";
677
+ readonly region: "Dublin";
678
+ readonly tags: readonly ["major-city", "tech-hub", "business-hub", "expat-friendly"];
679
+ }, {
680
+ readonly id: "barcelona";
681
+ readonly name: "Barcelona";
682
+ readonly country: "Spain";
683
+ readonly region: "Catalonia";
684
+ readonly tags: readonly ["major-city", "coastal", "cultural", "expat-friendly"];
685
+ }, {
686
+ readonly id: "madrid";
687
+ readonly name: "Madrid";
688
+ readonly country: "Spain";
689
+ readonly region: "Madrid";
690
+ readonly tags: readonly ["major-city", "business-hub", "cultural"];
691
+ }, {
692
+ readonly id: "rome";
693
+ readonly name: "Rome";
694
+ readonly country: "Italy";
695
+ readonly region: "Lazio";
696
+ readonly tags: readonly ["major-city", "capital", "historical"];
697
+ }, {
698
+ readonly id: "milan";
699
+ readonly name: "Milan";
700
+ readonly country: "Italy";
701
+ readonly region: "Lombardy";
702
+ readonly tags: readonly ["major-city", "business-hub", "fashion"];
703
+ }, {
704
+ readonly id: "vienna";
705
+ readonly name: "Vienna";
706
+ readonly country: "Austria";
707
+ readonly region: "Vienna";
708
+ readonly tags: readonly ["major-city", "capital", "cultural"];
709
+ }, {
710
+ readonly id: "zurich";
711
+ readonly name: "Zurich";
712
+ readonly country: "Switzerland";
713
+ readonly region: "Zurich";
714
+ readonly tags: readonly ["major-city", "business-hub", "financial", "expat-friendly"];
715
+ }, {
716
+ readonly id: "stockholm";
717
+ readonly name: "Stockholm";
718
+ readonly country: "Sweden";
719
+ readonly region: "Stockholm";
720
+ readonly tags: readonly ["major-city", "tech-hub", "business-hub", "expat-friendly"];
721
+ }, {
722
+ readonly id: "abudhabi";
723
+ readonly name: "Abu Dhabi";
724
+ readonly country: "UAE";
725
+ readonly region: "Abu Dhabi";
726
+ readonly tags: readonly ["major-city", "business-hub", "financial", "expat-friendly"];
727
+ }];
728
+
729
+ type JobCategory = keyof typeof jobClassifications;
730
+ type JobTitle = (typeof jobClassifications)[JobCategory][number];
731
+ type LocationId = (typeof locations)[number]["id"];
732
+ interface ClientJobPreferences {
234
733
  id?: string;
235
734
  clientId: string;
236
- locations: TargetLocation[];
237
- jobs: TargetJob[];
735
+ desiredPositions: JobTitle[];
736
+ categories: JobCategory[];
737
+ locations: LocationId[];
738
+ minSalary: number;
739
+ maxSalary?: number;
740
+ currency: string;
741
+ industries: string[];
238
742
  createdAt: Date;
239
743
  updatedAt: Date;
240
744
  }
241
745
 
242
- interface ResumeLink {
746
+ interface ClientLogin {
243
747
  id?: string;
244
- title: string;
748
+ userId: string;
245
749
  url: string;
246
- description: string;
750
+ domain: string;
751
+ username?: string;
752
+ password: string;
753
+ email?: string;
247
754
  createdAt?: Date | string;
248
- createdBy: string;
249
- clientId: string;
755
+ updatedAt?: Date | string;
756
+ }
757
+
758
+ interface ClientPersonalData {
759
+ id?: string;
760
+ firstName: string;
761
+ lastName: string;
762
+ middleName?: string;
763
+ preferredName?: string;
764
+ email: string;
765
+ phone: string;
766
+ address: string;
767
+ city: string;
768
+ suburb: string;
769
+ state: string;
770
+ zip: string;
771
+ country: string;
772
+ linkedIn?: string;
773
+ countryPhoneCode: string;
774
+ nationality: string;
775
+ dateOfBirth?: Date | string;
776
+ createdAt?: Date | string;
777
+ updatedAt?: Date | string;
778
+ }
779
+
780
+ interface ClientQuestion {
781
+ id?: string;
782
+ questionText: string;
783
+ answerText?: string;
784
+ tags: string[];
785
+ importance: string;
786
+ createdAt?: Date | string;
787
+ updatedAt?: Date | string;
788
+ }
789
+
790
+ interface ClientResume {
791
+ title: string;
792
+ createdAt: Date | string;
793
+ updatedAt: Date | string;
794
+ format: string;
795
+ storagePath: string;
796
+ notes: string;
797
+ isActive: boolean;
798
+ about: {
799
+ summary: string;
800
+ };
801
+ education: Array<{
802
+ school: string;
803
+ degree: string;
804
+ field: string;
805
+ startDate: Date | string;
806
+ endDate?: Date | string;
807
+ }>;
808
+ workExperience: Array<{
809
+ company: string;
810
+ role: string;
811
+ startDate: Date | string;
812
+ endDate?: Date | string;
813
+ description: string;
814
+ }>;
815
+ }
816
+
817
+ interface ClientWebsitePreferences {
818
+ theme: string;
819
+ notifications: string;
250
820
  }
251
821
 
252
822
  declare const firestorePaths: {
253
823
  readonly clients: {
254
824
  readonly collection: () => string;
255
- readonly doc: (clientId: string) => string;
256
- readonly applications: {
825
+ readonly doc: (id: string) => string;
826
+ readonly personalData: (id: string) => string;
827
+ readonly jobPreferences: (id: string) => string;
828
+ readonly websitePreferences: (id: string) => string;
829
+ readonly gmailTokens: (id: string) => string;
830
+ readonly emails: {
257
831
  readonly collection: (clientId: string) => string;
258
- readonly doc: (clientId: string, applicationId: string) => string;
259
- readonly questions: {
260
- readonly collection: (clientId: string, applicationId: string) => string;
261
- readonly doc: (clientId: string, applicationId: string, questionId: string) => string;
262
- };
832
+ readonly doc: (clientId: string, emailId: string) => string;
263
833
  };
264
- readonly emails: {
834
+ readonly questions: {
265
835
  readonly collection: (clientId: string) => string;
266
- readonly doc: (clientId: string, messageId: string) => string;
836
+ readonly doc: (clientId: string, questionId: string) => string;
837
+ };
838
+ readonly initialQuestions: {
839
+ readonly collection: (clientId: string) => string;
840
+ readonly doc: (clientId: string, questionId: string) => string;
267
841
  };
268
842
  readonly logins: {
269
843
  readonly collection: (clientId: string) => string;
270
- readonly doc: (clientId: string, domain: string) => string;
844
+ readonly doc: (clientId: string, loginId: string) => string;
271
845
  };
272
- readonly preferences: {
273
- readonly target: (clientId: string) => string;
846
+ readonly resumes: {
847
+ readonly collection: (clientId: string) => string;
848
+ readonly doc: (clientId: string, resumeId: string) => string;
274
849
  };
275
- readonly questions: {
850
+ readonly applications: {
276
851
  readonly collection: (clientId: string) => string;
277
- readonly doc: (clientId: string, questionId: string) => string;
852
+ readonly doc: (clientId: string, applicationId: string) => string;
853
+ readonly questions: {
854
+ readonly collection: (clientId: string, applicationId: string) => string;
855
+ readonly doc: (clientId: string, applicationId: string, questionId: string) => string;
856
+ };
278
857
  };
279
- readonly resumeLinks: {
858
+ readonly interviews: {
280
859
  readonly collection: (clientId: string) => string;
281
- readonly doc: (clientId: string, resumeLinkId: string) => string;
860
+ readonly doc: (clientId: string, interviewId: string) => string;
282
861
  };
283
862
  readonly vacancySuggestions: {
284
863
  readonly collection: (clientId: string) => string;
@@ -287,28 +866,20 @@ declare const firestorePaths: {
287
866
  };
288
867
  readonly users: {
289
868
  readonly collection: () => string;
290
- readonly doc: (userId: string) => string;
869
+ readonly doc: (id: string) => string;
291
870
  };
292
- readonly vacancies: {
871
+ readonly usersPub: {
293
872
  readonly collection: () => string;
294
- readonly doc: (vacancyId: string) => string;
873
+ readonly doc: (id: string) => string;
295
874
  };
296
- readonly agents: {
875
+ readonly vacancies: {
297
876
  readonly collection: () => string;
298
- readonly doc: (agentId: string) => string;
877
+ readonly doc: (id: string) => string;
299
878
  };
300
- readonly clientData: {
879
+ readonly agents: {
301
880
  readonly collection: () => string;
302
- readonly doc: (clientDataId: string) => string;
303
- };
304
- readonly clientLogins: {
305
- readonly collection: (clientId: string) => string;
306
- readonly doc: (clientId: string, domain: string) => string;
307
- };
308
- readonly clientEmails: {
309
- readonly collection: (clientId: string) => string;
310
- readonly doc: (clientId: string, messageId: string) => string;
881
+ readonly doc: (id: string) => string;
311
882
  };
312
883
  };
313
884
 
314
- export { Agent, AgentStatus, Application, ApplicationQuestion, ApplicationQuestionType, ApplicationQuestionTypeOptions, ApplicationStatus, AuthUser, Client, ClientData, ClientLogin, ClientQuestion, ClientQuestionType, ClientQuestionTypeOptions, ClientStatus, GmailMessage, ResumeLink, TargetJob, TargetLocation, TargetPreferences, Vacancy, VacancyCategory, VacancySuggestion, firestorePaths };
885
+ export { Agent, AgentStatus, Application, ApplicationQuestion, ApplicationQuestionType, ApplicationQuestionTypeOptions, ApplicationStatus, AuthUser, Client, ClientEmails, ClientGmailTokens, ClientInitialQuestion, ClientInterview, ClientJobPreferences, ClientLogin, ClientPersonalData, ClientQuestion, ClientResume, ClientStatus, ClientWebsitePreferences, JobCategory, JobTitle, LocationId, UserPublic, Vacancy, VacancyCategory, VacancySuggestion, firestorePaths };