@geekmidas/client 0.4.0 → 0.5.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.
Files changed (71) hide show
  1. package/dist/auth-fetcher.cjs +0 -1
  2. package/dist/auth-fetcher.cjs.map +1 -1
  3. package/dist/auth-fetcher.d.cts +1 -1
  4. package/dist/auth-fetcher.d.cts.map +1 -1
  5. package/dist/auth-fetcher.d.mts +1 -1
  6. package/dist/auth-fetcher.d.mts.map +1 -1
  7. package/dist/auth-fetcher.mjs +0 -1
  8. package/dist/auth-fetcher.mjs.map +1 -1
  9. package/dist/endpoint-hooks.cjs +10 -5
  10. package/dist/endpoint-hooks.cjs.map +1 -1
  11. package/dist/endpoint-hooks.d.cts +2 -2
  12. package/dist/endpoint-hooks.d.cts.map +1 -1
  13. package/dist/endpoint-hooks.d.mts +2 -2
  14. package/dist/endpoint-hooks.d.mts.map +1 -1
  15. package/dist/endpoint-hooks.mjs +10 -5
  16. package/dist/endpoint-hooks.mjs.map +1 -1
  17. package/dist/fetcher-5fnBE7Dk.mjs.map +1 -1
  18. package/dist/fetcher-CgLEaIAC.cjs.map +1 -1
  19. package/dist/fetcher.d.cts +1 -1
  20. package/dist/fetcher.d.cts.map +1 -1
  21. package/dist/fetcher.d.mts +1 -1
  22. package/dist/fetcher.d.mts.map +1 -1
  23. package/dist/infer.d.cts.map +1 -1
  24. package/dist/infer.d.mts.map +1 -1
  25. package/dist/openapi-hooks.cjs.map +1 -1
  26. package/dist/openapi-hooks.d.cts +2 -2
  27. package/dist/openapi-hooks.d.cts.map +1 -1
  28. package/dist/openapi-hooks.d.mts +2 -2
  29. package/dist/openapi-hooks.d.mts.map +1 -1
  30. package/dist/openapi-hooks.mjs.map +1 -1
  31. package/dist/openapi-types.d.cts.map +1 -1
  32. package/dist/openapi-types.d.mts.map +1 -1
  33. package/dist/openapi.cjs.map +1 -1
  34. package/dist/openapi.mjs.map +1 -1
  35. package/dist/react-query.cjs.map +1 -1
  36. package/dist/react-query.d.cts +1 -1
  37. package/dist/react-query.d.cts.map +1 -1
  38. package/dist/react-query.d.mts +1 -1
  39. package/dist/react-query.d.mts.map +1 -1
  40. package/dist/react-query.mjs.map +1 -1
  41. package/dist/{types-FxummKaL.d.mts → types-4K4N-Fl1.d.cts} +2 -2
  42. package/dist/types-4K4N-Fl1.d.cts.map +1 -0
  43. package/dist/{types-vutATyWv.d.cts → types-hhkZWjQn.d.mts} +2 -2
  44. package/dist/types-hhkZWjQn.d.mts.map +1 -0
  45. package/dist/types.d.cts +1 -1
  46. package/dist/types.d.mts +1 -1
  47. package/package.json +3 -3
  48. package/src/__tests__/auth-fetcher.spec.ts +476 -476
  49. package/src/__tests__/endpoint-hooks.spec.tsx +348 -348
  50. package/src/__tests__/fetcher.spec.ts +403 -403
  51. package/src/__tests__/infer.integration.spec.ts +171 -171
  52. package/src/__tests__/infer.spec.ts +182 -182
  53. package/src/__tests__/method-restrictions.spec.tsx +165 -165
  54. package/src/__tests__/openapi-hooks.spec.tsx +536 -536
  55. package/src/__tests__/react-query-infinite.spec.tsx +989 -989
  56. package/src/__tests__/react-query-invalidation.spec.tsx +223 -222
  57. package/src/__tests__/react-query.spec.tsx +567 -567
  58. package/src/__tests__/setup.ts +260 -260
  59. package/src/__tests__/types.spec.ts +127 -127
  60. package/src/__tests__/url-parsing.spec.ts +191 -191
  61. package/src/auth-fetcher.ts +160 -162
  62. package/src/endpoint-hooks.ts +151 -156
  63. package/src/fetcher.ts +163 -163
  64. package/src/infer.ts +64 -63
  65. package/src/openapi-hooks.ts +146 -146
  66. package/src/openapi-types.d.ts +428 -428
  67. package/src/openapi.json +593 -593
  68. package/src/react-query.ts +281 -281
  69. package/src/types.ts +121 -124
  70. package/dist/types-FxummKaL.d.mts.map +0 -1
  71. package/dist/types-vutATyWv.d.cts.map +0 -1
