krsyer-server-monitor-pro 1.0.4 → 1.0.6

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 (45) hide show
  1. package/guestguru-api/.idea/guestguru-api.iml +9 -0
  2. package/guestguru-api/.idea/misc.xml +6 -0
  3. package/guestguru-api/.idea/modules.xml +8 -0
  4. package/guestguru-api/.idea/vcs.xml +6 -0
  5. package/guestguru-api/API_DESIGN_GUIDE.md +140 -0
  6. package/guestguru-api/API_DOCUMENTATION.md +504 -0
  7. package/guestguru-api/API_REQUIREMENTS_TENANTS.md +110 -0
  8. package/guestguru-api/AVAILABLE_TENANT_ENDPOINTS.md +137 -0
  9. package/guestguru-api/BACKEND_INSTRUCTIONS.md +77 -0
  10. package/guestguru-api/DINING_MODULE_INTEGRATION.md +175 -0
  11. package/guestguru-api/FRONTEND_FINANCE_MODULE.md +151 -0
  12. package/guestguru-api/README.md +93 -0
  13. package/guestguru-api/app.json +12 -0
  14. package/guestguru-api/database.sqlite +0 -0
  15. package/guestguru-api/eas.json +21 -0
  16. package/guestguru-api/ecosystem.config.js +19 -0
  17. package/guestguru-api/fix_db_schema.js +77 -0
  18. package/guestguru-api/list_columns.js +27 -0
  19. package/guestguru-api/package.json +34 -0
  20. package/guestguru-api/postman_backend_v2.json +1745 -0
  21. package/guestguru-api/postman_collection.json +477 -0
  22. package/guestguru-api/postman_environment.json +17 -0
  23. package/guestguru-api/public/icon.png +0 -0
  24. package/guestguru-api/public/icon_b64.txt +1 -0
  25. package/guestguru-api/readd_column.js +27 -0
  26. package/guestguru-api/server.js +263 -0
  27. package/guestguru-api/test_cashfree_connection.js +52 -0
  28. package/lib/controllers/cloudflareController.js +1 -1
  29. package/lib/controllers/dockerController.js +1 -1
  30. package/lib/controllers/networkController.js +1 -1
  31. package/lib/controllers/serverController.js +1 -1
  32. package/lib/ecosystem.config.js +1 -1
  33. package/lib/middleware/saasAuth.js +1 -1
  34. package/lib/public/script.js +4 -0
  35. package/lib/routes/cloudflareRoutes.js +1 -1
  36. package/lib/routes/dockerRoutes.js +1 -1
  37. package/lib/routes/networkRoutes.js +1 -1
  38. package/lib/routes/serverRoutes.js +1 -1
  39. package/lib/server.js +1 -1
  40. package/lib/services/cashfreeService.js +1 -1
  41. package/lib/views/activate.html +98 -0
  42. package/lib/views/index.html +5 -0
  43. package/license-portal/server.js +23 -11
  44. package/license-portal/views/pricing.html +5 -3
  45. package/package.json +1 -1
