react-query-lightbase-codegen 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.
@@ -0,0 +1,1550 @@
1
+ openapi: 3.0.0
2
+ info:
3
+ title: Amstel Mobile API
4
+ version: 1.0
5
+ description: API for the app
6
+
7
+ servers:
8
+ - url: http://localhost:8000/
9
+ description: Local environment
10
+
11
+ paths:
12
+ /v1/auth/register/:
13
+ post:
14
+ operationId: register
15
+ summary: Create a new account
16
+ description: Create a new account
17
+ tags:
18
+ - authentication
19
+ requestBody:
20
+ required: true
21
+ content:
22
+ application/json:
23
+ schema:
24
+ type: object
25
+ properties:
26
+ first_name:
27
+ type: string
28
+ required: true
29
+ last_name_prefix:
30
+ type: string
31
+ required: true
32
+ last_name:
33
+ type: string
34
+ required: true
35
+ email:
36
+ type: string
37
+ format: email
38
+ required: true
39
+ description: "note: should be unique"
40
+ gender:
41
+ type: string
42
+ enum: [male, female, other]
43
+ required: true
44
+ date_of_birth:
45
+ type: string
46
+ format: date
47
+ required: true
48
+ phone_number:
49
+ type: string
50
+ example: 0612345678
51
+ required: true
52
+ description: "note: should be unique"
53
+ phone_number_verify_id:
54
+ type: string
55
+ required: true
56
+ phone_number_verify_token:
57
+ type: string
58
+ required: true
59
+ address:
60
+ $ref: "#/components/schemas/AddressShort"
61
+
62
+ responses:
63
+ "200":
64
+ description: JWT token for the newly created user
65
+ content:
66
+ application/json:
67
+ schema:
68
+ $ref: "#/components/schemas/AuthenticationResponse"
69
+ "400":
70
+ description: When a validation error occured
71
+ content:
72
+ application/json:
73
+ schema:
74
+ type: object
75
+ properties:
76
+ user_error:
77
+ type: string
78
+ enum: [postcode_not_allowed]
79
+
80
+ /v1/auth/request-authentication/:
81
+ post:
82
+ operationId: requestAuthentication
83
+ summary: Request a email with verification link for the alternative authentication flow.
84
+ description: Authenticate using the e-mail and sms token
85
+ tags:
86
+ - authentication
87
+ requestBody:
88
+ required: true
89
+ content:
90
+ application/json:
91
+ schema:
92
+ type: object
93
+ properties:
94
+ phone_number:
95
+ type: string
96
+ example: "0612345678"
97
+ device_os:
98
+ type: string
99
+ enum: [ios, android]
100
+
101
+ responses:
102
+ "204":
103
+ description: No content, also not if phone doesn't exists
104
+
105
+ /v1/auth/authenticate/:
106
+ post:
107
+ operationId: authenticate
108
+ summary: Complete the authentication with sms token
109
+ description: Authenticate using the sms token
110
+ tags:
111
+ - authentication
112
+ requestBody:
113
+ required: true
114
+ content:
115
+ application/json:
116
+ schema:
117
+ type: object
118
+ properties:
119
+ phone_number:
120
+ type: string
121
+ phone_number_verify_token:
122
+ type: integer
123
+ example: 654321
124
+ description: SMS token
125
+ responses:
126
+ "200":
127
+ description: Authentication response
128
+ content:
129
+ application/json:
130
+ schema:
131
+ $ref: "#/components/schemas/AuthenticationResponse"
132
+ "400":
133
+ description: When a validation error occured
134
+ content:
135
+ application/json:
136
+ schema:
137
+ type: object
138
+ properties:
139
+ phone_number_verify_token:
140
+ type: string
141
+
142
+ /v1/auth/refresh-token/:
143
+ post:
144
+ operationId: refreshToken
145
+ summary: Create a new access token
146
+ description:
147
+ Create a new access token using a refresh token. You'll receive a new access and refresh token.
148
+ The old refresh token is getting blacklisted and cannot be used anymore.
149
+ tags:
150
+ - authentication
151
+ requestBody:
152
+ required: true
153
+ content:
154
+ application/json:
155
+ schema:
156
+ type: object
157
+ properties:
158
+ refresh:
159
+ type: string
160
+
161
+ responses:
162
+ "200":
163
+ description: Authentication response
164
+ content:
165
+ application/json:
166
+ schema:
167
+ $ref: "#/components/schemas/AuthenticationResponse"
168
+
169
+ /v1/account/register-device/:
170
+ post:
171
+ operationId: registerDevice
172
+ summary: Registers device id
173
+ description: Connects the device to the user account so the backend can send push notifications
174
+ tags:
175
+ - user management
176
+ requestBody:
177
+ required: true
178
+ content:
179
+ application/json:
180
+ schema:
181
+ type: object
182
+ properties:
183
+ device_uid:
184
+ type: string
185
+ device_os:
186
+ type: string
187
+ enum: [ios, android]
188
+ device_user_agent:
189
+ type: string
190
+ provider:
191
+ type: string
192
+ enum: [appcenter, azure]
193
+ responses:
194
+ "201":
195
+ description: Register response
196
+ content:
197
+ application/json:
198
+ schema:
199
+ type: object
200
+ properties:
201
+ device_uid:
202
+ type: string
203
+ device_os:
204
+ type: string
205
+ enum: [ios, android]
206
+ device_user_agent:
207
+ type: string
208
+
209
+ /v1/account/update-personal-data/:
210
+ put:
211
+ operationId: updatePersonalData
212
+ summary: Updates personal data
213
+ description:
214
+ Updates personal data of the current user (bsn, email, phone number or general_practitioner_id)
215
+ All the fields are optional, it is possible to call this endpoint with one field only.
216
+ Except for phone_number, then also phone_number_verify_id and phone_number_verify_token are required.
217
+ tags:
218
+ - user management
219
+ requestBody:
220
+ required: true
221
+ content:
222
+ application/json:
223
+ schema:
224
+ type: object
225
+ properties:
226
+ email:
227
+ type: string
228
+ description: Email (can only be set when no email is set yet)
229
+ required: false
230
+ phone_number:
231
+ type: string
232
+ description: Phone number
233
+ required: false
234
+ phone_number_verify_id:
235
+ type: string
236
+ required: false
237
+ phone_number_verify_token:
238
+ type: string
239
+ required: false
240
+ bsn:
241
+ type: string
242
+ example: "123456782"
243
+ required: false
244
+ general_practitioner_id:
245
+ type: string
246
+ format: uuid
247
+ required: false
248
+ lsp_arranged:
249
+ type: boolean
250
+ description: When the user arranged the LSP to be available
251
+ required: false
252
+ identification_sent:
253
+ type: boolean
254
+ description: When the user sent their identification
255
+ required: false
256
+ residence_address:
257
+ $ref: "#/components/schemas/Address"
258
+ required: false
259
+ responses:
260
+ "200":
261
+ content:
262
+ application/json:
263
+ schema:
264
+ $ref: "#/components/schemas/Account"
265
+ description: "Returns current account data"
266
+
267
+ /v1/account/change-email/:
268
+ post:
269
+ operationId: changeEmail
270
+ summary: Requests email change
271
+ description: Sends an confirmation email with which the user can confirm and change the email address
272
+ tags:
273
+ - user management
274
+ requestBody:
275
+ required: true
276
+ content:
277
+ application/json:
278
+ schema:
279
+ type: object
280
+ properties:
281
+ email:
282
+ type: string
283
+ description: The new email address
284
+ responses:
285
+ "200":
286
+ content:
287
+ application/json:
288
+ schema:
289
+ type: object
290
+ properties:
291
+ status:
292
+ type: string
293
+
294
+ /v1/account/request-verification-email/:
295
+ post:
296
+ operationId: requestVerificationEmail
297
+ summary: Requests verification email
298
+ description: Sends an new confirmation email with which the user can verify the email address
299
+ tags:
300
+ - user management
301
+ requestBody:
302
+ responses:
303
+ "200":
304
+ content:
305
+
306
+ /v1/account/update-medical/:
307
+ put:
308
+ operationId: updateMedicalInfo
309
+ summary: Updates medical info
310
+ description: Updates medical info of the current user
311
+ tags:
312
+ - user management
313
+ requestBody:
314
+ required: true
315
+ content:
316
+ application/json:
317
+ schema:
318
+ type: object
319
+ properties:
320
+ medication_use:
321
+ type: string
322
+ description: Medication use
323
+ chronic_disorders:
324
+ type: string
325
+ description: Chronic disorders
326
+ allergies:
327
+ type: string
328
+ description: Allergies
329
+ selfcare_drugs:
330
+ type: string
331
+ description: Selfcare drugs
332
+ other_details:
333
+ type: string
334
+ description: Other details
335
+ responses:
336
+ "200":
337
+ content:
338
+ application/json:
339
+ schema:
340
+ $ref: "#/components/schemas/Account"
341
+ description: "Returns current account data"
342
+
343
+ /v1/account/update-consent/:
344
+ put:
345
+ operationId: updateConsent
346
+ summary: Updates constent
347
+ description: Stores the users consent (and the date on which the user gave his/her consent)
348
+ tags:
349
+ - user management
350
+ requestBody:
351
+ required: true
352
+ content:
353
+ application/json:
354
+ schema:
355
+ type: object
356
+ properties:
357
+ contact_gp:
358
+ type: boolean
359
+ required: false
360
+ description: Can the GP be contacted
361
+ lsp:
362
+ type: boolean
363
+ required: false
364
+ description: Can information be shared through the Landelijk Servicepunt
365
+ kidney_function:
366
+ type: boolean
367
+ required: false
368
+ description: Thuisapotheek permission to ask my doctor about my laboratory value or kidney function.
369
+ responses:
370
+ "200":
371
+ content:
372
+ application/json:
373
+ schema:
374
+ $ref: "#/components/schemas/Account"
375
+ description: "Returns current account data"
376
+
377
+ /v1/account/create-appointment/:
378
+ post:
379
+ operationId: createAppointment
380
+ summary: Create a new appointment
381
+ tags:
382
+ - user management
383
+ requestBody:
384
+ required: true
385
+ content:
386
+ application/json:
387
+ schema:
388
+ $ref: "#/components/schemas/AppointmentInput"
389
+ responses:
390
+ "200":
391
+ description: Created appointment
392
+ content:
393
+ application/json:
394
+ schema:
395
+ $ref: "#/components/schemas/Appointment"
396
+
397
+ /v1/account/me/:
398
+ get:
399
+ operationId: me
400
+ summary: Receive data of current user
401
+ tags:
402
+ - user management
403
+ responses:
404
+ "200":
405
+ content:
406
+ application/json:
407
+ schema:
408
+ $ref: "#/components/schemas/Account"
409
+ description: "Returns current account data"
410
+
411
+ /v1/account/update/:
412
+ put:
413
+ operationId: updateMe
414
+ summary: Update current user
415
+ description: ""
416
+ tags:
417
+ - user management
418
+ requestBody:
419
+ required: true
420
+ content:
421
+ application/json:
422
+ schema:
423
+ type: object
424
+ properties:
425
+ participate_tests:
426
+ type: boolean
427
+ required: false
428
+ description: Designates whether the user wants to participate in additional tests.
429
+ dismissed_participate_tests:
430
+ type: boolean
431
+ required: false
432
+ description: The user dismissed this timeline card.
433
+ responses:
434
+ "200":
435
+ content:
436
+ application/json:
437
+ schema:
438
+ $ref: "#/components/schemas/Account"
439
+ description: "Returns current account data"
440
+
441
+ /v1/account/delete/:
442
+ delete:
443
+ operationId: deleteAccount
444
+ tags:
445
+ - user management
446
+ requestBody:
447
+ required: false
448
+ content:
449
+ application/json:
450
+ schema:
451
+ type: object
452
+ properties:
453
+ delete_reason:
454
+ type: string
455
+ required: false
456
+ responses:
457
+ "204":
458
+ description: "Returns no content"
459
+ "500":
460
+ description: "Error response"
461
+ content:
462
+ application/json:
463
+ schema:
464
+ type: object
465
+ properties:
466
+ detail:
467
+ type: string
468
+
469
+ /v1/subusers/:
470
+ get:
471
+ operationId: getSubusers
472
+ summary: Get all subusers
473
+ tags:
474
+ - subusers
475
+ responses:
476
+ "200":
477
+ description: List with all subusers
478
+ content:
479
+ application/json:
480
+ schema:
481
+ type: object
482
+ properties:
483
+ id:
484
+ type: string
485
+ format: uuid
486
+ full_name:
487
+ type: string
488
+ date_of_birth:
489
+ type: string
490
+ format: date
491
+ example: "2019-12-03"
492
+ gender:
493
+ type: string
494
+ enum: [male, female, other]
495
+
496
+ post:
497
+ operationId: createSubuser
498
+ summary: Create a new sub user
499
+ tags:
500
+ - subusers
501
+ requestBody:
502
+ required: true
503
+ content:
504
+ application/json:
505
+ schema:
506
+ type: object
507
+ properties:
508
+ dossier_type:
509
+ type: string
510
+ enum:
511
+ - child_below_12
512
+ - child_between_12_and_16
513
+ - carer
514
+ - legally_incapable
515
+ bsn:
516
+ type: string
517
+ example: "123456782"
518
+ first_name:
519
+ type: string
520
+ last_name_prefix:
521
+ type: string
522
+ required: false
523
+ last_name:
524
+ type: string
525
+ date_of_birth:
526
+ type: string
527
+ format: date
528
+ example: "2019-12-03"
529
+ gender:
530
+ type: string
531
+ enum: [male, female, other]
532
+ address:
533
+ $ref: "#/components/schemas/AddressShort"
534
+ required: false
535
+ description: Optional, if not provided, the address of api user is used.
536
+ appointment:
537
+ $ref: "#/components/schemas/AppointmentInput"
538
+
539
+ responses:
540
+ "200":
541
+ description: JWT token for the newly created subuser
542
+ content:
543
+ application/json:
544
+ schema:
545
+ $ref: "#/components/schemas/AuthenticationResponse"
546
+
547
+ /v1/subusers/{subuser_id}/login/:
548
+ post:
549
+ operationId: loginSubuser
550
+ summary: Login as subuser
551
+ parameters:
552
+ - in: path
553
+ name: subuser_id
554
+ schema:
555
+ type: integer
556
+ required: true
557
+ description: Numeric ID of the user to get
558
+ tags:
559
+ - subusers
560
+ responses:
561
+ "200":
562
+ description: JWT token to login as the subuser
563
+ content:
564
+ application/json:
565
+ schema:
566
+ $ref: "#/components/schemas/AuthenticationResponse"
567
+ "404":
568
+ description: When a invalid subuser id is given
569
+
570
+ /v1/caregiver-requests/:
571
+ post:
572
+ operationId: createCaregiverRequest
573
+ summary: Create a new caregiver request
574
+ tags:
575
+ - caregiver
576
+ requestBody:
577
+ required: true
578
+ content:
579
+ application/json:
580
+ schema:
581
+ type: object
582
+ properties:
583
+ phone_number:
584
+ type: string
585
+ required: false
586
+ date_of_birth:
587
+ type: string
588
+ format: date
589
+ example: "2019-12-03"
590
+ responses:
591
+ "201":
592
+ description: Created
593
+
594
+ /v1/caregiver-requests/{id}/:
595
+ put:
596
+ operationId: updateCaregiverRequest
597
+ summary: Update caregiver request status
598
+ parameters:
599
+ - in: path
600
+ name: id
601
+ schema:
602
+ type: integer
603
+ required: true
604
+ description: Numeric ID of the caregiver request to get
605
+ tags:
606
+ - caregiver
607
+ requestBody:
608
+ required: true
609
+ content:
610
+ application/json:
611
+ schema:
612
+ type: object
613
+ properties:
614
+ status:
615
+ type: string
616
+ enum: [declined, approved]
617
+
618
+ responses:
619
+ "200":
620
+ description: JWT token to login as the subuser
621
+ content:
622
+ application/json:
623
+ schema:
624
+ properties:
625
+ status:
626
+ type: string
627
+ enum: [declined, approved]
628
+ "404":
629
+ description: When a invalid id is given or request is already processed
630
+
631
+ /v1/dossier/prescriptions/:
632
+ get:
633
+ operationId: listPrescriptions
634
+ summary: Get all new prescriptions for the logged in user
635
+ tags:
636
+ - dossier
637
+ parameters: []
638
+ responses:
639
+ "200":
640
+ content:
641
+ application/json:
642
+ schema:
643
+ type: array
644
+ items:
645
+ $ref: "#/components/schemas/Prescription"
646
+ description: ""
647
+
648
+ /v1/dossier/prescriptions/{prescription_id}/:
649
+ get:
650
+ operationId: getPrescription
651
+ summary: Gets single prescription using the given prescription ID
652
+ tags:
653
+ - dossier
654
+ parameters:
655
+ - name: prescription_id
656
+ in: path
657
+ required: true
658
+ description: ""
659
+ schema:
660
+ type: string
661
+ responses:
662
+ "200":
663
+ content:
664
+ application/json:
665
+ schema:
666
+ $ref: "#/components/schemas/Prescription"
667
+ description: ""
668
+
669
+ /v1/dossier/medicines/:
670
+ get:
671
+ operationId: listMedicines
672
+ summary: Get all new medicines for the logged in user
673
+ tags:
674
+ - dossier
675
+ parameters: []
676
+ responses:
677
+ "200":
678
+ content:
679
+ application/json:
680
+ schema:
681
+ type: array
682
+ items:
683
+ $ref: "#/components/schemas/Medicine"
684
+ description: ""
685
+
686
+ /v1/dossier/medicines/{medicine_id}/:
687
+ get:
688
+ operationId: getMedicine
689
+ summary: Gets single medicine using the given medicine ID
690
+ tags:
691
+ - dossier
692
+ parameters:
693
+ - name: medicine_id
694
+ in: path
695
+ required: true
696
+ description: ""
697
+ schema:
698
+ type: string
699
+ responses:
700
+ "200":
701
+ content:
702
+ application/json:
703
+ schema:
704
+ $ref: "#/components/schemas/DetailedMedicine"
705
+ description: ""
706
+
707
+ /v1/dossier/prescription-requests/:
708
+ get:
709
+ operationId: getPrescriptionRequests
710
+ summary: Retrieves all current prescription requests
711
+ tags:
712
+ - dossier
713
+ responses:
714
+ "201":
715
+ description: All prescription requests
716
+ content:
717
+ application/json:
718
+ schema:
719
+ type: array
720
+ items:
721
+ $ref: "#/components/schemas/PrescriptionRequest"
722
+ post:
723
+ operationId: createPrescriptionRequest
724
+ summary: Creates a new prescription request
725
+ tags:
726
+ - dossier
727
+ requestBody:
728
+ required: true
729
+ content:
730
+ application/json:
731
+ schema:
732
+ type: object
733
+ properties:
734
+ prescription:
735
+ type: string
736
+ format: uuid
737
+ responses:
738
+ "201":
739
+ description: The new prescription request
740
+ content:
741
+ application/json:
742
+ schema:
743
+ $ref: "#/components/schemas/PrescriptionRequest"
744
+
745
+ /v1/dossier/orders/:
746
+ post:
747
+ operationId: createOrder
748
+ tags:
749
+ - dossier
750
+ requestBody:
751
+ required: true
752
+ content:
753
+ application/json:
754
+ schema:
755
+ type: object
756
+ properties:
757
+ prescriptions:
758
+ type: array
759
+ items:
760
+ type: string
761
+ format: uuid
762
+ store:
763
+ type: string
764
+ format: uuid
765
+ required: false
766
+ prevent_neighbour_delivery:
767
+ type: boolean
768
+ delivery_method:
769
+ type: string
770
+ enum: [home-delivery, counter, locker, locker247, special]
771
+ delivery_address:
772
+ $ref: "#/components/schemas/Address"
773
+ appointment:
774
+ $ref: "#/components/schemas/AppointmentInput"
775
+ required: false
776
+ responses:
777
+ "201":
778
+ description: ""
779
+ content:
780
+ application/json:
781
+ schema:
782
+ $ref: "#/components/schemas/Order"
783
+
784
+ /v1/dossier/orders/{order_id}/:
785
+ get:
786
+ operationId: getOrder
787
+ summary: Gets single order using the given order ID
788
+ tags:
789
+ - dossier
790
+ parameters:
791
+ - name: order_id
792
+ in: path
793
+ required: true
794
+ description: ""
795
+ schema:
796
+ type: string
797
+ format: uuid
798
+ responses:
799
+ "200":
800
+ content:
801
+ application/json:
802
+ schema:
803
+ $ref: "#/components/schemas/Order"
804
+ description: ""
805
+
806
+ /v1/dossier/timeline/:
807
+ get:
808
+ operationId: listTimeline
809
+ tags:
810
+ - dossier
811
+ responses:
812
+ "200":
813
+ content:
814
+ application/json:
815
+ schema:
816
+ type: array
817
+ items:
818
+ $ref: "#/components/schemas/TimelineItem"
819
+ description: ""
820
+
821
+ /v1/dossier/timeline/close/:
822
+ post:
823
+ operationId: closeTimeline
824
+ tags:
825
+ - dossier
826
+ requestBody:
827
+ required: true
828
+ content:
829
+ application/json:
830
+ schema:
831
+ type: object
832
+ properties:
833
+ model:
834
+ type: string
835
+ enum:
836
+ - order
837
+ - prescription_request
838
+ id:
839
+ type: string
840
+ responses:
841
+ "200":
842
+ description: "Returns new timeline data."
843
+ content:
844
+ application/json:
845
+ schema:
846
+ type: array
847
+ items:
848
+ $ref: "#/components/schemas/TimelineItem"
849
+
850
+ /v1/phone-number-verification/:
851
+ post:
852
+ operationId: phoneNumberVerification
853
+ summary: Verify a telephone number
854
+ description: Send a SMS to the recipient to validate their telephone number. If an user is authenticated, no phone_number should be given.
855
+ tags:
856
+ - utils
857
+ requestBody:
858
+ required: true
859
+ content:
860
+ application/json:
861
+ schema:
862
+ type: object
863
+ properties:
864
+ phone_number:
865
+ type: string
866
+ required: false
867
+ device_os:
868
+ type: string
869
+ enum: [ios, android]
870
+ responses:
871
+ "200":
872
+ description: A verification id
873
+ content:
874
+ application/json:
875
+ schema:
876
+ type: object
877
+ properties:
878
+ verification_id:
879
+ type: string
880
+
881
+ /v1/verify-token/:
882
+ post:
883
+ operationId: verifyToken
884
+ summary: Verify a validation token
885
+ description: Verifies the given verification (SMS) token
886
+ tags:
887
+ - utils
888
+ requestBody:
889
+ required: true
890
+ content:
891
+ application/json:
892
+ schema:
893
+ type: object
894
+ properties:
895
+ phone_number:
896
+ type: string
897
+ description: Phone number
898
+ required: false
899
+ phone_number_verify_id:
900
+ type: string
901
+ phone_number_verify_token:
902
+ type: string
903
+ responses:
904
+ "200":
905
+ description: Status
906
+ content:
907
+ application/json:
908
+ schema:
909
+ type: object
910
+ properties:
911
+ status:
912
+ type: string
913
+
914
+ /v1/available-timeslots/:
915
+ get:
916
+ operationId: getAvailableTimeslots
917
+ summary: Get available timeslots
918
+ description: Before making an appointment get an overview of all the available timeslots.
919
+ tags:
920
+ - utils
921
+ parameters:
922
+ - in: query
923
+ name: days
924
+ schema:
925
+ type: string
926
+ description: How many days need to be checked
927
+ responses:
928
+ "200":
929
+ description: A list of available timeslots grouped per day
930
+ content:
931
+ application/json:
932
+ schema:
933
+ type: object
934
+ properties:
935
+ warning:
936
+ type: string
937
+ required: false
938
+ result:
939
+ type: array
940
+ items:
941
+ properties:
942
+ day:
943
+ type: string
944
+ timeslots:
945
+ type: object
946
+ properties:
947
+ start:
948
+ type: string
949
+ end:
950
+ type: string
951
+ available:
952
+ type: boolean
953
+
954
+ /v1/general-practitioners-search/:
955
+ get:
956
+ operationId: generalPractitionersSearch
957
+ summary: Find a General practitioner or Health centre.
958
+ description: Search for general practitioners in BIG-register or healthcenters.
959
+ tags:
960
+ - utils
961
+ parameters:
962
+ - in: query
963
+ name: q
964
+ schema:
965
+ type: string
966
+ description: Search term
967
+ responses:
968
+ "200":
969
+ description: A list with general practitioners and health centers.
970
+ content:
971
+ application/json:
972
+ schema:
973
+ type: array
974
+ items:
975
+ $ref: "#/components/schemas/GeneralPractitioner"
976
+
977
+ /v1/suggest-order-eta/:
978
+ get:
979
+ operationId: suggestOrderEta
980
+ summary: Get order ETA
981
+ tags:
982
+ - utils
983
+ responses:
984
+ "200":
985
+ description: ""
986
+ content:
987
+ application/json:
988
+ schema:
989
+ type: object
990
+ properties:
991
+ eta:
992
+ type: string
993
+ format: "date-time"
994
+
995
+ /v1/address-lookup/:
996
+ post:
997
+ operationId: addressLookup
998
+ summary: Lookup an address
999
+ description: Lookup an address using a postcode and house number
1000
+ tags:
1001
+ - utils
1002
+ requestBody:
1003
+ required: true
1004
+ content:
1005
+ application/json:
1006
+ schema:
1007
+ type: object
1008
+ properties:
1009
+ postcode:
1010
+ type: string
1011
+ house_number:
1012
+ type: string
1013
+ responses:
1014
+ "200":
1015
+ description: The resolved address
1016
+ content:
1017
+ application/json:
1018
+ schema:
1019
+ type: object
1020
+ properties:
1021
+ postcode:
1022
+ type: string
1023
+ required: true
1024
+ house_number:
1025
+ type: integer
1026
+ example: 1
1027
+ required: true
1028
+ street_name:
1029
+ type: string
1030
+ required: true
1031
+ city:
1032
+ type: string
1033
+ required: true
1034
+ house_number_suffixes:
1035
+ type: array
1036
+ description: List with all possible house number suffixes
1037
+ items:
1038
+ type: string
1039
+ country:
1040
+ type: string
1041
+ example: NL
1042
+
1043
+ components:
1044
+ securitySchemes:
1045
+ bearerAuth:
1046
+ type: http
1047
+ scheme: bearer
1048
+ bearerFormat: JWT
1049
+
1050
+ schemas:
1051
+ Account:
1052
+ type: object
1053
+ properties:
1054
+ id:
1055
+ type: string
1056
+ format: uuid
1057
+ email:
1058
+ type: string
1059
+ format: email
1060
+ example: johndoe@example.com
1061
+ first_name:
1062
+ type: string
1063
+ last_name:
1064
+ type: string
1065
+ phone_number:
1066
+ type: string
1067
+ example: 0612345678
1068
+ date_of_birth:
1069
+ type: string
1070
+ format: date
1071
+ example: "2019-12-03"
1072
+ gender:
1073
+ type: string
1074
+ enum: [male, female, other]
1075
+ residence_address:
1076
+ $ref: "#/components/schemas/Address"
1077
+ shipping_address:
1078
+ $ref: "#/components/schemas/Address"
1079
+ parent_users:
1080
+ type: array
1081
+ items:
1082
+ type: object
1083
+ properties:
1084
+ full_name:
1085
+ type: string
1086
+ is_logged_in_as_subuser:
1087
+ type: boolean
1088
+ dossier_type:
1089
+ type: string
1090
+ enum:
1091
+ - standard
1092
+ - child_below_12
1093
+ - child_between_12_and_16
1094
+ - carer
1095
+ - legally_incapable
1096
+ has_subaccounts:
1097
+ type: boolean
1098
+ dossier_state:
1099
+ type: object
1100
+ properties:
1101
+ approved:
1102
+ type: boolean
1103
+ consent:
1104
+ type: boolean
1105
+ general_practitioner:
1106
+ type: boolean
1107
+ insurance:
1108
+ type: boolean
1109
+ intake:
1110
+ type: boolean
1111
+ medical_data:
1112
+ type: boolean
1113
+ verified_phone:
1114
+ type: boolean
1115
+ identified:
1116
+ type: boolean
1117
+ status:
1118
+ type: object
1119
+ properties:
1120
+ profile_complete:
1121
+ type: boolean
1122
+ missing_fields:
1123
+ type: array
1124
+ items:
1125
+ type: string
1126
+ enum: [email, phone_number, verified_phone, intake, consent]
1127
+ insurer:
1128
+ type: string
1129
+ description: Name of insurer
1130
+ insurance_policy_number:
1131
+ type: string
1132
+ general_practitioner:
1133
+ $ref: "#/components/schemas/GeneralPractitioner"
1134
+ required: false
1135
+ consent_lsp:
1136
+ type: boolean
1137
+ consent_contact_gp:
1138
+ type: boolean
1139
+ consent_kidney_function:
1140
+ type: boolean
1141
+
1142
+ AuthenticationResponse:
1143
+ type: object
1144
+ properties:
1145
+ access:
1146
+ type: string
1147
+ description: access token
1148
+ refresh:
1149
+ type: string
1150
+ description: refresh token
1151
+
1152
+ AddressShort:
1153
+ type: object
1154
+ properties:
1155
+ postcode:
1156
+ type: string
1157
+ required: true
1158
+ house_number:
1159
+ type: integer
1160
+ example: 1
1161
+ required: true
1162
+ house_number_suffix:
1163
+ type: string
1164
+ example: "B"
1165
+
1166
+ Address:
1167
+ allOf:
1168
+ - $ref: "#/components/schemas/AddressShort"
1169
+ - type: object
1170
+ properties:
1171
+ street_name:
1172
+ type: string
1173
+ required: true
1174
+ city:
1175
+ type: string
1176
+ required: true
1177
+
1178
+ GeneralPractitioner:
1179
+ type: object
1180
+ properties:
1181
+ id:
1182
+ type: string
1183
+ format: uuid
1184
+ practice_name:
1185
+ type: string
1186
+ full_name:
1187
+ type: string
1188
+ required: false
1189
+ is_health_centre:
1190
+ type: boolean
1191
+ postcode:
1192
+ type: string
1193
+ house_number:
1194
+ type: string
1195
+ street_name:
1196
+ type: string
1197
+ city:
1198
+ type: string
1199
+ website:
1200
+ type: string
1201
+ example: http://www.example.com
1202
+ phone_number:
1203
+ type: string
1204
+ example: 06 12345678
1205
+ required: false
1206
+ agb_code:
1207
+ type: string
1208
+ required: false
1209
+
1210
+ Prescription:
1211
+ type: object
1212
+ properties:
1213
+ gp_agb:
1214
+ type: string
1215
+ pharmacy_agb:
1216
+ type: string
1217
+ prescriber:
1218
+ type: object
1219
+ properties:
1220
+ name:
1221
+ type: string
1222
+ company_name:
1223
+ type: string
1224
+ postcode:
1225
+ type: string
1226
+ house_number:
1227
+ type: integer
1228
+ example: 1
1229
+ house_number_suffix:
1230
+ type: string
1231
+ example: "B"
1232
+ street_name:
1233
+ type: string
1234
+ city:
1235
+ type: string
1236
+ country:
1237
+ type: string
1238
+ id:
1239
+ type: integer
1240
+ reference_number:
1241
+ type: integer
1242
+ medicines:
1243
+ type: array
1244
+ items:
1245
+ $ref: "#/components/schemas/Medicine"
1246
+
1247
+ OrderedPrescription:
1248
+ allOf:
1249
+ - $ref: "#/components/schemas/Medicine"
1250
+ - type: object
1251
+ properties:
1252
+ medicines:
1253
+ type: array
1254
+ items:
1255
+ $ref: "#/components/schemas/OrderedMedicine"
1256
+
1257
+ Medicine:
1258
+ type: object
1259
+ properties:
1260
+ id:
1261
+ type: string
1262
+ format: uuid
1263
+ required: true
1264
+ name:
1265
+ type: string
1266
+ required: true
1267
+ created:
1268
+ type: string
1269
+ format: date-time
1270
+ required: true
1271
+ gpknaam:
1272
+ type: string
1273
+ required: true
1274
+ receptnr:
1275
+ type: string
1276
+ required: true
1277
+ gebrtekst:
1278
+ type: string
1279
+ required: true
1280
+ startdat:
1281
+ type: string
1282
+ format: date
1283
+ enddat:
1284
+ type: string
1285
+ format: date
1286
+ is_recurring:
1287
+ type: boolean
1288
+ hoeveelheid:
1289
+ type: number
1290
+ first_issue:
1291
+ type: boolean
1292
+ first_issue_type:
1293
+ type: string
1294
+ enum:
1295
+ - first_usage
1296
+ - pharmacy_switch
1297
+ - expired
1298
+ is_blacklisted:
1299
+ type: boolean
1300
+ is_coldchain:
1301
+ type: boolean
1302
+ can_request:
1303
+ type: boolean
1304
+ required: false
1305
+ warning_text:
1306
+ type: string
1307
+ required: false
1308
+ success_text:
1309
+ type: string
1310
+ required: false
1311
+
1312
+ DetailedMedicine:
1313
+ allOf:
1314
+ - $ref: "#/components/schemas/Medicine"
1315
+ - type: object
1316
+ properties:
1317
+ order_history:
1318
+ type: array
1319
+ required: false
1320
+ items:
1321
+ type: string
1322
+ format: date-time
1323
+
1324
+ OrderedMedicine:
1325
+ allOf:
1326
+ - $ref: "#/components/schemas/Medicine"
1327
+ - type: object
1328
+ properties:
1329
+ alternative:
1330
+ type: string
1331
+
1332
+ TimelineItem:
1333
+ type: object
1334
+ properties:
1335
+ id:
1336
+ type: string
1337
+ format: uuid
1338
+ category:
1339
+ type: string
1340
+ enum:
1341
+ - order
1342
+ - prescription
1343
+ - profile
1344
+ - warning
1345
+ notification_type:
1346
+ type: string
1347
+ deprecated: true
1348
+ enum:
1349
+ - appointment-onboarding
1350
+ - appointment-first_medication
1351
+ - appointment-alternative_medicine
1352
+ - appointment-order_generic
1353
+ - dossier-incomplete
1354
+ - dossier-pending
1355
+ - dossier-lsp
1356
+ - confirm-email
1357
+ - caregiver-request
1358
+ - caregiver-request-approved
1359
+ - order-pending
1360
+ - order-approved
1361
+ - order-declined
1362
+ - order-shipment_pending
1363
+ - order-sent
1364
+ - order-delivered
1365
+ - order-special-delivery
1366
+ - order-finished
1367
+ - order-warning
1368
+ - order-returned
1369
+ - participate-tests
1370
+ - prescription-available
1371
+ - prescriptionrequest-pending
1372
+ - prescriptionrequest-declined
1373
+ - prescriptionrequest-approved
1374
+ - prescription-stock-notification
1375
+ created:
1376
+ type: string
1377
+ format: date-time
1378
+ readOnly: true
1379
+ title:
1380
+ type: string
1381
+ maxLength: 100
1382
+ body:
1383
+ type: string
1384
+ extra:
1385
+ type: object
1386
+ required: false
1387
+ properties:
1388
+ close_api_body:
1389
+ type: object
1390
+ required: false
1391
+ properties:
1392
+ model:
1393
+ type: string
1394
+ enum:
1395
+ - order
1396
+ - prescription_request
1397
+ id:
1398
+ type: string
1399
+ link_text:
1400
+ type: string
1401
+ required: false
1402
+ description: Used in order-warning to display button
1403
+ phone_number:
1404
+ type: string
1405
+ required: false
1406
+ description: Used in order-warning to display phone number
1407
+ warning_text:
1408
+ type: string
1409
+ required: false
1410
+ medicine_ids:
1411
+ type: array
1412
+ items:
1413
+ type: string
1414
+ format: uuid
1415
+
1416
+ PrescriptionRequest:
1417
+ type: object
1418
+ properties:
1419
+ id:
1420
+ type: string
1421
+ format: uuid
1422
+ dossier:
1423
+ type: string
1424
+ format: uuid
1425
+ prescription:
1426
+ type: string
1427
+ format: uuid
1428
+ created:
1429
+ type: string
1430
+ format: date-time
1431
+ status:
1432
+ type: string
1433
+ enum: [pending, approved, declined]
1434
+ new_prescription:
1435
+ type: string
1436
+ format: uuid
1437
+ required: false
1438
+
1439
+ AppointmentInput:
1440
+ type: object
1441
+ properties:
1442
+ day:
1443
+ type: string
1444
+ format: date
1445
+ description: The day of the appointment
1446
+ timeslot:
1447
+ type: string
1448
+ pattern: '^\d{2}:\d{2}$'
1449
+ example: "14:30"
1450
+ description: The timeslot to reserve
1451
+ type:
1452
+ type: string
1453
+ enum:
1454
+ [onboarding, first_medication, alternative_medicine, order_generic]
1455
+ order:
1456
+ type: string
1457
+ format: uuid
1458
+ required: false
1459
+
1460
+ Appointment:
1461
+ type: object
1462
+ properties:
1463
+ day:
1464
+ type: string
1465
+ format: date
1466
+ description: The day of the appointment
1467
+ timeslot:
1468
+ type: string
1469
+ pattern: '^\d{2}:\d{2}$'
1470
+ example: "14:30"
1471
+ start:
1472
+ type: string
1473
+ pattern: '^\d{2}:\d{2}$'
1474
+ example: "14:30"
1475
+ end:
1476
+ type: string
1477
+ pattern: '^\d{2}:\d{2}$'
1478
+ example: "15:00"
1479
+ dossier:
1480
+ type: string
1481
+ format: uuid
1482
+ order:
1483
+ type: string
1484
+ format: uuid
1485
+ type:
1486
+ type: string
1487
+ enum:
1488
+ [onboarding, first_medication, alternative_medicine, order_generic]
1489
+ completed:
1490
+ type: boolean
1491
+
1492
+ Order:
1493
+ type: object
1494
+ properties:
1495
+ id:
1496
+ type: string
1497
+ format: uuid
1498
+ created:
1499
+ type: string
1500
+ format: date-time
1501
+ delivery_address:
1502
+ $ref: "#/components/schemas/Address"
1503
+ delivery_method:
1504
+ type: string
1505
+ enum: [home-delivery, counter, locker, locker247, special]
1506
+ create_appointment:
1507
+ type: boolean
1508
+ description: Indicates if an appointment can be made
1509
+ dossier:
1510
+ type: string
1511
+ format: uuid
1512
+ prevent_neighbour_delivery:
1513
+ type: boolean
1514
+ eta_from:
1515
+ type: string
1516
+ format: date-time
1517
+ eta_to:
1518
+ type: string
1519
+ format: date-time
1520
+ prescriptions:
1521
+ type: array
1522
+ items:
1523
+ $ref: "#/components/schemas/OrderedPrescription"
1524
+ status:
1525
+ type: string
1526
+ enum:
1527
+ - pending
1528
+ - shipment_pending
1529
+ - sent
1530
+ - finished
1531
+ - returned
1532
+ - return_finished
1533
+ - declined
1534
+ store_id:
1535
+ type: string
1536
+ format: uuid
1537
+ appointment:
1538
+ $ref: "#/components/schemas/Appointment"
1539
+ authorized_name:
1540
+ type: string
1541
+ required: false
1542
+ authorized_date_of_birth:
1543
+ type: string
1544
+ format: date
1545
+ required: false
1546
+ share_text:
1547
+ type: string
1548
+ example:
1549
+ - "Wil je alsjeblieft een pakketje voor mij ophalen? Met behulp van deze barcode: https://example.com/barcode/bstn234t32i3"
1550
+ required: false