package/src/openapi.json CHANGED
@@ -1,595 +1,595 @@
1
1
  {
2
- "openapi": "3.0.0",
3
- "info": {
4
- "title": "API Documentation",
5
- "version": "1.0.0",
6
- "description": "Auto-generated API documentation from endpoints"
7
- },
8
- "paths": {
9
- "/explore/jobs": {
10
- "get": {
11
- "operationId": "exploreJobs",
12
- "responses": {
13
- "200": {
14
- "description": "Successful response",
15
- "content": {
16
- "application/json": {
17
- "schema": {
18
- "$schema": "https://json-schema.org/draft/2020-12/schema",
19
- "type": "object",
20
- "properties": {
21
- "items": {
22
- "type": "array",
23
- "items": {
24
- "type": "object",
25
- "properties": {
26
- "role": {
27
- "type": "string",
28
- "minLength": 1,
29
- "maxLength": 255
30
- },
31
- "type": {
32
- "type": "string",
33
- "enum": [
34
- "Server",
35
- "Waiter",
36
- "Host",
37
- "Bartender",
38
- "KitchenPorter",
39
- "Steward",
40
- "BusPerson",
41
- "Dishwasher"
42
- ]
43
- },
44
- "overview": {
45
- "type": "string",
46
- "minLength": 1
47
- },
48
- "qualifications": {
49
- "type": "string",
50
- "minLength": 1
51
- },
52
- "hourlyRate": {
53
- "type": "object",
54
- "properties": {
55
- "max": {
56
- "type": "number"
57
- },
58
- "min": {
59
- "type": "number"
60
- }
61
- },
62
- "required": ["max", "min"],
63
- "additionalProperties": false
64
- },
65
- "dateNeeded": {
66
- "type": "object",
67
- "properties": {
68
- "from": {
69
- "type": "string"
70
- },
71
- "to": {
72
- "type": "string"
73
- }
74
- },
75
- "required": ["from", "to"],
76
- "additionalProperties": false
77
- },
78
- "shiftHours": {
79
- "type": "object",
80
- "properties": {
81
- "from": {
82
- "type": "string"
83
- },
84
- "to": {
85
- "type": "string"
86
- }
87
- },
88
- "required": ["from", "to"],
89
- "additionalProperties": false
90
- },
91
- "id": {
92
- "type": "string",
93
- "format": "uuid",
94
- "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
95
- },
96
- "createdAt": {
97
- "type": "string",
98
- "format": "date-time",
99
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
100
- },
101
- "updatedAt": {
102
- "type": "string",
103
- "format": "date-time",
104
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
105
- },
106
- "status": {
107
- "type": "string",
108
- "enum": ["Draft", "Active", "Closed", "Filled"]
109
- },
110
- "business": {
111
- "type": "object",
112
- "properties": {
113
- "name": {
114
- "type": "string",
115
- "minLength": 1
116
- },
117
- "description": {
118
- "type": "string"
119
- },
120
- "tags": {
121
- "type": "array",
122
- "items": {
123
- "type": "string"
124
- }
125
- },
126
- "id": {
127
- "type": "string",
128
- "format": "uuid",
129
- "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
130
- },
131
- "createdAt": {
132
- "type": "string",
133
- "format": "date-time",
134
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
135
- },
136
- "updatedAt": {
137
- "type": "string",
138
- "format": "date-time",
139
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
140
- },
141
- "rating": {
142
- "type": "number",
143
- "minimum": 0,
144
- "maximum": 5
145
- },
146
- "status": {
147
- "type": "string",
148
- "enum": [
149
- "Active",
150
- "Inactive",
151
- "PendingVerification",
152
- "Suspended"
153
- ]
154
- },
155
- "ratingCount": {
156
- "type": "integer",
157
- "minimum": 0,
158
- "maximum": 9007199254740991
159
- },
160
- "address": {
161
- "type": "object",
162
- "properties": {
163
- "id": {
164
- "type": "string",
165
- "format": "uuid",
166
- "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
167
- },
168
- "createdAt": {
169
- "type": "string",
170
- "format": "date-time",
171
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
172
- },
173
- "updatedAt": {
174
- "type": "string",
175
- "format": "date-time",
176
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
177
- },
178
- "placeId": {
179
- "anyOf": [
180
- {
181
- "type": "string"
182
- },
183
- {
184
- "type": "null"
185
- }
186
- ]
187
- },
188
- "text": {
189
- "type": "string",
190
- "minLength": 1
191
- },
192
- "city": {
193
- "type": "string",
194
- "minLength": 1
195
- },
196
- "state": {
197
- "type": "string",
198
- "minLength": 1
199
- },
200
- "postalCode": {
201
- "type": "string",
202
- "minLength": 1
203
- },
204
- "country": {
205
- "type": "string",
206
- "minLength": 1
207
- },
208
- "lat": {
209
- "type": "number"
210
- },
211
- "lng": {
212
- "type": "number"
213
- }
214
- },
215
- "required": [
216
- "id",
217
- "createdAt",
218
- "updatedAt",
219
- "text",
220
- "city",
221
- "state",
222
- "postalCode",
223
- "country",
224
- "lat",
225
- "lng"
226
- ],
227
- "additionalProperties": false
228
- },
229
- "image": {
230
- "type": "object",
231
- "properties": {
232
- "id": {
233
- "type": "string",
234
- "format": "uuid",
235
- "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
236
- },
237
- "createdAt": {
238
- "type": "string",
239
- "format": "date-time",
240
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
241
- },
242
- "updatedAt": {
243
- "type": "string",
244
- "format": "date-time",
245
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
246
- },
247
- "mimeType": {
248
- "type": "string",
249
- "enum": [
250
- "image/jpeg",
251
- "image/png",
252
- "application/pdf",
253
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
254
- ]
255
- },
256
- "name": {
257
- "type": "string"
258
- },
259
- "url": {
260
- "type": "string",
261
- "format": "uri"
262
- },
263
- "contentLength": {
264
- "type": "number"
265
- },
266
- "status": {
267
- "type": "string",
268
- "enum": [
269
- "Pending",
270
- "Uploaded",
271
- "Failed",
272
- "Deleted"
273
- ]
274
- }
275
- },
276
- "required": [
277
- "id",
278
- "createdAt",
279
- "updatedAt",
280
- "mimeType",
281
- "name",
282
- "url",
283
- "contentLength",
284
- "status"
285
- ],
286
- "additionalProperties": false
287
- },
288
- "licenses": {
289
- "type": "array",
290
- "items": {
291
- "type": "object",
292
- "properties": {
293
- "id": {
294
- "type": "string",
295
- "format": "uuid",
296
- "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
297
- },
298
- "createdAt": {
299
- "type": "string",
300
- "format": "date-time",
301
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
302
- },
303
- "updatedAt": {
304
- "type": "string",
305
- "format": "date-time",
306
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
307
- },
308
- "mimeType": {
309
- "type": "string",
310
- "enum": [
311
- "image/jpeg",
312
- "image/png",
313
- "application/pdf",
314
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
315
- ]
316
- },
317
- "name": {
318
- "type": "string"
319
- },
320
- "url": {
321
- "type": "string",
322
- "format": "uri"
323
- },
324
- "contentLength": {
325
- "type": "number"
326
- },
327
- "status": {
328
- "type": "string",
329
- "enum": [
330
- "Pending",
331
- "Uploaded",
332
- "Failed",
333
- "Deleted"
334
- ]
335
- }
336
- },
337
- "required": [
338
- "id",
339
- "createdAt",
340
- "updatedAt",
341
- "mimeType",
342
- "name",
343
- "url",
344
- "contentLength",
345
- "status"
346
- ],
347
- "additionalProperties": false
348
- }
349
- }
350
- },
351
- "required": [
352
- "name",
353
- "description",
354
- "tags",
355
- "id",
356
- "createdAt",
357
- "updatedAt",
358
- "rating",
359
- "status",
360
- "ratingCount",
361
- "address",
362
- "image",
363
- "licenses"
364
- ],
365
- "additionalProperties": false
366
- },
367
- "appliedAt": {
368
- "anyOf": [
369
- {
370
- "type": "string",
371
- "format": "date-time",
372
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
373
- },
374
- {
375
- "type": "null"
376
- }
377
- ]
378
- },
379
- "closedAt": {
380
- "anyOf": [
381
- {
382
- "type": "string",
383
- "format": "date-time",
384
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
385
- },
386
- {
387
- "type": "null"
388
- }
389
- ]
390
- },
391
- "closeReason": {
392
- "anyOf": [
393
- {
394
- "type": "string"
395
- },
396
- {
397
- "type": "null"
398
- }
399
- ]
400
- },
401
- "distanceKm": {
402
- "type": "number"
403
- },
404
- "roleMatch": {
405
- "type": "boolean"
406
- },
407
- "hourlyRateMatch": {
408
- "type": "boolean"
409
- },
410
- "hasApplied": {
411
- "default": false,
412
- "type": "boolean"
413
- }
414
- },
415
- "required": [
416
- "role",
417
- "type",
418
- "overview",
419
- "qualifications",
420
- "hourlyRate",
421
- "dateNeeded",
422
- "shiftHours",
423
- "id",
424
- "createdAt",
425
- "updatedAt",
426
- "status",
427
- "business",
428
- "distanceKm",
429
- "roleMatch",
430
- "hourlyRateMatch",
431
- "hasApplied"
432
- ],
433
- "additionalProperties": false
434
- }
435
- },
436
- "pagination": {
437
- "type": "object",
438
- "properties": {
439
- "total": {
440
- "type": "number"
441
- },
442
- "cursor": {
443
- "type": "string"
444
- },
445
- "hasMore": {
446
- "type": "boolean"
447
- }
448
- },
449
- "required": ["total", "hasMore"],
450
- "additionalProperties": false
451
- }
452
- },
453
- "required": ["items", "pagination"],
454
- "additionalProperties": false
455
- }
456
- }
457
- }
458
- }
459
- },
460
- "parameters": [
461
- {
462
- "name": "filter",
463
- "in": "query",
464
- "required": false,
465
- "schema": {
466
- "type": "object",
467
- "properties": {
468
- "radius": {
469
- "type": "integer",
470
- "minimum": 0,
471
- "maximum": 9007199254740991
472
- },
473
- "types": {
474
- "type": "array",
475
- "items": {
476
- "type": "string",
477
- "enum": [
478
- "Server",
479
- "Waiter",
480
- "Host",
481
- "Bartender",
482
- "KitchenPorter",
483
- "Steward",
484
- "BusPerson",
485
- "Dishwasher"
486
- ]
487
- }
488
- },
489
- "hourlyRate": {
490
- "type": "object",
491
- "properties": {
492
- "max": {
493
- "type": "number"
494
- },
495
- "min": {
496
- "type": "number"
497
- }
498
- },
499
- "additionalProperties": false
500
- },
501
- "dateNeeded": {
502
- "type": "object",
503
- "properties": {
504
- "from": {
505
- "type": "string"
506
- },
507
- "to": {
508
- "type": "string"
509
- }
510
- },
511
- "additionalProperties": false
512
- },
513
- "shiftHours": {
514
- "type": "object",
515
- "properties": {
516
- "from": {
517
- "type": "string"
518
- },
519
- "to": {
520
- "type": "string"
521
- }
522
- },
523
- "additionalProperties": false
524
- },
525
- "box": {
526
- "type": "object",
527
- "properties": {
528
- "topLeft": {
529
- "type": "object",
530
- "properties": {
531
- "lat": {
532
- "type": "number"
533
- },
534
- "lng": {
535
- "type": "number"
536
- }
537
- },
538
- "required": ["lat", "lng"],
539
- "additionalProperties": false
540
- },
541
- "bottomRight": {
542
- "type": "object",
543
- "properties": {
544
- "lat": {
545
- "type": "number"
546
- },
547
- "lng": {
548
- "type": "number"
549
- }
550
- },
551
- "required": ["lat", "lng"],
552
- "additionalProperties": false
553
- }
554
- },
555
- "required": ["topLeft", "bottomRight"],
556
- "additionalProperties": false
557
- },
558
- "name": {
559
- "type": "string",
560
- "minLength": 1
561
- },
562
- "city": {
563
- "type": "string",
564
- "minLength": 1
565
- }
566
- },
567
- "additionalProperties": false
568
- }
569
- },
570
- {
571
- "name": "pagination",
572
- "in": "query",
573
- "required": false,
574
- "schema": {
575
- "type": "object",
576
- "properties": {
577
- "cursor": {
578
- "type": "string"
579
- },
580
- "limit": {
581
- "default": 20,
582
- "type": "integer",
583
- "exclusiveMinimum": 0,
584
- "maximum": 100
585
- }
586
- },
587
- "required": ["limit"],
588
- "additionalProperties": false
589
- }
590
- }
591
- ]
592
- }
593
- }
594
- }
2
+ "openapi": "3.0.0",
3
+ "info": {
4
+ "title": "API Documentation",
5
+ "version": "1.0.0",
6
+ "description": "Auto-generated API documentation from endpoints"
7
+ },
8
+ "paths": {
9
+ "/explore/jobs": {
10
+ "get": {
11
+ "operationId": "exploreJobs",
12
+ "responses": {
13
+ "200": {
14
+ "description": "Successful response",
15
+ "content": {
16
+ "application/json": {
17
+ "schema": {
18
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
19
+ "type": "object",
20
+ "properties": {
21
+ "items": {
22
+ "type": "array",
23
+ "items": {
24
+ "type": "object",
25
+ "properties": {
26
+ "role": {
27
+ "type": "string",
28
+ "minLength": 1,
29
+ "maxLength": 255
30
+ },
31
+ "type": {
32
+ "type": "string",
33
+ "enum": [
34
+ "Server",
35
+ "Waiter",
36
+ "Host",
37
+ "Bartender",
38
+ "KitchenPorter",
39
+ "Steward",
40
+ "BusPerson",
41
+ "Dishwasher"
42
+ ]
43
+ },
44
+ "overview": {
45
+ "type": "string",
46
+ "minLength": 1
47
+ },
48
+ "qualifications": {
49
+ "type": "string",
50
+ "minLength": 1
51
+ },
52
+ "hourlyRate": {
53
+ "type": "object",
54
+ "properties": {
55
+ "max": {
56
+ "type": "number"
57
+ },
58
+ "min": {
59
+ "type": "number"
60
+ }
61
+ },
62
+ "required": ["max", "min"],
63
+ "additionalProperties": false
64
+ },
65
+ "dateNeeded": {
66
+ "type": "object",
67
+ "properties": {
68
+ "from": {
69
+ "type": "string"
70
+ },
71
+ "to": {
72
+ "type": "string"
73
+ }
74
+ },
75
+ "required": ["from", "to"],
76
+ "additionalProperties": false
77
+ },
78
+ "shiftHours": {
79
+ "type": "object",
80
+ "properties": {
81
+ "from": {
82
+ "type": "string"
83
+ },
84
+ "to": {
85
+ "type": "string"
86
+ }
87
+ },
88
+ "required": ["from", "to"],
89
+ "additionalProperties": false
90
+ },
91
+ "id": {
92
+ "type": "string",
93
+ "format": "uuid",
94
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
95
+ },
96
+ "createdAt": {
97
+ "type": "string",
98
+ "format": "date-time",
99
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
100
+ },
101
+ "updatedAt": {
102
+ "type": "string",
103
+ "format": "date-time",
104
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
105
+ },
106
+ "status": {
107
+ "type": "string",
108
+ "enum": ["Draft", "Active", "Closed", "Filled"]
109
+ },
110
+ "business": {
111
+ "type": "object",
112
+ "properties": {
113
+ "name": {
114
+ "type": "string",
115
+ "minLength": 1
116
+ },
117
+ "description": {
118
+ "type": "string"
119
+ },
120
+ "tags": {
121
+ "type": "array",
122
+ "items": {
123
+ "type": "string"
124
+ }
125
+ },
126
+ "id": {
127
+ "type": "string",
128
+ "format": "uuid",
129
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
130
+ },
131
+ "createdAt": {
132
+ "type": "string",
133
+ "format": "date-time",
134
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
135
+ },
136
+ "updatedAt": {
137
+ "type": "string",
138
+ "format": "date-time",
139
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
140
+ },
141
+ "rating": {
142
+ "type": "number",
143
+ "minimum": 0,
144
+ "maximum": 5
145
+ },
146
+ "status": {
147
+ "type": "string",
148
+ "enum": [
149
+ "Active",
150
+ "Inactive",
151
+ "PendingVerification",
152
+ "Suspended"
153
+ ]
154
+ },
155
+ "ratingCount": {
156
+ "type": "integer",
157
+ "minimum": 0,
158
+ "maximum": 9007199254740991
159
+ },
160
+ "address": {
161
+ "type": "object",
162
+ "properties": {
163
+ "id": {
164
+ "type": "string",
165
+ "format": "uuid",
166
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
167
+ },
168
+ "createdAt": {
169
+ "type": "string",
170
+ "format": "date-time",
171
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
172
+ },
173
+ "updatedAt": {
174
+ "type": "string",
175
+ "format": "date-time",
176
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
177
+ },
178
+ "placeId": {
179
+ "anyOf": [
180
+ {
181
+ "type": "string"
182
+ },
183
+ {
184
+ "type": "null"
185
+ }
186
+ ]
187
+ },
188
+ "text": {
189
+ "type": "string",
190
+ "minLength": 1
191
+ },
192
+ "city": {
193
+ "type": "string",
194
+ "minLength": 1
195
+ },
196
+ "state": {
197
+ "type": "string",
198
+ "minLength": 1
199
+ },
200
+ "postalCode": {
201
+ "type": "string",
202
+ "minLength": 1
203
+ },
204
+ "country": {
205
+ "type": "string",
206
+ "minLength": 1
207
+ },
208
+ "lat": {
209
+ "type": "number"
210
+ },
211
+ "lng": {
212
+ "type": "number"
213
+ }
214
+ },
215
+ "required": [
216
+ "id",
217
+ "createdAt",
218
+ "updatedAt",
219
+ "text",
220
+ "city",
221
+ "state",
222
+ "postalCode",
223
+ "country",
224
+ "lat",
225
+ "lng"
226
+ ],
227
+ "additionalProperties": false
228
+ },
229
+ "image": {
230
+ "type": "object",
231
+ "properties": {
232
+ "id": {
233
+ "type": "string",
234
+ "format": "uuid",
235
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
236
+ },
237
+ "createdAt": {
238
+ "type": "string",
239
+ "format": "date-time",
240
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
241
+ },
242
+ "updatedAt": {
243
+ "type": "string",
244
+ "format": "date-time",
245
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
246
+ },
247
+ "mimeType": {
248
+ "type": "string",
249
+ "enum": [
250
+ "image/jpeg",
251
+ "image/png",
252
+ "application/pdf",
253
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
254
+ ]
255
+ },
256
+ "name": {
257
+ "type": "string"
258
+ },
259
+ "url": {
260
+ "type": "string",
261
+ "format": "uri"
262
+ },
263
+ "contentLength": {
264
+ "type": "number"
265
+ },
266
+ "status": {
267
+ "type": "string",
268
+ "enum": [
269
+ "Pending",
270
+ "Uploaded",
271
+ "Failed",
272
+ "Deleted"
273
+ ]
274
+ }
275
+ },
276
+ "required": [
277
+ "id",
278
+ "createdAt",
279
+ "updatedAt",
280
+ "mimeType",
281
+ "name",
282
+ "url",
283
+ "contentLength",
284
+ "status"
285
+ ],
286
+ "additionalProperties": false
287
+ },
288
+ "licenses": {
289
+ "type": "array",
290
+ "items": {
291
+ "type": "object",
292
+ "properties": {
293
+ "id": {
294
+ "type": "string",
295
+ "format": "uuid",
296
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
297
+ },
298
+ "createdAt": {
299
+ "type": "string",
300
+ "format": "date-time",
301
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
302
+ },
303
+ "updatedAt": {
304
+ "type": "string",
305
+ "format": "date-time",
306
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
307
+ },
308
+ "mimeType": {
309
+ "type": "string",
310
+ "enum": [
311
+ "image/jpeg",
312
+ "image/png",
313
+ "application/pdf",
314
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
315
+ ]
316
+ },
317
+ "name": {
318
+ "type": "string"
319
+ },
320
+ "url": {
321
+ "type": "string",
322
+ "format": "uri"
323
+ },
324
+ "contentLength": {
325
+ "type": "number"
326
+ },
327
+ "status": {
328
+ "type": "string",
329
+ "enum": [
330
+ "Pending",
331
+ "Uploaded",
332
+ "Failed",
333
+ "Deleted"
334
+ ]
335
+ }
336
+ },
337
+ "required": [
338
+ "id",
339
+ "createdAt",
340
+ "updatedAt",
341
+ "mimeType",
342
+ "name",
343
+ "url",
344
+ "contentLength",
345
+ "status"
346
+ ],
347
+ "additionalProperties": false
348
+ }
349
+ }
350
+ },
351
+ "required": [
352
+ "name",
353
+ "description",
354
+ "tags",
355
+ "id",
356
+ "createdAt",
357
+ "updatedAt",
358
+ "rating",
359
+ "status",
360
+ "ratingCount",
361
+ "address",
362
+ "image",
363
+ "licenses"
364
+ ],
365
+ "additionalProperties": false
366
+ },
367
+ "appliedAt": {
368
+ "anyOf": [
369
+ {
370
+ "type": "string",
371
+ "format": "date-time",
372
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
373
+ },
374
+ {
375
+ "type": "null"
376
+ }
377
+ ]
378
+ },
379
+ "closedAt": {
380
+ "anyOf": [
381
+ {
382
+ "type": "string",
383
+ "format": "date-time",
384
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
385
+ },
386
+ {
387
+ "type": "null"
388
+ }
389
+ ]
390
+ },
391
+ "closeReason": {
392
+ "anyOf": [
393
+ {
394
+ "type": "string"
395
+ },
396
+ {
397
+ "type": "null"
398
+ }
399
+ ]
400
+ },
401
+ "distanceKm": {
402
+ "type": "number"
403
+ },
404
+ "roleMatch": {
405
+ "type": "boolean"
406
+ },
407
+ "hourlyRateMatch": {
408
+ "type": "boolean"
409
+ },
410
+ "hasApplied": {
411
+ "default": false,
412
+ "type": "boolean"
413
+ }
414
+ },
415
+ "required": [
416
+ "role",
417
+ "type",
418
+ "overview",
419
+ "qualifications",
420
+ "hourlyRate",
421
+ "dateNeeded",
422
+ "shiftHours",
423
+ "id",
424
+ "createdAt",
425
+ "updatedAt",
426
+ "status",
427
+ "business",
428
+ "distanceKm",
429
+ "roleMatch",
430
+ "hourlyRateMatch",
431
+ "hasApplied"
432
+ ],
433
+ "additionalProperties": false
434
+ }
435
+ },
436
+ "pagination": {
437
+ "type": "object",
438
+ "properties": {
439
+ "total": {
440
+ "type": "number"
441
+ },
442
+ "cursor": {
443
+ "type": "string"
444
+ },
445
+ "hasMore": {
446
+ "type": "boolean"
447
+ }
448
+ },
449
+ "required": ["total", "hasMore"],
450
+ "additionalProperties": false
451
+ }
452
+ },
453
+ "required": ["items", "pagination"],
454
+ "additionalProperties": false
455
+ }
456
+ }
457
+ }
458
+ }
459
+ },
460
+ "parameters": [
461
+ {
462
+ "name": "filter",
463
+ "in": "query",
464
+ "required": false,
465
+ "schema": {
466
+ "type": "object",
467
+ "properties": {
468
+ "radius": {
469
+ "type": "integer",
470
+ "minimum": 0,
471
+ "maximum": 9007199254740991
472
+ },
473
+ "types": {
474
+ "type": "array",
475
+ "items": {
476
+ "type": "string",
477
+ "enum": [
478
+ "Server",
479
+ "Waiter",
480
+ "Host",
481
+ "Bartender",
482
+ "KitchenPorter",
483
+ "Steward",
484
+ "BusPerson",
485
+ "Dishwasher"
486
+ ]
487
+ }
488
+ },
489
+ "hourlyRate": {
490
+ "type": "object",
491
+ "properties": {
492
+ "max": {
493
+ "type": "number"
494
+ },
495
+ "min": {
496
+ "type": "number"
497
+ }
498
+ },
499
+ "additionalProperties": false
500
+ },
501
+ "dateNeeded": {
502
+ "type": "object",
503
+ "properties": {
504
+ "from": {
505
+ "type": "string"
506
+ },
507
+ "to": {
508
+ "type": "string"
509
+ }
510
+ },
511
+ "additionalProperties": false
512
+ },
513
+ "shiftHours": {
514
+ "type": "object",
515
+ "properties": {
516
+ "from": {
517
+ "type": "string"
518
+ },
519
+ "to": {
520
+ "type": "string"
521
+ }
522
+ },
523
+ "additionalProperties": false
524
+ },
525
+ "box": {
526
+ "type": "object",
527
+ "properties": {
528
+ "topLeft": {
529
+ "type": "object",
530
+ "properties": {
531
+ "lat": {
532
+ "type": "number"
533
+ },
534
+ "lng": {
535
+ "type": "number"
536
+ }
537
+ },
538
+ "required": ["lat", "lng"],
539
+ "additionalProperties": false
540
+ },
541
+ "bottomRight": {
542
+ "type": "object",
543
+ "properties": {
544
+ "lat": {
545
+ "type": "number"
546
+ },
547
+ "lng": {
548
+ "type": "number"
549
+ }
550
+ },
551
+ "required": ["lat", "lng"],
552
+ "additionalProperties": false
553
+ }
554
+ },
555
+ "required": ["topLeft", "bottomRight"],
556
+ "additionalProperties": false
557
+ },
558
+ "name": {
559
+ "type": "string",
560
+ "minLength": 1
561
+ },
562
+ "city": {
563
+ "type": "string",
564
+ "minLength": 1
565
+ }
566
+ },
567
+ "additionalProperties": false
568
+ }
569
+ },
570
+ {
571
+ "name": "pagination",
572
+ "in": "query",
573
+ "required": false,
574
+ "schema": {
575
+ "type": "object",
576
+ "properties": {
577
+ "cursor": {
578
+ "type": "string"
579
+ },
580
+ "limit": {
581
+ "default": 20,
582
+ "type": "integer",
583
+ "exclusiveMinimum": 0,
584
+ "maximum": 100
585
+ }
586
+ },
587
+ "required": ["limit"],
588
+ "additionalProperties": false
589
+ }
590
+ }
591
+ ]
592
+ }
593
+ }
594
+ }
595
595
  }