@@ -0,0 +1,1745 @@
1
+ {
2
+ "info": {
3
+ "_postman_id": "pg-backend-saas-collection",
4
+ "name": "PG Management SaaS API (v2)",
5
+ "description": "Updated Postman collection for SaaS-based PG Management Backend",
6
+ "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
7
+ },
8
+ "item": [
9
+ {
10
+ "name": "Auth",
11
+ "item": [
12
+ {
13
+ "name": "Signup (PG Owner/Admin)",
14
+ "request": {
15
+ "method": "POST",
16
+ "header": [],
17
+ "body": {
18
+ "mode": "raw",
19
+ "raw": "{\n \"name\": \"New PG Owner\",\n \"email\": \"owner@pg.com\",\n \"password\": \"owner123\",\n \"phone\": \"9876543210\",\n \"role\": \"admin\"\n}",
20
+ "options": {
21
+ "raw": {
22
+ "language": "json"
23
+ }
24
+ }
25
+ },
26
+ "url": {
27
+ "raw": "{{url}}/api/auth/signup",
28
+ "host": [
29
+ "{{url}}"
30
+ ],
31
+ "path": [
32
+ "api",
33
+ "auth",
34
+ "signup"
35
+ ]
36
+ }
37
+ },
38
+ "response": []
39
+ },
40
+ {
41
+ "name": "Signin (Common)",
42
+ "event": [
43
+ {
44
+ "listen": "test",
45
+ "script": {
46
+ "exec": [
47
+ "var jsonData = pm.response.json();",
48
+ "if(jsonData.accessToken) {",
49
+ " pm.environment.set(\"token\", jsonData.accessToken);",
50
+ " console.log(\"Token set successfully\");",
51
+ "}"
52
+ ],
53
+ "type": "text/javascript"
54
+ }
55
+ }
56
+ ],
57
+ "request": {
58
+ "method": "POST",
59
+ "header": [],
60
+ "body": {
61
+ "mode": "raw",
62
+ "raw": "{\n \"email\": \"owner@pg.com\",\n \"password\": \"owner123\"\n}",
63
+ "options": {
64
+ "raw": {
65
+ "language": "json"
66
+ }
67
+ }
68
+ },
69
+ "url": {
70
+ "raw": "{{url}}/api/auth/signin",
71
+ "host": [
72
+ "{{url}}"
73
+ ],
74
+ "path": [
75
+ "api",
76
+ "auth",
77
+ "signin"
78
+ ]
79
+ }
80
+ },
81
+ "response": []
82
+ },
83
+ {
84
+ "name": "Get Profile",
85
+ "request": {
86
+ "method": "GET",
87
+ "header": [
88
+ {
89
+ "key": "x-access-token",
90
+ "value": "{{token}}",
91
+ "type": "text"
92
+ }
93
+ ],
94
+ "url": {
95
+ "raw": "{{url}}/api/auth/profile",
96
+ "host": [
97
+ "{{url}}"
98
+ ],
99
+ "path": [
100
+ "api",
101
+ "auth",
102
+ "profile"
103
+ ]
104
+ },
105
+ "description": "Fetch the profile details of the currently logged-in user."
106
+ },
107
+ "response": []
108
+ },
109
+ {
110
+ "name": "Update Profile",
111
+ "request": {
112
+ "method": "PUT",
113
+ "header": [
114
+ {
115
+ "key": "x-access-token",
116
+ "value": "{{token}}",
117
+ "type": "text"
118
+ }
119
+ ],
120
+ "body": {
121
+ "mode": "formdata",
122
+ "formdata": [
123
+ {
124
+ "key": "name",
125
+ "value": "Updated Name",
126
+ "type": "text"
127
+ },
128
+ {
129
+ "key": "phone",
130
+ "value": "9876543210",
131
+ "type": "text"
132
+ },
133
+ {
134
+ "key": "profileImage",
135
+ "type": "file",
136
+ "src": []
137
+ }
138
+ ]
139
+ },
140
+ "url": {
141
+ "raw": "{{url}}/api/auth/profile",
142
+ "host": [
143
+ "{{url}}"
144
+ ],
145
+ "path": [
146
+ "api",
147
+ "auth",
148
+ "profile"
149
+ ]
150
+ },
151
+ "description": "Update profile details including name, phone, email, password, and profile image."
152
+ }
153
+ },
154
+ {
155
+ "name": "Change Password",
156
+ "request": {
157
+ "method": "POST",
158
+ "header": [
159
+ {
160
+ "key": "x-access-token",
161
+ "value": "{{token}}",
162
+ "type": "text"
163
+ }
164
+ ],
165
+ "body": {
166
+ "mode": "raw",
167
+ "raw": "{\n \"oldPassword\": \"originalPassword\",\n \"newPassword\": \"newSecurePassword123\"\n}",
168
+ "options": {
169
+ "raw": {
170
+ "language": "json"
171
+ }
172
+ }
173
+ },
174
+ "url": {
175
+ "raw": "{{url}}/api/auth/change-password",
176
+ "host": [
177
+ "{{url}}"
178
+ ],
179
+ "path": [
180
+ "api",
181
+ "auth",
182
+ "change-password"
183
+ ]
184
+ }
185
+ },
186
+ "response": []
187
+ }
188
+ ]
189
+ },
190
+ {
191
+ "name": "Super Admin",
192
+ "item": [
193
+ {
194
+ "name": "Get All Owners",
195
+ "request": {
196
+ "method": "GET",
197
+ "header": [
198
+ {
199
+ "key": "x-access-token",
200
+ "value": "{{token}}",
201
+ "type": "text"
202
+ }
203
+ ],
204
+ "url": {
205
+ "raw": "{{url}}/api/superadmin/owners",
206
+ "host": [
207
+ "{{url}}"
208
+ ],
209
+ "path": [
210
+ "api",
211
+ "superadmin",
212
+ "owners"
213
+ ]
214
+ }
215
+ },
216
+ "response": []
217
+ },
218
+ {
219
+ "name": "Toggle Block Owner",
220
+ "request": {
221
+ "method": "PUT",
222
+ "header": [
223
+ {
224
+ "key": "x-access-token",
225
+ "value": "{{token}}",
226
+ "type": "text"
227
+ }
228
+ ],
229
+ "url": {
230
+ "raw": "{{url}}/api/superadmin/owners/:id/toggle-block",
231
+ "host": [
232
+ "{{url}}"
233
+ ],
234
+ "path": [
235
+ "api",
236
+ "superadmin",
237
+ "owners",
238
+ ":id",
239
+ "toggle-block"
240
+ ],
241
+ "variable": [
242
+ {
243
+ "key": "id",
244
+ "value": "USER_ID_HERE"
245
+ }
246
+ ]
247
+ }
248
+ },
249
+ "response": []
250
+ }
251
+ ]
252
+ },
253
+ {
254
+ "name": "Subscription",
255
+ "item": [
256
+ {
257
+ "name": "Get My Subscription",
258
+ "request": {
259
+ "method": "GET",
260
+ "header": [
261
+ {
262
+ "key": "x-access-token",
263
+ "value": "{{token}}",
264
+ "type": "text"
265
+ }
266
+ ],
267
+ "url": {
268
+ "raw": "{{url}}/api/subscriptions",
269
+ "host": [
270
+ "{{url}}"
271
+ ],
272
+ "path": [
273
+ "api",
274
+ "subscriptions"
275
+ ]
276
+ }
277
+ },
278
+ "response": []
279
+ },
280
+ {
281
+ "name": "Upgrade Plan",
282
+ "request": {
283
+ "method": "POST",
284
+ "header": [
285
+ {
286
+ "key": "x-access-token",
287
+ "value": "{{token}}",
288
+ "type": "text"
289
+ }
290
+ ],
291
+ "body": {
292
+ "mode": "raw",
293
+ "raw": "{\n \"plan\": \"premium\",\n \"paymentGatewaySubscriptionId\": \"sub_12345\"\n}",
294
+ "options": {
295
+ "raw": {
296
+ "language": "json"
297
+ }
298
+ }
299
+ },
300
+ "url": {
301
+ "raw": "{{url}}/api/subscriptions/upgrade",
302
+ "host": [
303
+ "{{url}}"
304
+ ],
305
+ "path": [
306
+ "api",
307
+ "subscriptions",
308
+ "upgrade"
309
+ ]
310
+ }
311
+ },
312
+ "response": []
313
+ }
314
+ ]
315
+ },
316
+ {
317
+ "name": "PG Owner Dashboard",
318
+ "item": [
319
+ {
320
+ "name": "Dashboard Stats",
321
+ "request": {
322
+ "method": "GET",
323
+ "header": [
324
+ {
325
+ "key": "x-access-token",
326
+ "value": "{{token}}",
327
+ "type": "text"
328
+ }
329
+ ],
330
+ "url": {
331
+ "raw": "{{url}}/api/dashboard/admin",
332
+ "host": [
333
+ "{{url}}"
334
+ ],
335
+ "path": [
336
+ "api",
337
+ "dashboard",
338
+ "admin"
339
+ ]
340
+ }
341
+ },
342
+ "response": []
343
+ },
344
+ {
345
+ "name": "Pending Rents",
346
+ "request": {
347
+ "method": "GET",
348
+ "header": [
349
+ {
350
+ "key": "x-access-token",
351
+ "value": "{{token}}",
352
+ "type": "text"
353
+ }
354
+ ],
355
+ "url": {
356
+ "raw": "{{url}}/api/dashboard/admin/pending-rents?month=12&year=2025",
357
+ "host": [
358
+ "{{url}}"
359
+ ],
360
+ "path": [
361
+ "api",
362
+ "dashboard",
363
+ "admin",
364
+ "pending-rents"
365
+ ],
366
+ "query": [
367
+ {
368
+ "key": "month",
369
+ "value": "12"
370
+ },
371
+ {
372
+ "key": "year",
373
+ "value": "2025"
374
+ }
375
+ ]
376
+ }
377
+ },
378
+ "response": []
379
+ }
380
+ ]
381
+ },
382
+ {
383
+ "name": "Room Management",
384
+ "item": [
385
+ {
386
+ "name": "Get Rooms",
387
+ "request": {
388
+ "method": "GET",
389
+ "header": [
390
+ {
391
+ "key": "x-access-token",
392
+ "value": "{{token}}",
393
+ "type": "text"
394
+ }
395
+ ],
396
+ "url": {
397
+ "raw": "{{url}}/api/rooms",
398
+ "host": [
399
+ "{{url}}"
400
+ ],
401
+ "path": [
402
+ "api",
403
+ "rooms"
404
+ ]
405
+ }
406
+ },
407
+ "response": []
408
+ },
409
+ {
410
+ "name": "Add Room",
411
+ "request": {
412
+ "method": "POST",
413
+ "header": [
414
+ {
415
+ "key": "x-access-token",
416
+ "value": "{{token}}",
417
+ "type": "text"
418
+ }
419
+ ],
420
+ "body": {
421
+ "mode": "raw",
422
+ "raw": "{\n \"roomNumber\": \"101\",\n \"floor\": 1,\n \"capacity\": 3,\n \"pricePerMonth\": 6000,\n \"amenities\": \"WiFi, AC\",\n \"roomImages\": [\"data:image/png;base64,...\"]\n}",
423
+ "options": {
424
+ "raw": {
425
+ "language": "json"
426
+ }
427
+ }
428
+ },
429
+ "url": {
430
+ "raw": "{{url}}/api/rooms",
431
+ "host": [
432
+ "{{url}}"
433
+ ],
434
+ "path": [
435
+ "api",
436
+ "rooms"
437
+ ]
438
+ }
439
+ },
440
+ "response": []
441
+ },
442
+ {
443
+ "name": "Update Room",
444
+ "request": {
445
+ "method": "PUT",
446
+ "header": [
447
+ {
448
+ "key": "x-access-token",
449
+ "value": "{{token}}",
450
+ "type": "text"
451
+ }
452
+ ],
453
+ "body": {
454
+ "mode": "raw",
455
+ "raw": "{\n \"pricePerMonth\": 6500,\n \"roomImages\": []\n}",
456
+ "options": {
457
+ "raw": {
458
+ "language": "json"
459
+ }
460
+ }
461
+ },
462
+ "url": {
463
+ "raw": "{{url}}/api/rooms/:id",
464
+ "host": [
465
+ "{{url}}"
466
+ ],
467
+ "path": [
468
+ "api",
469
+ "rooms",
470
+ ":id"
471
+ ],
472
+ "variable": [
473
+ {
474
+ "key": "id",
475
+ "value": "ROOM_ID"
476
+ }
477
+ ]
478
+ }
479
+ },
480
+ "response": []
481
+ },
482
+ {
483
+ "name": "Delete Room",
484
+ "request": {
485
+ "method": "DELETE",
486
+ "header": [
487
+ {
488
+ "key": "x-access-token",
489
+ "value": "{{token}}",
490
+ "type": "text"
491
+ }
492
+ ],
493
+ "url": {
494
+ "raw": "{{url}}/api/rooms/:id",
495
+ "host": [
496
+ "{{url}}"
497
+ ],
498
+ "path": [
499
+ "api",
500
+ "rooms",
501
+ ":id"
502
+ ],
503
+ "variable": [
504
+ {
505
+ "key": "id",
506
+ "value": "ROOM_ID"
507
+ }
508
+ ]
509
+ }
510
+ },
511
+ "response": []
512
+ }
513
+ ]
514
+ },
515
+ {
516
+ "name": "Tenant Management",
517
+ "item": [
518
+ {
519
+ "name": "List Tenants",
520
+ "request": {
521
+ "method": "GET",
522
+ "header": [
523
+ {
524
+ "key": "x-access-token",
525
+ "value": "{{token}}",
526
+ "type": "text"
527
+ }
528
+ ],
529
+ "url": {
530
+ "raw": "{{url}}/api/tenants?status=Active",
531
+ "host": [
532
+ "{{url}}"
533
+ ],
534
+ "path": [
535
+ "api",
536
+ "tenants"
537
+ ],
538
+ "query": [
539
+ {
540
+ "key": "status",
541
+ "value": "Active"
542
+ }
543
+ ]
544
+ }
545
+ },
546
+ "response": []
547
+ },
548
+ {
549
+ "name": "Onboard Tenant",
550
+ "request": {
551
+ "method": "POST",
552
+ "header": [
553
+ {
554
+ "key": "x-access-token",
555
+ "value": "{{token}}",
556
+ "type": "text"
557
+ }
558
+ ],
559
+ "body": {
560
+ "mode": "formdata",
561
+ "formdata": [
562
+ {
563
+ "key": "name",
564
+ "value": "John Doe",
565
+ "type": "text"
566
+ },
567
+ {
568
+ "key": "phone",
569
+ "value": "9988776655",
570
+ "type": "text"
571
+ },
572
+ {
573
+ "key": "email",
574
+ "value": "john.doe@email.com",
575
+ "type": "text"
576
+ },
577
+ {
578
+ "key": "roomNumber",
579
+ "value": "101",
580
+ "type": "text"
581
+ },
582
+ {
583
+ "key": "rent",
584
+ "value": "6000",
585
+ "type": "text"
586
+ },
587
+ {
588
+ "key": "paymentStatus",
589
+ "value": "Paid",
590
+ "type": "text"
591
+ },
592
+ {
593
+ "key": "aadharNo",
594
+ "value": "123456789012",
595
+ "type": "text"
596
+ }
597
+ ]
598
+ },
599
+ "url": {
600
+ "raw": "{{url}}/api/tenants",
601
+ "host": [
602
+ "{{url}}"
603
+ ],
604
+ "path": [
605
+ "api",
606
+ "tenants"
607
+ ]
608
+ }
609
+ },
610
+ "response": []
611
+ },
612
+ {
613
+ "name": "Get Tenant Details",
614
+ "request": {
615
+ "method": "GET",
616
+ "header": [
617
+ {
618
+ "key": "x-access-token",
619
+ "value": "{{token}}",
620
+ "type": "text"
621
+ }
622
+ ],
623
+ "url": {
624
+ "raw": "{{url}}/api/tenants/:id",
625
+ "host": [
626
+ "{{url}}"
627
+ ],
628
+ "path": [
629
+ "api",
630
+ "tenants",
631
+ ":id"
632
+ ],
633
+ "variable": [
634
+ {
635
+ "key": "id",
636
+ "value": "TENANT_ID"
637
+ }
638
+ ]
639
+ }
640
+ },
641
+ "response": []
642
+ },
643
+ {
644
+ "name": "Collect Rent (Manual)",
645
+ "request": {
646
+ "method": "POST",
647
+ "header": [
648
+ {
649
+ "key": "x-access-token",
650
+ "value": "{{token}}",
651
+ "type": "text"
652
+ }
653
+ ],
654
+ "body": {
655
+ "mode": "raw",
656
+ "raw": "{\n \"tenantId\": \"TENANT_ID\",\n \"amount\": 6000,\n \"type\": \"monthly_rent\"\n}",
657
+ "options": {
658
+ "raw": {
659
+ "language": "json"
660
+ }
661
+ }
662
+ },
663
+ "url": {
664
+ "raw": "{{url}}/api/payments",
665
+ "host": [
666
+ "{{url}}"
667
+ ],
668
+ "path": [
669
+ "api",
670
+ "payments"
671
+ ]
672
+ }
673
+ },
674
+ "response": []
675
+ },
676
+ {
677
+ "name": "Move Out Tenant",
678
+ "request": {
679
+ "method": "POST",
680
+ "header": [
681
+ {
682
+ "key": "x-access-token",
683
+ "value": "{{token}}",
684
+ "type": "text"
685
+ }
686
+ ],
687
+ "url": {
688
+ "raw": "{{url}}/api/tenants/:id/move-out",
689
+ "host": [
690
+ "{{url}}"
691
+ ],
692
+ "path": [
693
+ "api",
694
+ "tenants",
695
+ ":id",
696
+ "move-out"
697
+ ],
698
+ "variable": [
699
+ {
700
+ "key": "id",
701
+ "value": "TENANT_ID"
702
+ }
703
+ ]
704
+ }
705
+ },
706
+ "response": []
707
+ }
708
+ ]
709
+ },
710
+ {
711
+ "name": "Resident App",
712
+ "item": [
713
+ {
714
+ "name": "Resident Dashboard",
715
+ "request": {
716
+ "method": "GET",
717
+ "header": [
718
+ {
719
+ "key": "x-access-token",
720
+ "value": "{{token}}",
721
+ "type": "text"
722
+ }
723
+ ],
724
+ "url": {
725
+ "raw": "{{url}}/api/dashboard/customer",
726
+ "host": [
727
+ "{{url}}"
728
+ ],
729
+ "path": [
730
+ "api",
731
+ "dashboard",
732
+ "customer"
733
+ ]
734
+ }
735
+ },
736
+ "response": []
737
+ },
738
+ {
739
+ "name": "Announcements",
740
+ "request": {
741
+ "method": "GET",
742
+ "header": [
743
+ {
744
+ "key": "x-access-token",
745
+ "value": "{{token}}",
746
+ "type": "text"
747
+ }
748
+ ],
749
+ "url": {
750
+ "raw": "{{url}}/api/dashboard/announcements",
751
+ "host": [
752
+ "{{url}}"
753
+ ],
754
+ "path": [
755
+ "api",
756
+ "dashboard",
757
+ "announcements"
758
+ ]
759
+ }
760
+ },
761
+ "response": []
762
+ },
763
+ {
764
+ "name": "My Payment History",
765
+ "request": {
766
+ "method": "GET",
767
+ "header": [
768
+ {
769
+ "key": "x-access-token",
770
+ "value": "{{token}}",
771
+ "type": "text"
772
+ }
773
+ ],
774
+ "url": {
775
+ "raw": "{{url}}/api/payments/my-history",
776
+ "host": [
777
+ "{{url}}"
778
+ ],
779
+ "path": [
780
+ "api",
781
+ "payments",
782
+ "my-history"
783
+ ]
784
+ }
785
+ },
786
+ "response": []
787
+ }
788
+ ]
789
+ },
790
+ {
791
+ "name": "Legal",
792
+ "item": [
793
+ {
794
+ "name": "Terms & Conditions",
795
+ "request": {
796
+ "method": "GET",
797
+ "header": [],
798
+ "url": {
799
+ "raw": "{{url}}/api/legal/terms",
800
+ "host": [
801
+ "{{url}}"
802
+ ],
803
+ "path": [
804
+ "api",
805
+ "legal",
806
+ "terms"
807
+ ]
808
+ }
809
+ },
810
+ "response": []
811
+ },
812
+ {
813
+ "name": "Privacy Policy",
814
+ "request": {
815
+ "method": "GET",
816
+ "header": [],
817
+ "url": {
818
+ "raw": "{{url}}/api/legal/privacy",
819
+ "host": [
820
+ "{{url}}"
821
+ ],
822
+ "path": [
823
+ "api",
824
+ "legal",
825
+ "privacy"
826
+ ]
827
+ }
828
+ },
829
+ "response": []
830
+ }
831
+ ]
832
+ },
833
+ {
834
+ "name": "Plans",
835
+ "item": [
836
+ {
837
+ "name": "Get All Plans (Public)",
838
+ "request": {
839
+ "method": "GET",
840
+ "header": [],
841
+ "url": {
842
+ "raw": "{{url}}/api/plans",
843
+ "host": [
844
+ "{{url}}"
845
+ ],
846
+ "path": [
847
+ "api",
848
+ "plans"
849
+ ]
850
+ }
851
+ },
852
+ "response": []
853
+ },
854
+ {
855
+ "name": "Get Plan By Id",
856
+ "request": {
857
+ "method": "GET",
858
+ "header": [],
859
+ "url": {
860
+ "raw": "{{url}}/api/plans/:id",
861
+ "host": [
862
+ "{{url}}"
863
+ ],
864
+ "path": [
865
+ "api",
866
+ "plans",
867
+ ":id"
868
+ ],
869
+ "variable": [
870
+ {
871
+ "key": "id",
872
+ "value": "PLAN_ID"
873
+ }
874
+ ]
875
+ }
876
+ },
877
+ "response": []
878
+ },
879
+ {
880
+ "name": "Create Plan (Super Admin)",
881
+ "request": {
882
+ "method": "POST",
883
+ "header": [
884
+ {
885
+ "key": "x-access-token",
886
+ "value": "{{token}}",
887
+ "type": "text"
888
+ }
889
+ ],
890
+ "body": {
891
+ "mode": "raw",
892
+ "raw": "{\n \"name\": \"Gold Monthly\",\n \"type\": \"premium\",\n \"price\": 999,\n \"interval\": \"monthly\",\n \"features\": [\"Unlimited Rooms\", \"Priority Support\"]\n}",
893
+ "options": {
894
+ "raw": {
895
+ "language": "json"
896
+ }
897
+ }
898
+ },
899
+ "url": {
900
+ "raw": "{{url}}/api/plans",
901
+ "host": [
902
+ "{{url}}"
903
+ ],
904
+ "path": [
905
+ "api",
906
+ "plans"
907
+ ]
908
+ }
909
+ },
910
+ "response": []
911
+ },
912
+ {
913
+ "name": "Update Plan (Super Admin)",
914
+ "request": {
915
+ "method": "PUT",
916
+ "header": [
917
+ {
918
+ "key": "x-access-token",
919
+ "value": "{{token}}",
920
+ "type": "text"
921
+ }
922
+ ],
923
+ "body": {
924
+ "mode": "raw",
925
+ "raw": "{\n \"price\": 1299\n}",
926
+ "options": {
927
+ "raw": {
928
+ "language": "json"
929
+ }
930
+ }
931
+ },
932
+ "url": {
933
+ "raw": "{{url}}/api/plans/:id",
934
+ "host": [
935
+ "{{url}}"
936
+ ],
937
+ "path": [
938
+ "api",
939
+ "plans",
940
+ ":id"
941
+ ],
942
+ "variable": [
943
+ {
944
+ "key": "id",
945
+ "value": "PLAN_ID"
946
+ }
947
+ ]
948
+ }
949
+ },
950
+ "response": []
951
+ },
952
+ {
953
+ "name": "Delete Plan (Super Admin)",
954
+ "request": {
955
+ "method": "DELETE",
956
+ "header": [
957
+ {
958
+ "key": "x-access-token",
959
+ "value": "{{token}}",
960
+ "type": "text"
961
+ }
962
+ ],
963
+ "url": {
964
+ "raw": "{{url}}/api/plans/:id",
965
+ "host": [
966
+ "{{url}}"
967
+ ],
968
+ "path": [
969
+ "api",
970
+ "plans",
971
+ ":id"
972
+ ],
973
+ "variable": [
974
+ {
975
+ "key": "id",
976
+ "value": "PLAN_ID"
977
+ }
978
+ ]
979
+ }
980
+ },
981
+ "response": []
982
+ }
983
+ ]
984
+ },
985
+ {
986
+ "name": "Payments (Cashfree)",
987
+ "item": [
988
+ {
989
+ "name": "Initiate Payment",
990
+ "request": {
991
+ "method": "POST",
992
+ "header": [
993
+ {
994
+ "key": "x-access-token",
995
+ "value": "{{token}}",
996
+ "type": "text"
997
+ }
998
+ ],
999
+ "body": {
1000
+ "mode": "raw",
1001
+ "raw": "{\n \"amount\": 100,\n \"purpose\": \"Subscription/Rent\",\n \"customerPhone\": \"9988776655\",\n \"planId\": \"OPTIONAL_PLAN_ID\",\n \"userId\": \"OPTIONAL_TARGET_USER_ID\"\n}",
1002
+ "options": {
1003
+ "raw": {
1004
+ "language": "json"
1005
+ }
1006
+ }
1007
+ },
1008
+ "url": {
1009
+ "raw": "{{url}}/api/payments/cashfree/initiate",
1010
+ "host": [
1011
+ "{{url}}"
1012
+ ],
1013
+ "path": [
1014
+ "api",
1015
+ "payments",
1016
+ "cashfree",
1017
+ "initiate"
1018
+ ]
1019
+ }
1020
+ },
1021
+ "response": []
1022
+ },
1023
+ {
1024
+ "name": "Checkout Page (Manual)",
1025
+ "request": {
1026
+ "method": "GET",
1027
+ "header": [],
1028
+ "url": {
1029
+ "raw": "{{url}}/api/payments/cashfree/checkout?sessionId=SESSION_ID_HERE",
1030
+ "host": [
1031
+ "{{url}}"
1032
+ ],
1033
+ "path": [
1034
+ "api",
1035
+ "payments",
1036
+ "cashfree",
1037
+ "checkout"
1038
+ ],
1039
+ "query": [
1040
+ {
1041
+ "key": "sessionId",
1042
+ "value": "SESSION_ID_HERE"
1043
+ }
1044
+ ]
1045
+ }
1046
+ },
1047
+ "response": []
1048
+ },
1049
+ {
1050
+ "name": "Check Status",
1051
+ "request": {
1052
+ "method": "POST",
1053
+ "header": [
1054
+ {
1055
+ "key": "x-access-token",
1056
+ "value": "{{token}}",
1057
+ "type": "text"
1058
+ }
1059
+ ],
1060
+ "body": {
1061
+ "mode": "raw",
1062
+ "raw": "{\n \"orderId\": \"ORDER_ID_HERE\"\n}",
1063
+ "options": {
1064
+ "raw": {
1065
+ "language": "json"
1066
+ }
1067
+ }
1068
+ },
1069
+ "url": {
1070
+ "raw": "{{url}}/api/payments/cashfree/status",
1071
+ "host": [
1072
+ "{{url}}"
1073
+ ],
1074
+ "path": [
1075
+ "api",
1076
+ "payments",
1077
+ "cashfree",
1078
+ "status"
1079
+ ]
1080
+ }
1081
+ },
1082
+ "response": []
1083
+ },
1084
+ {
1085
+ "name": "Webhook Callback",
1086
+ "request": {
1087
+ "method": "POST",
1088
+ "header": [],
1089
+ "body": {
1090
+ "mode": "raw",
1091
+ "raw": "{\n \"data\": { \"order\": { \"order_id\": \"ORDER_123\", \"payment_session_id\": \"session_123\" }, \"payment\": { \"payment_status\": \"SUCCESS\" } },\n \"event_time\": \"2024-12-25T10:00:00Z\",\n \"type\": \"PAYMENT_SUCCESS_WEBHOOK\"\n}",
1092
+ "options": {
1093
+ "raw": {
1094
+ "language": "json"
1095
+ }
1096
+ }
1097
+ },
1098
+ "url": {
1099
+ "raw": "{{url}}/api/payments/cashfree/callback",
1100
+ "host": [
1101
+ "{{url}}"
1102
+ ],
1103
+ "path": [
1104
+ "api",
1105
+ "payments",
1106
+ "cashfree",
1107
+ "callback"
1108
+ ]
1109
+ }
1110
+ },
1111
+ "response": []
1112
+ }
1113
+ ]
1114
+ },
1115
+ {
1116
+ "name": "Payments (PhonePe)",
1117
+ "item": [
1118
+ {
1119
+ "name": "Initiate Payment",
1120
+ "request": {
1121
+ "method": "POST",
1122
+ "header": [
1123
+ {
1124
+ "key": "x-access-token",
1125
+ "value": "{{token}}",
1126
+ "type": "text"
1127
+ }
1128
+ ],
1129
+ "body": {
1130
+ "mode": "raw",
1131
+ "raw": "{\n \"amount\": 100,\n \"purpose\": \"subscription\",\n \"planId\": \"PLAN_ID_HERE\"\n}",
1132
+ "options": {
1133
+ "raw": {
1134
+ "language": "json"
1135
+ }
1136
+ }
1137
+ },
1138
+ "url": {
1139
+ "raw": "{{url}}/api/payments/phonepe/initiate",
1140
+ "host": [
1141
+ "{{url}}"
1142
+ ],
1143
+ "path": [
1144
+ "api",
1145
+ "payments",
1146
+ "phonepe",
1147
+ "initiate"
1148
+ ]
1149
+ }
1150
+ },
1151
+ "response": []
1152
+ },
1153
+ {
1154
+ "name": "Check Status",
1155
+ "request": {
1156
+ "method": "POST",
1157
+ "header": [
1158
+ {
1159
+ "key": "x-access-token",
1160
+ "value": "{{token}}",
1161
+ "type": "text"
1162
+ }
1163
+ ],
1164
+ "body": {
1165
+ "mode": "raw",
1166
+ "raw": "{\n \"transactionId\": \"TXN_ID_FROM_INITIATE\"\n}",
1167
+ "options": {
1168
+ "raw": {
1169
+ "language": "json"
1170
+ }
1171
+ }
1172
+ },
1173
+ "url": {
1174
+ "raw": "{{url}}/api/payments/phonepe/status",
1175
+ "host": [
1176
+ "{{url}}"
1177
+ ],
1178
+ "path": [
1179
+ "api",
1180
+ "payments",
1181
+ "phonepe",
1182
+ "status"
1183
+ ]
1184
+ }
1185
+ },
1186
+ "response": []
1187
+ },
1188
+ {
1189
+ "name": "Simulate Webhook",
1190
+ "request": {
1191
+ "method": "POST",
1192
+ "header": [],
1193
+ "body": {
1194
+ "mode": "raw",
1195
+ "raw": "{\n \"response\": \"BASE64_ENCODED_PAYLOAD_FROM_PHONEPE\"\n}",
1196
+ "options": {
1197
+ "raw": {
1198
+ "language": "json"
1199
+ }
1200
+ }
1201
+ },
1202
+ "url": {
1203
+ "raw": "{{url}}/api/payments/phonepe/callback",
1204
+ "host": [
1205
+ "{{url}}"
1206
+ ],
1207
+ "path": [
1208
+ "api",
1209
+ "payments",
1210
+ "phonepe",
1211
+ "callback"
1212
+ ]
1213
+ }
1214
+ },
1215
+ "response": []
1216
+ }
1217
+ ]
1218
+ },
1219
+ {
1220
+ "name": "Finance",
1221
+ "item": [
1222
+ {
1223
+ "name": "Add Expense",
1224
+ "request": {
1225
+ "method": "POST",
1226
+ "header": [
1227
+ {
1228
+ "key": "x-access-token",
1229
+ "value": "{{token}}",
1230
+ "type": "text"
1231
+ }
1232
+ ],
1233
+ "body": {
1234
+ "mode": "raw",
1235
+ "raw": "{\n \"title\": \"Plumbing Repair\",\n \"amount\": 1500,\n \"category\": \"maintenance\",\n \"description\": \"Fixed leaking pipe\",\n \"date\": \"2024-12-19\"\n}",
1236
+ "options": {
1237
+ "raw": {
1238
+ "language": "json"
1239
+ }
1240
+ }
1241
+ },
1242
+ "url": {
1243
+ "raw": "{{url}}/api/finance/expenses",
1244
+ "host": [
1245
+ "{{url}}"
1246
+ ],
1247
+ "path": [
1248
+ "api",
1249
+ "finance",
1250
+ "expenses"
1251
+ ]
1252
+ }
1253
+ },
1254
+ "response": []
1255
+ },
1256
+ {
1257
+ "name": "Get Expenses",
1258
+ "request": {
1259
+ "method": "GET",
1260
+ "header": [
1261
+ {
1262
+ "key": "x-access-token",
1263
+ "value": "{{token}}",
1264
+ "type": "text"
1265
+ }
1266
+ ],
1267
+ "url": {
1268
+ "raw": "{{url}}/api/finance/expenses?year=2024&month=12",
1269
+ "host": [
1270
+ "{{url}}"
1271
+ ],
1272
+ "path": [
1273
+ "api",
1274
+ "finance",
1275
+ "expenses"
1276
+ ],
1277
+ "query": [
1278
+ {
1279
+ "key": "year",
1280
+ "value": "2024"
1281
+ },
1282
+ {
1283
+ "key": "month",
1284
+ "value": "12"
1285
+ }
1286
+ ]
1287
+ }
1288
+ },
1289
+ "response": []
1290
+ },
1291
+ {
1292
+ "name": "Delete Expense",
1293
+ "request": {
1294
+ "method": "DELETE",
1295
+ "header": [
1296
+ {
1297
+ "key": "x-access-token",
1298
+ "value": "{{token}}",
1299
+ "type": "text"
1300
+ }
1301
+ ],
1302
+ "url": {
1303
+ "raw": "{{url}}/api/finance/expenses/:id",
1304
+ "host": [
1305
+ "{{url}}"
1306
+ ],
1307
+ "path": [
1308
+ "api",
1309
+ "finance",
1310
+ "expenses",
1311
+ ":id"
1312
+ ],
1313
+ "variable": [
1314
+ {
1315
+ "key": "id",
1316
+ "value": "EXPENSE_ID"
1317
+ }
1318
+ ]
1319
+ }
1320
+ },
1321
+ "response": []
1322
+ },
1323
+ {
1324
+ "name": "Get Financial Report",
1325
+ "request": {
1326
+ "method": "GET",
1327
+ "header": [
1328
+ {
1329
+ "key": "x-access-token",
1330
+ "value": "{{token}}",
1331
+ "type": "text"
1332
+ }
1333
+ ],
1334
+ "url": {
1335
+ "raw": "{{url}}/api/finance/report?year=2024&month=12",
1336
+ "host": [
1337
+ "{{url}}"
1338
+ ],
1339
+ "path": [
1340
+ "api",
1341
+ "finance",
1342
+ "report"
1343
+ ],
1344
+ "query": [
1345
+ {
1346
+ "key": "year",
1347
+ "value": "2024"
1348
+ },
1349
+ {
1350
+ "key": "month",
1351
+ "value": "12"
1352
+ }
1353
+ ]
1354
+ }
1355
+ },
1356
+ "response": []
1357
+ },
1358
+ {
1359
+ "name": "Get Yearly Earnings",
1360
+ "request": {
1361
+ "method": "GET",
1362
+ "header": [
1363
+ {
1364
+ "key": "x-access-token",
1365
+ "value": "{{token}}",
1366
+ "type": "text"
1367
+ }
1368
+ ],
1369
+ "url": {
1370
+ "raw": "{{url}}/api/finance/earnings/yearly?year=2024",
1371
+ "host": [
1372
+ "{{url}}"
1373
+ ],
1374
+ "path": [
1375
+ "api",
1376
+ "finance",
1377
+ "earnings",
1378
+ "yearly"
1379
+ ],
1380
+ "query": [
1381
+ {
1382
+ "key": "year",
1383
+ "value": "2024"
1384
+ }
1385
+ ]
1386
+ }
1387
+ },
1388
+ "response": []
1389
+ },
1390
+ {
1391
+ "name": "Get Profit Loss Comparison",
1392
+ "request": {
1393
+ "method": "GET",
1394
+ "header": [
1395
+ {
1396
+ "key": "x-access-token",
1397
+ "value": "{{token}}",
1398
+ "type": "text"
1399
+ }
1400
+ ],
1401
+ "url": {
1402
+ "raw": "{{url}}/api/finance/profit-loss-comparison",
1403
+ "host": [
1404
+ "{{url}}"
1405
+ ],
1406
+ "path": [
1407
+ "api",
1408
+ "finance",
1409
+ "profit-loss-comparison"
1410
+ ]
1411
+ }
1412
+ },
1413
+ "response": []
1414
+ }
1415
+ ]
1416
+ },
1417
+ {
1418
+ "name": "Dining",
1419
+ "item": [
1420
+ {
1421
+ "name": "Get Weekly Menu",
1422
+ "request": {
1423
+ "method": "GET",
1424
+ "header": [
1425
+ {
1426
+ "key": "x-access-token",
1427
+ "value": "{{token}}",
1428
+ "type": "text"
1429
+ }
1430
+ ],
1431
+ "url": {
1432
+ "raw": "{{url}}/api/dining",
1433
+ "host": [
1434
+ "{{url}}"
1435
+ ],
1436
+ "path": [
1437
+ "api",
1438
+ "dining"
1439
+ ]
1440
+ }
1441
+ },
1442
+ "response": []
1443
+ },
1444
+ {
1445
+ "name": "Update Weekly Menu",
1446
+ "request": {
1447
+ "method": "POST",
1448
+ "header": [
1449
+ {
1450
+ "key": "x-access-token",
1451
+ "value": "{{token}}",
1452
+ "type": "text"
1453
+ }
1454
+ ],
1455
+ "body": {
1456
+ "mode": "raw",
1457
+ "raw": "[\n {\n \"day\": \"Monday\",\n \"breakfast\": { \"items\": [\"Idli\", \"Sambar\"], \"time\": \"08:00 - 10:00\", \"enabled\": true },\n \"lunch\": { \"items\": [\"Rice\", \"Dal\"], \"time\": \"12:30 - 14:00\", \"enabled\": true },\n \"dinner\": { \"items\": [\"Roti\", \"Veg\"], \"time\": \"20:00 - 22:00\", \"enabled\": true },\n \"specialNote\": \"No Onion\"\n }\n]",
1458
+ "options": {
1459
+ "raw": {
1460
+ "language": "json"
1461
+ }
1462
+ }
1463
+ },
1464
+ "url": {
1465
+ "raw": "{{url}}/api/dining",
1466
+ "host": [
1467
+ "{{url}}"
1468
+ ],
1469
+ "path": [
1470
+ "api",
1471
+ "dining"
1472
+ ]
1473
+ }
1474
+ },
1475
+ "response": []
1476
+ }
1477
+ ]
1478
+ },
1479
+ {
1480
+ "name": "Notifications",
1481
+ "item": [
1482
+ {
1483
+ "name": "Register Push Token",
1484
+ "request": {
1485
+ "method": "POST",
1486
+ "header": [
1487
+ {
1488
+ "key": "x-access-token",
1489
+ "value": "{{token}}",
1490
+ "type": "text"
1491
+ }
1492
+ ],
1493
+ "body": {
1494
+ "mode": "raw",
1495
+ "raw": "{\n \"pushToken\": \"ExponentPushToken[xxxxxxxxxxxx]\"\n}",
1496
+ "options": {
1497
+ "raw": {
1498
+ "language": "json"
1499
+ }
1500
+ }
1501
+ },
1502
+ "url": {
1503
+ "raw": "{{url}}/api/notifications/register-token",
1504
+ "host": [
1505
+ "{{url}}"
1506
+ ],
1507
+ "path": [
1508
+ "api",
1509
+ "notifications",
1510
+ "register-token"
1511
+ ]
1512
+ }
1513
+ },
1514
+ "response": []
1515
+ },
1516
+ {
1517
+ "name": "Get My Notifications",
1518
+ "request": {
1519
+ "method": "GET",
1520
+ "header": [
1521
+ {
1522
+ "key": "x-access-token",
1523
+ "value": "{{token}}",
1524
+ "type": "text"
1525
+ }
1526
+ ],
1527
+ "url": {
1528
+ "raw": "{{url}}/api/notifications",
1529
+ "host": [
1530
+ "{{url}}"
1531
+ ],
1532
+ "path": [
1533
+ "api",
1534
+ "notifications"
1535
+ ]
1536
+ }
1537
+ },
1538
+ "response": []
1539
+ },
1540
+ {
1541
+ "name": "Mark Read",
1542
+ "request": {
1543
+ "method": "PUT",
1544
+ "header": [
1545
+ {
1546
+ "key": "x-access-token",
1547
+ "value": "{{token}}",
1548
+ "type": "text"
1549
+ }
1550
+ ],
1551
+ "url": {
1552
+ "raw": "{{url}}/api/notifications/:id/read",
1553
+ "host": [
1554
+ "{{url}}"
1555
+ ],
1556
+ "path": [
1557
+ "api",
1558
+ "notifications",
1559
+ ":id",
1560
+ "read"
1561
+ ],
1562
+ "variable": [
1563
+ {
1564
+ "key": "id",
1565
+ "value": "NOTIF_ID"
1566
+ }
1567
+ ]
1568
+ }
1569
+ },
1570
+ "response": []
1571
+ },
1572
+ {
1573
+ "name": "Send Notification (Test)",
1574
+ "request": {
1575
+ "method": "POST",
1576
+ "header": [
1577
+ {
1578
+ "key": "x-access-token",
1579
+ "value": "{{token}}",
1580
+ "type": "text"
1581
+ }
1582
+ ],
1583
+ "body": {
1584
+ "mode": "raw",
1585
+ "raw": "{\n \"userId\": \"TARGET_USER_UUID\",\n \"title\": \"Rent Due\",\n \"message\": \"Your rent is due tomorrow.\",\n \"type\": \"rent\"\n}",
1586
+ "options": {
1587
+ "raw": {
1588
+ "language": "json"
1589
+ }
1590
+ }
1591
+ },
1592
+ "url": {
1593
+ "raw": "{{url}}/api/notifications/send",
1594
+ "host": [
1595
+ "{{url}}"
1596
+ ],
1597
+ "path": [
1598
+ "api",
1599
+ "notifications",
1600
+ "send"
1601
+ ]
1602
+ }
1603
+ },
1604
+ "response": []
1605
+ }
1606
+ ]
1607
+ },
1608
+ {
1609
+ "name": "Complaints",
1610
+ "item": [
1611
+ {
1612
+ "name": "Create Complaint",
1613
+ "request": {
1614
+ "method": "POST",
1615
+ "header": [
1616
+ {
1617
+ "key": "x-access-token",
1618
+ "value": "{{token}}",
1619
+ "type": "text"
1620
+ }
1621
+ ],
1622
+ "body": {
1623
+ "mode": "raw",
1624
+ "raw": "{\n \"title\": \"Leaking Tap\",\n \"description\": \"The bathroom tap is leaking since morning.\",\n \"category\": \"Plumbing\",\n \"priority\": \"Medium\"\n}",
1625
+ "options": {
1626
+ "raw": {
1627
+ "language": "json"
1628
+ }
1629
+ }
1630
+ },
1631
+ "url": {
1632
+ "raw": "{{url}}/api/complaints",
1633
+ "host": [
1634
+ "{{url}}"
1635
+ ],
1636
+ "path": [
1637
+ "api",
1638
+ "complaints"
1639
+ ]
1640
+ }
1641
+ },
1642
+ "response": []
1643
+ },
1644
+ {
1645
+ "name": "Get My Complaints (Tenant)",
1646
+ "request": {
1647
+ "method": "GET",
1648
+ "header": [
1649
+ {
1650
+ "key": "x-access-token",
1651
+ "value": "{{token}}",
1652
+ "type": "text"
1653
+ }
1654
+ ],
1655
+ "url": {
1656
+ "raw": "{{url}}/api/complaints/my-complaints",
1657
+ "host": [
1658
+ "{{url}}"
1659
+ ],
1660
+ "path": [
1661
+ "api",
1662
+ "complaints",
1663
+ "my-complaints"
1664
+ ]
1665
+ }
1666
+ },
1667
+ "response": []
1668
+ },
1669
+ {
1670
+ "name": "Get Support (Admin)",
1671
+ "request": {
1672
+ "method": "GET",
1673
+ "header": [
1674
+ {
1675
+ "key": "x-access-token",
1676
+ "value": "{{token}}",
1677
+ "type": "text"
1678
+ }
1679
+ ],
1680
+ "url": {
1681
+ "raw": "{{url}}/api/complaints/admin",
1682
+ "host": [
1683
+ "{{url}}"
1684
+ ],
1685
+ "path": [
1686
+ "api",
1687
+ "complaints",
1688
+ "admin"
1689
+ ]
1690
+ }
1691
+ },
1692
+ "response": []
1693
+ },
1694
+ {
1695
+ "name": "Update Status (Admin)",
1696
+ "request": {
1697
+ "method": "PUT",
1698
+ "header": [
1699
+ {
1700
+ "key": "x-access-token",
1701
+ "value": "{{token}}",
1702
+ "type": "text"
1703
+ }
1704
+ ],
1705
+ "body": {
1706
+ "mode": "raw",
1707
+ "raw": "{\n \"status\": \"In Progress\",\n \"adminRemark\": \"Assigned to plumber.\"\n}",
1708
+ "options": {
1709
+ "raw": {
1710
+ "language": "json"
1711
+ }
1712
+ }
1713
+ },
1714
+ "url": {
1715
+ "raw": "{{url}}/api/complaints/:id/status",
1716
+ "host": [
1717
+ "{{url}}"
1718
+ ],
1719
+ "path": [
1720
+ "api",
1721
+ "complaints",
1722
+ ":id",
1723
+ "status"
1724
+ ],
1725
+ "variable": [
1726
+ {
1727
+ "key": "id",
1728
+ "value": "COMPLAINT_ID"
1729
+ }
1730
+ ]
1731
+ }
1732
+ },
1733
+ "response": []
1734
+ }
1735
+ ]
1736
+ }
1737
+ ],
1738
+ "variable": [
1739
+ {
1740
+ "key": "url",
1741
+ "value": "http://localhost:5000",
1742
+ "type": "string"
1743
+ }
1744
+ ]
1745
+ }