@geekmidas/client 0.0.1

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 (51) hide show
  1. package/README.md +518 -0
  2. package/dist/chunk-CUT6urMc.cjs +30 -0
  3. package/dist/fetcher-DLDD_7Sa.mjs +86 -0
  4. package/dist/fetcher-DLDD_7Sa.mjs.map +1 -0
  5. package/dist/fetcher-KdwHgdAl.cjs +98 -0
  6. package/dist/fetcher-KdwHgdAl.cjs.map +1 -0
  7. package/dist/fetcher.cjs +4 -0
  8. package/dist/fetcher.d.cts +18 -0
  9. package/dist/fetcher.d.mts +18 -0
  10. package/dist/fetcher.mjs +3 -0
  11. package/dist/openapi-hooks.cjs +44 -0
  12. package/dist/openapi-hooks.cjs.map +1 -0
  13. package/dist/openapi-hooks.d.cts +99 -0
  14. package/dist/openapi-hooks.d.mts +99 -0
  15. package/dist/openapi-hooks.mjs +43 -0
  16. package/dist/openapi-hooks.mjs.map +1 -0
  17. package/dist/openapi-types.d.cjs +0 -0
  18. package/dist/openapi-types.d.cts +443 -0
  19. package/dist/openapi-types.d.mts +443 -0
  20. package/dist/openapi.cjs +526 -0
  21. package/dist/openapi.cjs.map +1 -0
  22. package/dist/openapi.mjs +501 -0
  23. package/dist/openapi.mjs.map +1 -0
  24. package/dist/react-query.cjs +147 -0
  25. package/dist/react-query.cjs.map +1 -0
  26. package/dist/react-query.d.cts +77 -0
  27. package/dist/react-query.d.mts +77 -0
  28. package/dist/react-query.mjs +141 -0
  29. package/dist/react-query.mjs.map +1 -0
  30. package/dist/types-csACmD6U.d.cts +68 -0
  31. package/dist/types-tMp85Lt_.d.mts +68 -0
  32. package/dist/types.cjs +0 -0
  33. package/dist/types.d.cts +2 -0
  34. package/dist/types.d.mts +2 -0
  35. package/dist/types.mjs +0 -0
  36. package/package.json +59 -0
  37. package/src/__tests__/fetcher.spec.ts +409 -0
  38. package/src/__tests__/method-restrictions.spec.tsx +227 -0
  39. package/src/__tests__/openapi-hooks.spec.tsx +558 -0
  40. package/src/__tests__/react-query-infinite.spec.tsx +1003 -0
  41. package/src/__tests__/react-query-invalidation.spec.tsx +238 -0
  42. package/src/__tests__/react-query.spec.tsx +582 -0
  43. package/src/__tests__/setup.ts +281 -0
  44. package/src/__tests__/types.spec.ts +134 -0
  45. package/src/__tests__/url-parsing.spec.ts +196 -0
  46. package/src/fetcher.ts +173 -0
  47. package/src/openapi-hooks.ts +193 -0
  48. package/src/openapi-types.d.ts +440 -0
  49. package/src/openapi.json +595 -0
  50. package/src/react-query.ts +341 -0
  51. package/src/types.ts +149 -0
@@ -0,0 +1,595 @@
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
+ }
595
+ }