@lootlog/sdk 0.1.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.
@@ -0,0 +1,1608 @@
1
+ {
2
+ "openapi": "3.0.0",
3
+ "info": {
4
+ "title": "Activity Logger API",
5
+ "version": "1.0",
6
+ "description": "The Activity Logger API documentation",
7
+ "contact": {}
8
+ },
9
+ "servers": [
10
+ {
11
+ "url": "https://activity.lootlog.pl"
12
+ }
13
+ ],
14
+ "paths": {
15
+ "/guilds/{guildId}/activity-logs": {
16
+ "get": {
17
+ "tags": ["guilds"],
18
+ "operationId": "ActivitiesController_findByGuild",
19
+ "parameters": [
20
+ {
21
+ "name": "guildId",
22
+ "in": "path",
23
+ "schema": {
24
+ "type": "string"
25
+ },
26
+ "required": true
27
+ },
28
+ {
29
+ "name": "type",
30
+ "in": "query",
31
+ "schema": {
32
+ "type": "array",
33
+ "items": {
34
+ "type": "string",
35
+ "enum": ["CONNECT_EVENT", "DISCONNECT_EVENT"]
36
+ }
37
+ },
38
+ "required": false
39
+ },
40
+ {
41
+ "name": "source",
42
+ "in": "query",
43
+ "schema": {
44
+ "type": "array",
45
+ "items": {
46
+ "type": "string",
47
+ "enum": ["GAME", "WEB_APP"]
48
+ }
49
+ },
50
+ "required": false
51
+ },
52
+ {
53
+ "name": "playerName",
54
+ "in": "query",
55
+ "schema": {
56
+ "type": "string"
57
+ },
58
+ "required": false
59
+ },
60
+ {
61
+ "name": "clanName",
62
+ "in": "query",
63
+ "schema": {
64
+ "type": "string"
65
+ },
66
+ "required": false
67
+ },
68
+ {
69
+ "name": "world",
70
+ "in": "query",
71
+ "schema": {
72
+ "type": "string"
73
+ },
74
+ "required": false
75
+ },
76
+ {
77
+ "name": "startDate",
78
+ "in": "query",
79
+ "schema": {
80
+ "type": "string",
81
+ "format": "date-time",
82
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
83
+ },
84
+ "required": false
85
+ },
86
+ {
87
+ "name": "endDate",
88
+ "in": "query",
89
+ "schema": {
90
+ "type": "string",
91
+ "format": "date-time",
92
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
93
+ },
94
+ "required": false
95
+ },
96
+ {
97
+ "name": "cursor",
98
+ "in": "query",
99
+ "schema": {
100
+ "type": "string"
101
+ },
102
+ "required": false
103
+ },
104
+ {
105
+ "name": "limit",
106
+ "in": "query",
107
+ "schema": {
108
+ "type": "integer",
109
+ "minimum": 1,
110
+ "maximum": 100,
111
+ "default": 50
112
+ },
113
+ "required": false
114
+ }
115
+ ],
116
+ "security": [
117
+ {
118
+ "apiKey": []
119
+ }
120
+ ],
121
+ "responses": {
122
+ "200": {
123
+ "description": "",
124
+ "content": {
125
+ "application/json": {
126
+ "schema": {
127
+ "$ref": "#/components/schemas/PaginatedActivitiesResponseDto"
128
+ }
129
+ }
130
+ }
131
+ },
132
+ "401": {
133
+ "description": "",
134
+ "content": {
135
+ "application/json": {
136
+ "schema": {
137
+ "type": "object",
138
+ "properties": {
139
+ "message": {
140
+ "type": "string"
141
+ }
142
+ },
143
+ "required": ["message"]
144
+ }
145
+ }
146
+ }
147
+ },
148
+ "403": {
149
+ "description": "",
150
+ "content": {
151
+ "application/json": {
152
+ "schema": {
153
+ "type": "object",
154
+ "properties": {
155
+ "message": {
156
+ "type": "string"
157
+ }
158
+ },
159
+ "required": ["message"]
160
+ }
161
+ }
162
+ }
163
+ },
164
+ "429": {
165
+ "description": "",
166
+ "content": {
167
+ "application/json": {
168
+ "schema": {
169
+ "type": "object",
170
+ "properties": {
171
+ "message": {
172
+ "type": "string"
173
+ }
174
+ },
175
+ "required": ["message"]
176
+ }
177
+ }
178
+ }
179
+ },
180
+ "503": {
181
+ "description": "",
182
+ "content": {
183
+ "application/json": {
184
+ "schema": {
185
+ "type": "object",
186
+ "properties": {
187
+ "message": {
188
+ "type": "string"
189
+ },
190
+ "statusCode": {
191
+ "type": "number",
192
+ "enum": [503]
193
+ }
194
+ },
195
+ "required": ["message", "statusCode"]
196
+ }
197
+ }
198
+ }
199
+ }
200
+ },
201
+ "summary": "Get activities for a specific guild",
202
+ "x-lootlog-access": "read",
203
+ "x-lootlog-data": "organization"
204
+ }
205
+ },
206
+ "/guilds/{guildId}/activity-logs/actor-name-suggestions": {
207
+ "get": {
208
+ "tags": ["guilds"],
209
+ "operationId": "ActivitiesController_suggestActorNames",
210
+ "parameters": [
211
+ {
212
+ "name": "guildId",
213
+ "in": "path",
214
+ "schema": {
215
+ "type": "string"
216
+ },
217
+ "required": true
218
+ },
219
+ {
220
+ "name": "search",
221
+ "in": "query",
222
+ "schema": {
223
+ "type": "string",
224
+ "maxLength": 50
225
+ },
226
+ "required": false
227
+ },
228
+ {
229
+ "name": "limit",
230
+ "in": "query",
231
+ "schema": {
232
+ "type": "integer",
233
+ "minimum": 1,
234
+ "maximum": 50,
235
+ "default": 10
236
+ },
237
+ "required": false
238
+ }
239
+ ],
240
+ "security": [
241
+ {
242
+ "apiKey": []
243
+ }
244
+ ],
245
+ "responses": {
246
+ "200": {
247
+ "description": "",
248
+ "content": {
249
+ "application/json": {
250
+ "schema": {
251
+ "$ref": "#/components/schemas/ActorNameSuggestionsResponseDto_Output"
252
+ }
253
+ }
254
+ }
255
+ },
256
+ "401": {
257
+ "description": "",
258
+ "content": {
259
+ "application/json": {
260
+ "schema": {
261
+ "type": "object",
262
+ "properties": {
263
+ "message": {
264
+ "type": "string"
265
+ }
266
+ },
267
+ "required": ["message"]
268
+ }
269
+ }
270
+ }
271
+ },
272
+ "403": {
273
+ "description": "",
274
+ "content": {
275
+ "application/json": {
276
+ "schema": {
277
+ "type": "object",
278
+ "properties": {
279
+ "message": {
280
+ "type": "string"
281
+ }
282
+ },
283
+ "required": ["message"]
284
+ }
285
+ }
286
+ }
287
+ },
288
+ "429": {
289
+ "description": "",
290
+ "content": {
291
+ "application/json": {
292
+ "schema": {
293
+ "type": "object",
294
+ "properties": {
295
+ "message": {
296
+ "type": "string"
297
+ }
298
+ },
299
+ "required": ["message"]
300
+ }
301
+ }
302
+ }
303
+ },
304
+ "503": {
305
+ "description": "",
306
+ "content": {
307
+ "application/json": {
308
+ "schema": {
309
+ "type": "object",
310
+ "properties": {
311
+ "message": {
312
+ "type": "string"
313
+ },
314
+ "statusCode": {
315
+ "type": "number",
316
+ "enum": [503]
317
+ }
318
+ },
319
+ "required": ["message", "statusCode"]
320
+ }
321
+ }
322
+ }
323
+ }
324
+ },
325
+ "summary": "Get actor name suggestions for a guild",
326
+ "x-lootlog-access": "read",
327
+ "x-lootlog-data": "organization"
328
+ }
329
+ },
330
+ "/guilds/{guildId}/activity-logs/world-suggestions": {
331
+ "get": {
332
+ "tags": ["guilds"],
333
+ "operationId": "ActivitiesController_suggestWorlds",
334
+ "parameters": [
335
+ {
336
+ "name": "guildId",
337
+ "in": "path",
338
+ "schema": {
339
+ "type": "string"
340
+ },
341
+ "required": true
342
+ },
343
+ {
344
+ "name": "search",
345
+ "in": "query",
346
+ "schema": {
347
+ "type": "string",
348
+ "maxLength": 50
349
+ },
350
+ "required": false
351
+ },
352
+ {
353
+ "name": "limit",
354
+ "in": "query",
355
+ "schema": {
356
+ "type": "integer",
357
+ "minimum": 1,
358
+ "maximum": 50,
359
+ "default": 20
360
+ },
361
+ "required": false
362
+ }
363
+ ],
364
+ "security": [
365
+ {
366
+ "apiKey": []
367
+ }
368
+ ],
369
+ "responses": {
370
+ "200": {
371
+ "description": "",
372
+ "content": {
373
+ "application/json": {
374
+ "schema": {
375
+ "$ref": "#/components/schemas/WorldSuggestionsResponseDto_Output"
376
+ }
377
+ }
378
+ }
379
+ },
380
+ "401": {
381
+ "description": "",
382
+ "content": {
383
+ "application/json": {
384
+ "schema": {
385
+ "type": "object",
386
+ "properties": {
387
+ "message": {
388
+ "type": "string"
389
+ }
390
+ },
391
+ "required": ["message"]
392
+ }
393
+ }
394
+ }
395
+ },
396
+ "403": {
397
+ "description": "",
398
+ "content": {
399
+ "application/json": {
400
+ "schema": {
401
+ "type": "object",
402
+ "properties": {
403
+ "message": {
404
+ "type": "string"
405
+ }
406
+ },
407
+ "required": ["message"]
408
+ }
409
+ }
410
+ }
411
+ },
412
+ "429": {
413
+ "description": "",
414
+ "content": {
415
+ "application/json": {
416
+ "schema": {
417
+ "type": "object",
418
+ "properties": {
419
+ "message": {
420
+ "type": "string"
421
+ }
422
+ },
423
+ "required": ["message"]
424
+ }
425
+ }
426
+ }
427
+ },
428
+ "503": {
429
+ "description": "",
430
+ "content": {
431
+ "application/json": {
432
+ "schema": {
433
+ "type": "object",
434
+ "properties": {
435
+ "message": {
436
+ "type": "string"
437
+ },
438
+ "statusCode": {
439
+ "type": "number",
440
+ "enum": [503]
441
+ }
442
+ },
443
+ "required": ["message", "statusCode"]
444
+ }
445
+ }
446
+ }
447
+ }
448
+ },
449
+ "summary": "Get world suggestions for a guild",
450
+ "x-lootlog-access": "read",
451
+ "x-lootlog-data": "organization"
452
+ }
453
+ },
454
+ "/guilds/{guildId}/activity-logs/clan-name-suggestions": {
455
+ "get": {
456
+ "tags": ["guilds"],
457
+ "operationId": "ActivitiesController_suggestClanNames",
458
+ "parameters": [
459
+ {
460
+ "name": "guildId",
461
+ "in": "path",
462
+ "schema": {
463
+ "type": "string"
464
+ },
465
+ "required": true
466
+ },
467
+ {
468
+ "name": "search",
469
+ "in": "query",
470
+ "schema": {
471
+ "type": "string",
472
+ "maxLength": 50
473
+ },
474
+ "required": false
475
+ },
476
+ {
477
+ "name": "limit",
478
+ "in": "query",
479
+ "schema": {
480
+ "type": "integer",
481
+ "minimum": 1,
482
+ "maximum": 50,
483
+ "default": 10
484
+ },
485
+ "required": false
486
+ }
487
+ ],
488
+ "security": [
489
+ {
490
+ "apiKey": []
491
+ }
492
+ ],
493
+ "responses": {
494
+ "200": {
495
+ "description": "",
496
+ "content": {
497
+ "application/json": {
498
+ "schema": {
499
+ "$ref": "#/components/schemas/ClanNameSuggestionsResponseDto_Output"
500
+ }
501
+ }
502
+ }
503
+ },
504
+ "401": {
505
+ "description": "",
506
+ "content": {
507
+ "application/json": {
508
+ "schema": {
509
+ "type": "object",
510
+ "properties": {
511
+ "message": {
512
+ "type": "string"
513
+ }
514
+ },
515
+ "required": ["message"]
516
+ }
517
+ }
518
+ }
519
+ },
520
+ "403": {
521
+ "description": "",
522
+ "content": {
523
+ "application/json": {
524
+ "schema": {
525
+ "type": "object",
526
+ "properties": {
527
+ "message": {
528
+ "type": "string"
529
+ }
530
+ },
531
+ "required": ["message"]
532
+ }
533
+ }
534
+ }
535
+ },
536
+ "429": {
537
+ "description": "",
538
+ "content": {
539
+ "application/json": {
540
+ "schema": {
541
+ "type": "object",
542
+ "properties": {
543
+ "message": {
544
+ "type": "string"
545
+ }
546
+ },
547
+ "required": ["message"]
548
+ }
549
+ }
550
+ }
551
+ },
552
+ "503": {
553
+ "description": "",
554
+ "content": {
555
+ "application/json": {
556
+ "schema": {
557
+ "type": "object",
558
+ "properties": {
559
+ "message": {
560
+ "type": "string"
561
+ },
562
+ "statusCode": {
563
+ "type": "number",
564
+ "enum": [503]
565
+ }
566
+ },
567
+ "required": ["message", "statusCode"]
568
+ }
569
+ }
570
+ }
571
+ }
572
+ },
573
+ "summary": "Get clan name suggestions for a guild",
574
+ "x-lootlog-access": "read",
575
+ "x-lootlog-data": "organization"
576
+ }
577
+ },
578
+ "/guilds/{guildId}/users/{userId}/activity-logs": {
579
+ "get": {
580
+ "tags": ["guilds"],
581
+ "operationId": "ActivitiesController_findByUser",
582
+ "parameters": [
583
+ {
584
+ "name": "guildId",
585
+ "in": "path",
586
+ "schema": {
587
+ "type": "string"
588
+ },
589
+ "required": true
590
+ },
591
+ {
592
+ "name": "userId",
593
+ "in": "path",
594
+ "schema": {
595
+ "type": "string"
596
+ },
597
+ "required": true
598
+ },
599
+ {
600
+ "name": "type",
601
+ "in": "query",
602
+ "schema": {
603
+ "type": "array",
604
+ "items": {
605
+ "type": "string",
606
+ "enum": ["CONNECT_EVENT", "DISCONNECT_EVENT"]
607
+ }
608
+ },
609
+ "required": false
610
+ },
611
+ {
612
+ "name": "source",
613
+ "in": "query",
614
+ "schema": {
615
+ "type": "array",
616
+ "items": {
617
+ "type": "string",
618
+ "enum": ["GAME", "WEB_APP"]
619
+ }
620
+ },
621
+ "required": false
622
+ },
623
+ {
624
+ "name": "playerName",
625
+ "in": "query",
626
+ "schema": {
627
+ "type": "string"
628
+ },
629
+ "required": false
630
+ },
631
+ {
632
+ "name": "clanName",
633
+ "in": "query",
634
+ "schema": {
635
+ "type": "string"
636
+ },
637
+ "required": false
638
+ },
639
+ {
640
+ "name": "world",
641
+ "in": "query",
642
+ "schema": {
643
+ "type": "string"
644
+ },
645
+ "required": false
646
+ },
647
+ {
648
+ "name": "startDate",
649
+ "in": "query",
650
+ "schema": {
651
+ "type": "string",
652
+ "format": "date-time",
653
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
654
+ },
655
+ "required": false
656
+ },
657
+ {
658
+ "name": "endDate",
659
+ "in": "query",
660
+ "schema": {
661
+ "type": "string",
662
+ "format": "date-time",
663
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
664
+ },
665
+ "required": false
666
+ },
667
+ {
668
+ "name": "cursor",
669
+ "in": "query",
670
+ "schema": {
671
+ "type": "string"
672
+ },
673
+ "required": false
674
+ },
675
+ {
676
+ "name": "limit",
677
+ "in": "query",
678
+ "schema": {
679
+ "type": "integer",
680
+ "minimum": 1,
681
+ "maximum": 100,
682
+ "default": 50
683
+ },
684
+ "required": false
685
+ }
686
+ ],
687
+ "security": [
688
+ {
689
+ "apiKey": []
690
+ }
691
+ ],
692
+ "responses": {
693
+ "200": {
694
+ "description": "",
695
+ "content": {
696
+ "application/json": {
697
+ "schema": {
698
+ "$ref": "#/components/schemas/PaginatedActivitiesResponseDto"
699
+ }
700
+ }
701
+ }
702
+ },
703
+ "401": {
704
+ "description": "",
705
+ "content": {
706
+ "application/json": {
707
+ "schema": {
708
+ "type": "object",
709
+ "properties": {
710
+ "message": {
711
+ "type": "string"
712
+ }
713
+ },
714
+ "required": ["message"]
715
+ }
716
+ }
717
+ }
718
+ },
719
+ "403": {
720
+ "description": "",
721
+ "content": {
722
+ "application/json": {
723
+ "schema": {
724
+ "type": "object",
725
+ "properties": {
726
+ "message": {
727
+ "type": "string"
728
+ }
729
+ },
730
+ "required": ["message"]
731
+ }
732
+ }
733
+ }
734
+ },
735
+ "429": {
736
+ "description": "",
737
+ "content": {
738
+ "application/json": {
739
+ "schema": {
740
+ "type": "object",
741
+ "properties": {
742
+ "message": {
743
+ "type": "string"
744
+ }
745
+ },
746
+ "required": ["message"]
747
+ }
748
+ }
749
+ }
750
+ },
751
+ "503": {
752
+ "description": "",
753
+ "content": {
754
+ "application/json": {
755
+ "schema": {
756
+ "type": "object",
757
+ "properties": {
758
+ "message": {
759
+ "type": "string"
760
+ },
761
+ "statusCode": {
762
+ "type": "number",
763
+ "enum": [503]
764
+ }
765
+ },
766
+ "required": ["message", "statusCode"]
767
+ }
768
+ }
769
+ }
770
+ }
771
+ },
772
+ "summary": "Get activities for a specific user in a guild",
773
+ "x-lootlog-access": "read",
774
+ "x-lootlog-data": "organization"
775
+ }
776
+ },
777
+ "/guilds/{guildId}/member-activity-stats": {
778
+ "get": {
779
+ "tags": ["guilds"],
780
+ "operationId": "ActivitiesController_getMemberActivityStats",
781
+ "parameters": [
782
+ {
783
+ "name": "guildId",
784
+ "in": "path",
785
+ "schema": {
786
+ "type": "string"
787
+ },
788
+ "required": true
789
+ }
790
+ ],
791
+ "security": [
792
+ {
793
+ "apiKey": []
794
+ }
795
+ ],
796
+ "responses": {
797
+ "200": {
798
+ "description": "",
799
+ "content": {
800
+ "application/json": {
801
+ "schema": {
802
+ "type": "array",
803
+ "items": {
804
+ "$ref": "#/components/schemas/MemberActivityStatsResponseDto"
805
+ }
806
+ }
807
+ }
808
+ }
809
+ },
810
+ "401": {
811
+ "description": "",
812
+ "content": {
813
+ "application/json": {
814
+ "schema": {
815
+ "type": "object",
816
+ "properties": {
817
+ "message": {
818
+ "type": "string"
819
+ }
820
+ },
821
+ "required": ["message"]
822
+ }
823
+ }
824
+ }
825
+ },
826
+ "403": {
827
+ "description": "",
828
+ "content": {
829
+ "application/json": {
830
+ "schema": {
831
+ "type": "object",
832
+ "properties": {
833
+ "message": {
834
+ "type": "string"
835
+ }
836
+ },
837
+ "required": ["message"]
838
+ }
839
+ }
840
+ }
841
+ },
842
+ "429": {
843
+ "description": "",
844
+ "content": {
845
+ "application/json": {
846
+ "schema": {
847
+ "type": "object",
848
+ "properties": {
849
+ "message": {
850
+ "type": "string"
851
+ }
852
+ },
853
+ "required": ["message"]
854
+ }
855
+ }
856
+ }
857
+ },
858
+ "503": {
859
+ "description": "",
860
+ "content": {
861
+ "application/json": {
862
+ "schema": {
863
+ "type": "object",
864
+ "properties": {
865
+ "message": {
866
+ "type": "string"
867
+ },
868
+ "statusCode": {
869
+ "type": "number",
870
+ "enum": [503]
871
+ }
872
+ },
873
+ "required": ["message", "statusCode"]
874
+ }
875
+ }
876
+ }
877
+ }
878
+ },
879
+ "summary": "Get activity stats for guild members by source",
880
+ "x-lootlog-access": "read",
881
+ "x-lootlog-data": "organization"
882
+ }
883
+ },
884
+ "/guilds/{guildId}/activity-logs/{id}": {
885
+ "get": {
886
+ "tags": ["guilds"],
887
+ "operationId": "ActivitiesController_findOne",
888
+ "parameters": [
889
+ {
890
+ "name": "guildId",
891
+ "in": "path",
892
+ "schema": {
893
+ "type": "string"
894
+ },
895
+ "required": true
896
+ },
897
+ {
898
+ "name": "id",
899
+ "in": "path",
900
+ "schema": {
901
+ "type": "string"
902
+ },
903
+ "required": true
904
+ }
905
+ ],
906
+ "security": [
907
+ {
908
+ "apiKey": []
909
+ }
910
+ ],
911
+ "responses": {
912
+ "200": {
913
+ "description": "",
914
+ "content": {
915
+ "application/json": {
916
+ "schema": {
917
+ "$ref": "#/components/schemas/ActivityResponseDto"
918
+ }
919
+ }
920
+ }
921
+ },
922
+ "401": {
923
+ "description": "",
924
+ "content": {
925
+ "application/json": {
926
+ "schema": {
927
+ "type": "object",
928
+ "properties": {
929
+ "message": {
930
+ "type": "string"
931
+ }
932
+ },
933
+ "required": ["message"]
934
+ }
935
+ }
936
+ }
937
+ },
938
+ "403": {
939
+ "description": "",
940
+ "content": {
941
+ "application/json": {
942
+ "schema": {
943
+ "type": "object",
944
+ "properties": {
945
+ "message": {
946
+ "type": "string"
947
+ }
948
+ },
949
+ "required": ["message"]
950
+ }
951
+ }
952
+ }
953
+ },
954
+ "404": {
955
+ "description": "Activity not found"
956
+ },
957
+ "429": {
958
+ "description": "",
959
+ "content": {
960
+ "application/json": {
961
+ "schema": {
962
+ "type": "object",
963
+ "properties": {
964
+ "message": {
965
+ "type": "string"
966
+ }
967
+ },
968
+ "required": ["message"]
969
+ }
970
+ }
971
+ }
972
+ },
973
+ "503": {
974
+ "description": "",
975
+ "content": {
976
+ "application/json": {
977
+ "schema": {
978
+ "type": "object",
979
+ "properties": {
980
+ "message": {
981
+ "type": "string"
982
+ },
983
+ "statusCode": {
984
+ "type": "number",
985
+ "enum": [503]
986
+ }
987
+ },
988
+ "required": ["message", "statusCode"]
989
+ }
990
+ }
991
+ }
992
+ }
993
+ },
994
+ "summary": "Get a single activity by ID",
995
+ "x-lootlog-access": "read",
996
+ "x-lootlog-data": "organization"
997
+ },
998
+ "delete": {
999
+ "tags": ["guilds"],
1000
+ "operationId": "ActivitiesController_deleteActivity",
1001
+ "parameters": [
1002
+ {
1003
+ "name": "guildId",
1004
+ "in": "path",
1005
+ "schema": {
1006
+ "type": "string"
1007
+ },
1008
+ "required": true
1009
+ },
1010
+ {
1011
+ "name": "id",
1012
+ "in": "path",
1013
+ "schema": {
1014
+ "type": "string"
1015
+ },
1016
+ "required": true
1017
+ }
1018
+ ],
1019
+ "security": [
1020
+ {
1021
+ "apiKey": []
1022
+ }
1023
+ ],
1024
+ "responses": {
1025
+ "200": {
1026
+ "description": "",
1027
+ "content": {
1028
+ "application/json": {
1029
+ "schema": {
1030
+ "$ref": "#/components/schemas/DeleteActivityResponseDto_Output"
1031
+ }
1032
+ }
1033
+ }
1034
+ },
1035
+ "401": {
1036
+ "description": "",
1037
+ "content": {
1038
+ "application/json": {
1039
+ "schema": {
1040
+ "type": "object",
1041
+ "properties": {
1042
+ "message": {
1043
+ "type": "string"
1044
+ }
1045
+ },
1046
+ "required": ["message"]
1047
+ }
1048
+ }
1049
+ }
1050
+ },
1051
+ "403": {
1052
+ "description": "",
1053
+ "content": {
1054
+ "application/json": {
1055
+ "schema": {
1056
+ "type": "object",
1057
+ "properties": {
1058
+ "message": {
1059
+ "type": "string"
1060
+ }
1061
+ },
1062
+ "required": ["message"]
1063
+ }
1064
+ }
1065
+ }
1066
+ },
1067
+ "404": {
1068
+ "description": "Activity not found"
1069
+ },
1070
+ "429": {
1071
+ "description": "",
1072
+ "content": {
1073
+ "application/json": {
1074
+ "schema": {
1075
+ "type": "object",
1076
+ "properties": {
1077
+ "message": {
1078
+ "type": "string"
1079
+ }
1080
+ },
1081
+ "required": ["message"]
1082
+ }
1083
+ }
1084
+ }
1085
+ },
1086
+ "503": {
1087
+ "description": "",
1088
+ "content": {
1089
+ "application/json": {
1090
+ "schema": {
1091
+ "type": "object",
1092
+ "properties": {
1093
+ "message": {
1094
+ "type": "string"
1095
+ },
1096
+ "statusCode": {
1097
+ "type": "number",
1098
+ "enum": [503]
1099
+ }
1100
+ },
1101
+ "required": ["message", "statusCode"]
1102
+ }
1103
+ }
1104
+ }
1105
+ }
1106
+ },
1107
+ "summary": "Delete a specific activity by ID",
1108
+ "x-lootlog-access": "write",
1109
+ "x-lootlog-data": "organization"
1110
+ }
1111
+ },
1112
+ "/users/@me/activity/online": {
1113
+ "get": {
1114
+ "tags": ["users"],
1115
+ "operationId": "UsersActivityController_getOnline",
1116
+ "parameters": [
1117
+ {
1118
+ "name": "from",
1119
+ "in": "query",
1120
+ "schema": {
1121
+ "type": "string"
1122
+ },
1123
+ "required": true
1124
+ },
1125
+ {
1126
+ "name": "to",
1127
+ "in": "query",
1128
+ "schema": {
1129
+ "type": "string"
1130
+ },
1131
+ "required": true
1132
+ }
1133
+ ],
1134
+ "security": [
1135
+ {
1136
+ "apiKey": []
1137
+ }
1138
+ ],
1139
+ "responses": {
1140
+ "200": {
1141
+ "description": "",
1142
+ "content": {
1143
+ "application/json": {
1144
+ "schema": {
1145
+ "$ref": "#/components/schemas/UserOnlineResponseDto"
1146
+ }
1147
+ }
1148
+ }
1149
+ },
1150
+ "401": {
1151
+ "description": "",
1152
+ "content": {
1153
+ "application/json": {
1154
+ "schema": {
1155
+ "anyOf": [
1156
+ {
1157
+ "type": "object",
1158
+ "properties": {
1159
+ "message": {
1160
+ "type": "string"
1161
+ },
1162
+ "statusCode": {
1163
+ "type": "number",
1164
+ "enum": [401]
1165
+ }
1166
+ },
1167
+ "required": ["message", "statusCode"]
1168
+ },
1169
+ {
1170
+ "type": "object",
1171
+ "properties": {
1172
+ "message": {
1173
+ "type": "string"
1174
+ }
1175
+ },
1176
+ "required": ["message"]
1177
+ }
1178
+ ]
1179
+ }
1180
+ }
1181
+ }
1182
+ },
1183
+ "403": {
1184
+ "description": "",
1185
+ "content": {
1186
+ "application/json": {
1187
+ "schema": {
1188
+ "type": "object",
1189
+ "properties": {
1190
+ "message": {
1191
+ "type": "string"
1192
+ }
1193
+ },
1194
+ "required": ["message"]
1195
+ }
1196
+ }
1197
+ }
1198
+ },
1199
+ "429": {
1200
+ "description": "",
1201
+ "content": {
1202
+ "application/json": {
1203
+ "schema": {
1204
+ "type": "object",
1205
+ "properties": {
1206
+ "message": {
1207
+ "type": "string"
1208
+ }
1209
+ },
1210
+ "required": ["message"]
1211
+ }
1212
+ }
1213
+ }
1214
+ }
1215
+ },
1216
+ "description": "An inclusive range of at most 112 Warsaw calendar dates. Only the latest 16 weeks of confirmed online intervals are retained.",
1217
+ "summary": "Get the signed-in user's confirmed game online time by Warsaw calendar day",
1218
+ "x-lootlog-access": "read",
1219
+ "x-lootlog-data": "personal"
1220
+ }
1221
+ }
1222
+ },
1223
+ "components": {
1224
+ "securitySchemes": {
1225
+ "apiKey": {
1226
+ "type": "apiKey",
1227
+ "in": "header",
1228
+ "name": "X-Api-Key"
1229
+ }
1230
+ },
1231
+ "schemas": {
1232
+ "PaginatedActivitiesResponseDto": {
1233
+ "type": "object",
1234
+ "properties": {
1235
+ "data": {
1236
+ "type": "array",
1237
+ "items": {
1238
+ "type": "object",
1239
+ "properties": {
1240
+ "id": {
1241
+ "type": "string"
1242
+ },
1243
+ "userId": {
1244
+ "type": "string"
1245
+ },
1246
+ "guildId": {
1247
+ "type": "string"
1248
+ },
1249
+ "discordId": {
1250
+ "type": "string"
1251
+ },
1252
+ "type": {
1253
+ "type": "string",
1254
+ "enum": ["CONNECT_EVENT", "DISCONNECT_EVENT"]
1255
+ },
1256
+ "source": {
1257
+ "type": "string",
1258
+ "enum": ["GAME", "WEB_APP"]
1259
+ },
1260
+ "createdAt": {
1261
+ "type": "string",
1262
+ "format": "date-time",
1263
+ "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))$"
1264
+ },
1265
+ "world": {
1266
+ "nullable": true,
1267
+ "type": "string"
1268
+ },
1269
+ "details": {
1270
+ "type": "object",
1271
+ "additionalProperties": {}
1272
+ },
1273
+ "actorSnapshot": {
1274
+ "type": "object",
1275
+ "properties": {
1276
+ "id": {
1277
+ "type": "string"
1278
+ },
1279
+ "accountId": {
1280
+ "type": "number"
1281
+ },
1282
+ "characterId": {
1283
+ "type": "number"
1284
+ },
1285
+ "name": {
1286
+ "type": "string"
1287
+ },
1288
+ "clanName": {
1289
+ "nullable": true,
1290
+ "type": "string"
1291
+ },
1292
+ "clanId": {
1293
+ "nullable": true,
1294
+ "type": "number"
1295
+ },
1296
+ "icon": {
1297
+ "type": "string"
1298
+ },
1299
+ "lvl": {
1300
+ "type": "number"
1301
+ },
1302
+ "prof": {
1303
+ "type": "string"
1304
+ },
1305
+ "source": {
1306
+ "type": "string",
1307
+ "enum": ["GAME", "WEB_APP"]
1308
+ },
1309
+ "createdAt": {
1310
+ "type": "string",
1311
+ "format": "date-time",
1312
+ "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))$"
1313
+ }
1314
+ },
1315
+ "required": [
1316
+ "id",
1317
+ "accountId",
1318
+ "characterId",
1319
+ "name",
1320
+ "icon",
1321
+ "lvl",
1322
+ "prof",
1323
+ "source",
1324
+ "createdAt"
1325
+ ]
1326
+ }
1327
+ },
1328
+ "required": [
1329
+ "id",
1330
+ "userId",
1331
+ "guildId",
1332
+ "discordId",
1333
+ "type",
1334
+ "source",
1335
+ "createdAt"
1336
+ ]
1337
+ }
1338
+ },
1339
+ "nextCursor": {
1340
+ "type": "string"
1341
+ },
1342
+ "hasMore": {
1343
+ "type": "boolean"
1344
+ }
1345
+ },
1346
+ "required": ["data", "hasMore"]
1347
+ },
1348
+ "ActorNameSuggestionsResponseDto_Output": {
1349
+ "type": "object",
1350
+ "properties": {
1351
+ "suggestions": {
1352
+ "type": "array",
1353
+ "items": {
1354
+ "type": "string"
1355
+ }
1356
+ }
1357
+ },
1358
+ "required": ["suggestions"]
1359
+ },
1360
+ "WorldSuggestionsResponseDto_Output": {
1361
+ "type": "object",
1362
+ "properties": {
1363
+ "worlds": {
1364
+ "type": "array",
1365
+ "items": {
1366
+ "type": "string"
1367
+ }
1368
+ }
1369
+ },
1370
+ "required": ["worlds"]
1371
+ },
1372
+ "ClanNameSuggestionsResponseDto_Output": {
1373
+ "type": "object",
1374
+ "properties": {
1375
+ "suggestions": {
1376
+ "type": "array",
1377
+ "items": {
1378
+ "type": "string"
1379
+ }
1380
+ }
1381
+ },
1382
+ "required": ["suggestions"]
1383
+ },
1384
+ "MemberActivityStatsResponseDto": {
1385
+ "type": "object",
1386
+ "properties": {
1387
+ "guildId": {
1388
+ "type": "string"
1389
+ },
1390
+ "discordId": {
1391
+ "type": "string"
1392
+ },
1393
+ "source": {
1394
+ "type": "string",
1395
+ "enum": ["GAME", "WEB_APP"]
1396
+ },
1397
+ "lastSeenAt": {
1398
+ "format": "date-time",
1399
+ "nullable": true,
1400
+ "type": "string",
1401
+ "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))$"
1402
+ },
1403
+ "visitCount": {
1404
+ "type": "number"
1405
+ },
1406
+ "activeSessionCount": {
1407
+ "type": "number"
1408
+ },
1409
+ "createdAt": {
1410
+ "type": "string",
1411
+ "format": "date-time",
1412
+ "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))$"
1413
+ },
1414
+ "updatedAt": {
1415
+ "type": "string",
1416
+ "format": "date-time",
1417
+ "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))$"
1418
+ }
1419
+ },
1420
+ "required": [
1421
+ "guildId",
1422
+ "discordId",
1423
+ "source",
1424
+ "visitCount",
1425
+ "activeSessionCount",
1426
+ "createdAt",
1427
+ "updatedAt"
1428
+ ]
1429
+ },
1430
+ "ActivityResponseDto": {
1431
+ "type": "object",
1432
+ "properties": {
1433
+ "id": {
1434
+ "type": "string"
1435
+ },
1436
+ "userId": {
1437
+ "type": "string"
1438
+ },
1439
+ "guildId": {
1440
+ "type": "string"
1441
+ },
1442
+ "discordId": {
1443
+ "type": "string"
1444
+ },
1445
+ "type": {
1446
+ "type": "string",
1447
+ "enum": ["CONNECT_EVENT", "DISCONNECT_EVENT"]
1448
+ },
1449
+ "source": {
1450
+ "type": "string",
1451
+ "enum": ["GAME", "WEB_APP"]
1452
+ },
1453
+ "createdAt": {
1454
+ "type": "string",
1455
+ "format": "date-time",
1456
+ "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))$"
1457
+ },
1458
+ "world": {
1459
+ "nullable": true,
1460
+ "type": "string"
1461
+ },
1462
+ "details": {
1463
+ "type": "object",
1464
+ "additionalProperties": {}
1465
+ },
1466
+ "actorSnapshot": {
1467
+ "type": "object",
1468
+ "properties": {
1469
+ "id": {
1470
+ "type": "string"
1471
+ },
1472
+ "accountId": {
1473
+ "type": "number"
1474
+ },
1475
+ "characterId": {
1476
+ "type": "number"
1477
+ },
1478
+ "name": {
1479
+ "type": "string"
1480
+ },
1481
+ "clanName": {
1482
+ "nullable": true,
1483
+ "type": "string"
1484
+ },
1485
+ "clanId": {
1486
+ "nullable": true,
1487
+ "type": "number"
1488
+ },
1489
+ "icon": {
1490
+ "type": "string"
1491
+ },
1492
+ "lvl": {
1493
+ "type": "number"
1494
+ },
1495
+ "prof": {
1496
+ "type": "string"
1497
+ },
1498
+ "source": {
1499
+ "type": "string",
1500
+ "enum": ["GAME", "WEB_APP"]
1501
+ },
1502
+ "createdAt": {
1503
+ "type": "string",
1504
+ "format": "date-time",
1505
+ "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))$"
1506
+ }
1507
+ },
1508
+ "required": [
1509
+ "id",
1510
+ "accountId",
1511
+ "characterId",
1512
+ "name",
1513
+ "icon",
1514
+ "lvl",
1515
+ "prof",
1516
+ "source",
1517
+ "createdAt"
1518
+ ]
1519
+ }
1520
+ },
1521
+ "required": [
1522
+ "id",
1523
+ "userId",
1524
+ "guildId",
1525
+ "discordId",
1526
+ "type",
1527
+ "source",
1528
+ "createdAt"
1529
+ ]
1530
+ },
1531
+ "DeleteActivityResponseDto_Output": {
1532
+ "type": "object",
1533
+ "properties": {
1534
+ "count": {
1535
+ "type": "number"
1536
+ }
1537
+ },
1538
+ "required": ["count"]
1539
+ },
1540
+ "UserOnlineResponseDto": {
1541
+ "type": "object",
1542
+ "properties": {
1543
+ "timezone": {
1544
+ "type": "string",
1545
+ "enum": ["Europe/Warsaw"]
1546
+ },
1547
+ "trackingStartedAt": {
1548
+ "nullable": true,
1549
+ "type": "string",
1550
+ "format": "date-time",
1551
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1552
+ },
1553
+ "lastObservedAt": {
1554
+ "nullable": true,
1555
+ "type": "string",
1556
+ "format": "date-time",
1557
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1558
+ },
1559
+ "status": {
1560
+ "type": "string",
1561
+ "enum": ["fresh", "stale", "unavailable"]
1562
+ },
1563
+ "days": {
1564
+ "type": "array",
1565
+ "items": {
1566
+ "type": "object",
1567
+ "properties": {
1568
+ "date": {
1569
+ "type": "string"
1570
+ },
1571
+ "onlineSeconds": {
1572
+ "nullable": true,
1573
+ "type": "number"
1574
+ },
1575
+ "partial": {
1576
+ "type": "boolean"
1577
+ },
1578
+ "worlds": {
1579
+ "type": "array",
1580
+ "items": {
1581
+ "type": "string"
1582
+ }
1583
+ },
1584
+ "worldsComplete": {
1585
+ "type": "boolean"
1586
+ }
1587
+ },
1588
+ "required": [
1589
+ "date",
1590
+ "onlineSeconds",
1591
+ "partial",
1592
+ "worlds",
1593
+ "worldsComplete"
1594
+ ]
1595
+ }
1596
+ }
1597
+ },
1598
+ "required": [
1599
+ "timezone",
1600
+ "trackingStartedAt",
1601
+ "lastObservedAt",
1602
+ "status",
1603
+ "days"
1604
+ ]
1605
+ }
1606
+ }
1607
+ }
1608
+ }