-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathserver_swagger.json
More file actions
1 lines (1 loc) · 149 KB
/
server_swagger.json
File metadata and controls
1 lines (1 loc) · 149 KB
1
{"openapi":"3.0.0","paths":{"/v1/auth/logout":{"get":{"operationId":"AuthController_logout_v1","parameters":[],"responses":{"200":{"description":""}},"tags":["auth"]}},"/v1/libraries":{"get":{"operationId":"LibrariesController_findOwn_v1","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Library"}}}}},"tags":["libraries"]}},"/v1/libraries/{id}":{"get":{"operationId":"LibrariesController_findOneByIdWithPermissions_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Library"}}}}},"tags":["libraries"]}},"/v1/collections/{id}":{"get":{"operationId":"CollectionsController_findOneByIdWithPermissions_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Collection"}}}}},"summary":"Returns a collection which the user has access to\n\n(Either its own collection or a public one)","tags":["collections"]},"patch":{"operationId":"CollectionsController_update_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCollectionDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["collections"]},"delete":{"operationId":"CollectionsController_delete_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}},"tags":["collections"]}},"/v1/collections/library/{userId}":{"get":{"operationId":"CollectionsController_findAllByUserIdWithPermissions_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Collection"}}}}}},"tags":["collections"]}},"/v1/collections":{"post":{"operationId":"CollectionsController_create_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCollectionDto"}}}},"responses":{"201":{"description":""}},"tags":["collections"]}},"/v1/collections-entries":{"post":{"operationId":"CollectionsEntriesController_createOrUpdate_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUpdateCollectionEntryDto"}}}},"responses":{"201":{"description":""}},"tags":["collections-entries"]}},"/v1/collections-entries/{id}":{"get":{"operationId":"CollectionsEntriesController_findEntryById_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionEntry"}}}}},"tags":["collections-entries"]},"delete":{"operationId":"CollectionsEntriesController_deleteOwnEntry_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}},"tags":["collections-entries"]}},"/v1/collections-entries/{id}/related":{"get":{"operationId":"CollectionsEntriesController_findRelatedEntries_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindRelatedCollectionEntriesResponseDto"}}}}},"tags":["collections-entries"]}},"/v1/collections-entries/game/{id}":{"get":{"operationId":"CollectionsEntriesController_findOwnEntryByGameId_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionEntry"}}}},"400":{"description":"Invalid query"}},"summary":"Returns a specific collection entry based on game ID","tags":["collections-entries"]}},"/v1/collections-entries/library/{userId}/game/{gameId}":{"get":{"operationId":"CollectionsEntriesController_findOneByLibraryIdAndGameId_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"gameId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionEntry"}}}}},"tags":["collections-entries"]}},"/v1/collections-entries/{id}/platforms/icons":{"get":{"operationId":"CollectionsEntriesController_getIconsForOwnedPlatforms_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}}},"tags":["collections-entries"]}},"/v1/collections-entries/game/{id}/favorite":{"post":{"operationId":"CollectionsEntriesController_changeFavoriteStatus_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionEntryFavoriteStatusDto"}}}},"responses":{"204":{"description":""}},"tags":["collections-entries"]}},"/v1/collections-entries/library/{id}":{"get":{"operationId":"CollectionsEntriesController_findAllByLibraryId_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"orderBy","required":false,"in":"query","schema":{"$ref":"#/components/schemas/FindCollectionEntriesOrderBy"}},{"name":"status","required":false,"in":"query","schema":{"type":"string","enum":["playing","finished","planned","dropped","ongoing"]}},{"name":"gameFilters","required":false,"in":"query","schema":{"$ref":"#/components/schemas/FindCollectionEntriesGameFilterDto"}},{"name":"offset","required":false,"in":"query","schema":{"default":0,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionEntriesPaginatedResponseDto"}}}}},"tags":["collections-entries"]}},"/v1/collections-entries/library/{userId}/favorites":{"get":{"operationId":"CollectionsEntriesController_findFavoritesByLibraryId_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"orderBy","required":false,"in":"query","schema":{"$ref":"#/components/schemas/FindCollectionEntriesOrderBy"}},{"name":"status","required":false,"in":"query","schema":{"type":"string","enum":["playing","finished","planned","dropped","ongoing"]}},{"name":"gameFilters","required":false,"in":"query","schema":{"$ref":"#/components/schemas/FindCollectionEntriesGameFilterDto"}},{"name":"offset","required":false,"in":"query","schema":{"default":0,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionEntriesPaginatedResponseDto"}}}}},"tags":["collections-entries"]}},"/v1/collections-entries/collection/{id}":{"post":{"operationId":"CollectionsEntriesController_findAllByCollectionId_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindCollectionEntriesForCollectionIdDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionEntriesPaginatedResponseDto"}}}}},"tags":["collections-entries"]}},"/v1/collections-entries/ordering":{"patch":{"operationId":"CollectionsOrderingController_updateCollectionEntryOrdering_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionEntryUpdateOrderingDto"}}}},"responses":{"200":{"description":""}},"tags":["collections-entries-ordering"]}},"/v1/activities":{"get":{"operationId":"ActivitiesRepositoryController_findLatest_v1","parameters":[{"name":"userId","required":false,"in":"query","schema":{"minLength":36,"type":"string"}},{"name":"type","required":false,"in":"query","schema":{"type":"string","enum":["REVIEW","FOLLOW","COLLECTION_ENTRY","POST","OBTAINED_GAME_ACHIEVEMENT"]}},{"name":"offset","required":false,"in":"query","schema":{"default":0,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivitiesPaginatedResponseDto"}}}}},"tags":["activities"]}},"/v1/activities/detail/{id}":{"get":{"operationId":"ActivitiesRepositoryController_findOneById_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Activity"}}}}},"tags":["activities"]}},"/v2/activities":{"get":{"operationId":"ActivitiesRepositoryV2Controller_findLatest_v2","parameters":[{"name":"userId","required":false,"in":"query","schema":{"minLength":36,"type":"string"}},{"name":"type","required":false,"in":"query","schema":{"type":"string","enum":["REVIEW","FOLLOW","COLLECTION_ENTRY","POST","OBTAINED_GAME_ACHIEVEMENT"]}},{"name":"offset","required":false,"in":"query","schema":{"default":0,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivitiesPaginatedResponseDto"}}}}},"tags":["activities"]}},"/v1/statistics/queue/like":{"post":{"operationId":"StatisticsQueueController_addLike_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatisticsActionDto"}}}},"responses":{"201":{"description":""}},"tags":["statistics-queue"]},"delete":{"operationId":"StatisticsQueueController_removeLike_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatisticsActionDto"}}}},"responses":{"200":{"description":""}},"tags":["statistics-queue"]}},"/v1/statistics/queue/view":{"post":{"operationId":"StatisticsQueueController_addView_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatisticsActionDto"}}}},"responses":{"201":{"description":""}},"tags":["statistics-queue"]}},"/v1/statistics":{"post":{"operationId":"StatisticsController_findOneBySourceIdAndType_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindOneStatisticsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["statistics"]}},"/v1/statistics/trending/games":{"post":{"operationId":"StatisticsController_findTrendingGames_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindStatisticsTrendingGamesDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameStatisticsPaginatedResponseDto"}}}}},"tags":["statistics"]}},"/v1/statistics/trending/reviews":{"post":{"operationId":"StatisticsController_findTrendingReviews_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindStatisticsTrendingReviewsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewStatisticsPaginatedResponseDto"}}}}},"tags":["statistics"]}},"/v1/statistics/status":{"get":{"operationId":"StatisticsController_getStatus_v1","parameters":[{"name":"statisticsId","required":true,"in":"query","schema":{"type":"number"}},{"name":"sourceType","required":true,"in":"query","schema":{"type":"string","enum":["game","review","activity","post","review_comment","activity_comment","post_comment"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatisticsStatus"}}}}},"tags":["statistics"]}},"/v1/notifications":{"get":{"operationId":"NotificationsController_findAllAndAggregate_v1","parameters":[{"name":"offset","required":false,"in":"query","schema":{"default":0,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedNotificationAggregationDto"}}}}},"tags":["notifications"]}},"/v1/notifications/new":{"get":{"operationId":"NotificationsController_getNewNotifications_v1","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Notification"}}}}}},"summary":"Finds new notifications that have been created after last checked time. <br>\nReturns an empty array on first connection.","tags":["notifications"]}},"/v1/notifications/view":{"put":{"operationId":"NotificationsController_updateViewedStatus_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationViewUpdateDto"}}}},"responses":{"200":{"description":""}},"tags":["notifications"]}},"/v1/game/repository/resource":{"get":{"operationId":"GameRepositoryController_getResource_v1","parameters":[{"name":"resourceName","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["game-repository"]}},"/v1/game/repository/collection":{"post":{"operationId":"GameRepositoryController_getGameIdsByCollectionType_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindGamesByCollectionTypeRequestDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindGamesByCollectionTypeResponseDto"}}}},"201":{"description":""}},"tags":["game-repository"]}},"/v1/game/repository/{id}/platforms/icon":{"get":{"operationId":"GameRepositoryController_getIconNamesForPlatformAbbreviations_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}}},"tags":["game-repository"]}},"/v1/game/repository/{id}/external-stores":{"get":{"operationId":"GameRepositoryController_getExternalStoresForGameId_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GameExternalStoreDto"}}}}}},"summary":"TODO: Move this endpoint to {@link ExternalGameService}","tags":["game-repository"]}},"/v1/game/repository/{id}":{"post":{"operationId":"GameRepositoryController_findOneById_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameRepositoryFindOneDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Game"}}}}},"tags":["game-repository"]}},"/v1/game/repository":{"post":{"operationId":"GameRepositoryController_findAllByIds_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameRepositoryFindAllDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Game"}}}}}},"tags":["game-repository"]}},"/v1/game/external":{"get":{"operationId":"ExternalGameController_findAll_v1","parameters":[{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}},{"name":"offset","required":false,"in":"query","schema":{"default":0,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindExternalGamesResponseDto"}}}}},"tags":["ExternalGame"]},"post":{"operationId":"ExternalGameController_submitExternalGame_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitExternalGameDto"}}}},"responses":{"201":{"description":""}},"tags":["ExternalGame"]}},"/v1/game/external/unmapped":{"get":{"operationId":"ExternalGameController_findUnmappedEntries_v1","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UnmappedExternalGame"}}}}}},"tags":["ExternalGame"]}},"/v1/reviews":{"post":{"operationId":"ReviewsController_createOrUpdate_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReviewDto"}}}},"responses":{"201":{"description":""}},"tags":["reviews"]},"get":{"operationId":"ReviewsController_findOneByUserIdAndGameId_v1","parameters":[{"name":"id","required":true,"in":"query","schema":{"type":"string"}},{"name":"gameId","required":true,"in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Review"}}}}},"tags":["reviews"]}},"/v1/reviews/all":{"post":{"operationId":"ReviewsController_findAllById_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindAllReviewsByIdDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Review"}}}}}},"tags":["reviews"]}},"/v1/reviews/score":{"get":{"operationId":"ReviewsController_getScoreForGameId_v1","parameters":[{"name":"gameId","required":true,"in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewScoreResponseDto"}}}}},"tags":["reviews"]}},"/v1/reviews/profile/{userId}":{"get":{"operationId":"ReviewsController_findAllByUserId_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"offset","required":false,"in":"query","schema":{"default":0,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}},{"name":"orderBy","required":false,"in":"query","schema":{"$ref":"#/components/schemas/Object"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindReviewPaginatedDto"}}}}},"tags":["reviews"]}},"/v1/reviews/game/{id}":{"get":{"operationId":"ReviewsController_findAllByGameId_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}},{"name":"offset","required":false,"in":"query","schema":{"default":0,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}},{"name":"orderBy","required":false,"in":"query","schema":{"$ref":"#/components/schemas/Object"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindReviewPaginatedDto"}}}}},"tags":["reviews"]}},"/v1/reviews/{id}":{"get":{"operationId":"ReviewsController_findOneById_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Review"}}}}},"tags":["reviews"]},"delete":{"operationId":"ReviewsController_delete_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["reviews"]}},"/v1/profile":{"patch":{"operationId":"ProfileController_update_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProfileDto"}}}},"responses":{"200":{"description":""}},"tags":["profile"]},"get":{"operationId":"ProfileController_findOwn_v1","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Profile"}}}}},"summary":"Used to access own profile","tags":["profile"]}},"/v1/profile/image":{"put":{"operationId":"ProfileController_updateImage_v1","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/UpdateProfileImageDto"}}}},"responses":{"200":{"description":""}},"tags":["profile"]}},"/v1/profile/all":{"get":{"operationId":"ProfileController_findAll_v1","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FindAllProfileResponseItemDto"}}}}}},"tags":["profile"]}},"/v1/profile/{id}":{"get":{"operationId":"ProfileController_findOneById_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Profile"}}}}},"summary":"Used to access other users' profiles","tags":["profile"]}},"/v1/achievements":{"get":{"operationId":"AchievementsController_getAchievements_v1","parameters":[{"name":"offset","required":false,"in":"query","schema":{"default":0,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedAchievementsResponseDto"}}}}},"tags":["achievements"]}},"/v1/achievements/obtained/{id}":{"get":{"operationId":"AchievementsController_getObtainedAchievement_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"targetUserId","required":true,"in":"query","schema":{"type":"string"}},{"name":"isFeatured","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"orderBy","required":false,"in":"query","schema":{"$ref":"#/components/schemas/Object"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObtainedAchievementDto"}}}}},"tags":["achievements"]}},"/v1/achievements/obtained":{"get":{"operationId":"AchievementsController_getAllObtainedAchievements_v1","parameters":[{"name":"targetUserId","required":true,"in":"query","schema":{"type":"string"}},{"name":"isFeatured","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"orderBy","required":false,"in":"query","schema":{"$ref":"#/components/schemas/Object"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ObtainedAchievementDto"}}}}}},"tags":["achievements"]}},"/v1/achievements/obtained/{id}/featured":{"put":{"operationId":"AchievementsController_updateFeaturedObtainedAchievement_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFeaturedObtainedAchievementDto"}}}},"responses":{"200":{"description":""}},"tags":["achievements"]}},"/v1/achievements/grant":{"post":{"operationId":"AchievementsController_grantAchievements_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AchievementGrantRequestDto"}}}},"responses":{"201":{"description":""}},"tags":["achievements"]}},"/v1/achievements/code/consume/{code}":{"get":{"operationId":"AchievementsCodeController_consume_v1","parameters":[{"name":"code","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["achievements-code"]}},"/v1/achievements/code/generate":{"post":{"operationId":"AchievementsCodeController_generate_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAchievementCodeRequestDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAchievementCodeResponseDto"}}}}},"tags":["achievements-code"]}},"/v2/achievements/obtained/featured":{"put":{"operationId":"AchievementsV2Controller_updateFeaturedObtainedAchievements_v2","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFeaturedObtainedAchievementV2Dto"}}}},"responses":{"200":{"description":""}},"tags":["achievements"]}},"/v1/level/{userId}":{"get":{"operationId":"LevelController_findOne_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserLevel"}}}}},"tags":["level"]}},"/v1/posts/repository":{"get":{"operationId":"PostsController_findAllWithPagination_v1","parameters":[{"name":"postId","required":false,"in":"query","schema":{"type":"string"}},{"name":"gameId","required":false,"in":"query","schema":{"type":"number"}},{"name":"profileUserId","required":false,"in":"query","schema":{"type":"string"}},{"name":"lastCreatedAt","required":false,"in":"query","schema":{"type":"string"}},{"name":"lastId","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPostsPaginatedResponseDto"}}}}},"tags":["posts"]},"post":{"operationId":"PostsController_create_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePostDto"}}}},"responses":{"201":{"description":""}},"tags":["posts"]}},"/v1/posts/repository/{postId}":{"get":{"operationId":"PostsController_findOne_v1","parameters":[{"name":"postId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Post"}}}}},"tags":["posts"]},"delete":{"operationId":"PostsController_delete_v1","parameters":[{"name":"postId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}},"tags":["posts"]}},"/v1/posts/repository/image":{"post":{"operationId":"PostsController_uploadPostImage_v1","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/UploadPostImageRequestDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadPostImageResponseDto"}}}}},"tags":["posts"]}},"/v1/game/achievement/status/{userId}/{externalGameId}":{"get":{"operationId":"GameAchievementController_findStatusByExternalGameId_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"externalGameId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameCompletionStatus"}}}}},"tags":["game-achievement"]}},"/v1/game/achievement/status/{userId}":{"get":{"operationId":"GameAchievementController_findAllStatusByUserId_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"onlyCompleted","required":false,"in":"query","description":"Returns only completed games if true, otherwise returns all games regardless of completion status.","schema":{"default":false,"type":"boolean"}},{"name":"completedPeriodStart","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"completedPeriodEnd","required":false,"in":"query","schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GameCompletionStatus"}}}}}},"tags":["game-achievement"]}},"/v1/game/achievement/{externalGameId}":{"get":{"operationId":"GameAchievementController_findAllByExternalGameId_v1","parameters":[{"name":"externalGameId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GameAchievementDto"}}}}}},"tags":["game-achievement"]}},"/v1/game/achievement/{externalGameId}/obtained":{"get":{"operationId":"GameAchievementController_findAllObtainedByExternalGameId_v1","parameters":[{"name":"externalGameId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GameObtainedAchievementDto"}}}}}},"tags":["game-achievement"]}},"/v1/game/achievement/{externalGameId}/{externalAchievementId}":{"get":{"operationId":"GameAchievementController_findOneByExternalGameId_v1","parameters":[{"name":"externalGameId","required":true,"in":"path","schema":{"type":"number"}},{"name":"externalAchievementId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameAchievementDto"}}}}},"tags":["game-achievement"]}},"/v2/game/achievement/activity/{id}":{"get":{"operationId":"GameAchievementV2Controller_findActivityById_v2","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameObtainedAchievementActivityDto"}}}}},"tags":["game-achievement"]}},"/v2/game/achievement/{gameId}":{"get":{"operationId":"GameAchievementV2Controller_findAllByGameId_v2","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GameAchievementGroupDto"}}}}}},"tags":["game-achievement"]}},"/v2/game/achievement/{gameId}/obtained":{"get":{"operationId":"GameAchievementV2Controller_findAllObtainedByGameId_v2","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GameObtainedAchievementDto"}}}}}},"tags":["game-achievement"]}},"/v2/game/achievement/{userId}/obtained/all":{"get":{"operationId":"GameAchievementV2Controller_findAllObtainedByUserId_v2","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"offset","required":false,"in":"query","schema":{"default":0,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}},{"name":"orderBy","required":false,"in":"query","schema":{"$ref":"#/components/schemas/Object"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindObtainedAchievementsResponseDto"}}}}},"tags":["game-achievement"]}},"/v2/game/achievement/{userId}/{gameId}/obtained":{"get":{"operationId":"GameAchievementV2Controller_findAllObtainedByUserIdAndGameId_v2","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"gameId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GameObtainedAchievementDto"}}}}}},"tags":["game-achievement"]}},"/v1/connections":{"get":{"operationId":"ConnectionsController_findAvailableConnections_v1","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FindAvailableConnectionsResponseDto"}}}}}},"tags":["connections"]},"post":{"operationId":"ConnectionsController_createOrUpdate_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionCreateDto"}}}},"responses":{"201":{"description":""}},"tags":["connections"]}},"/v1/connections/own":{"get":{"operationId":"ConnectionsController_findOwn_v1","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserConnectionDto"}}}}}},"tags":["connections"]}},"/v1/connections/own/{type}":{"get":{"operationId":"ConnectionsController_findOwnByType_v1","parameters":[{"name":"type","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserConnectionDto"}}}}},"tags":["connections"]}},"/v1/connections/user/{userId}":{"get":{"operationId":"ConnectionsController_findAllByUserId_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserConnectionDto"}}}}}},"tags":["connections"]}},"/v1/connections/user/{userId}/{type}":{"get":{"operationId":"ConnectionsController_findOneByUserIdAndType_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"type","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserConnectionDto"}}}}},"tags":["connections"]}},"/v1/connections/{id}":{"delete":{"operationId":"ConnectionsController_delete_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":""}},"tags":["connections"]}},"/v1/playtime/user/{userId}/{gameId}/accumulated":{"get":{"operationId":"PlaytimeController_findAccumulatedForUserIdAndGameId_v1","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"type":"number"}},{"name":"userId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCumulativePlaytimeDto"}}}}},"tags":["playtime"]}},"/v1/playtime/user/{userId}/{gameId}":{"get":{"operationId":"PlaytimeController_findAllByUserIdAndGameId_v1","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"type":"number"}},{"name":"userId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserPlaytime"}}}}}},"tags":["playtime"]}},"/v1/playtime/user/{userId}":{"get":{"operationId":"PlaytimeController_findAllByUserId_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"offset","required":false,"in":"query","schema":{"default":0,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}},{"name":"orderBy","required":false,"in":"query","schema":{"$ref":"#/components/schemas/Object"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindAllPlaytimeResponseDto"}}}}},"tags":["playtime"]},"post":{"operationId":"PlaytimeController_findAllByUserIdWithFilters_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindAllPlaytimeFiltersDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindAllPlaytimeResponseDto"}}}},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindAllPlaytimeResponseDto"}}}}},"tags":["playtime"]}},"/v1/playtime":{"post":{"operationId":"PlaytimeController_submit_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitUserPlaytimeDto"}}}},"responses":{"201":{"description":""}},"tags":["playtime"]}},"/v1/playtime/ttb/{gameId}":{"get":{"operationId":"TimeToBeatController_findOneForGameId_v1","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameTimeToBeatDto"}}}}},"summary":"Returns time to beat information for one game, if available.","tags":["playtime-ttb"]}},"/v1/playtime/ttb":{"get":{"operationId":"TimeToBeatController_findAllForGameId_v1","parameters":[{"name":"gameIds","required":true,"in":"query","schema":{"type":"array","items":{"type":"number"}}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GameTimeToBeatDto"}}}}}},"summary":"Returns time to beat information for each gameId, if available.","tags":["playtime-ttb"]}},"/v1/sync/igdb":{"post":{"operationId":"IgdbSyncController_registerUpdateJob_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"responses":{"204":{"description":""}},"tags":["sync-igdb"]}},"/v1/health":{"get":{"operationId":"HealthController_health_v1","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["health"]}},"/v1/activities/feed":{"get":{"operationId":"ActivitiesFeedController_buildActivitiesFeed_v1","parameters":[{"name":"criteria","required":true,"in":"query","schema":{"type":"string","enum":["following","all"]}},{"name":"offset","required":false,"in":"query","schema":{"default":0,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}},{"name":"orderBy","required":false,"in":"query","schema":{"$ref":"#/components/schemas/Object"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivitiesFeedPaginatedResponseDto"}}}}},"tags":["activities-feed"]}},"/v1/follow/status":{"get":{"operationId":"FollowController_getFollowerStatus_v1","parameters":[{"name":"followerUserId","required":true,"in":"query","schema":{"type":"string"}},{"name":"followedUserId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FollowStatusDto"}}}}},"tags":["follow"]}},"/v1/follow/{id}":{"get":{"operationId":"FollowController_getUserFollowById_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFollow"}}}}},"tags":["follow"]}},"/v1/follow/info":{"post":{"operationId":"FollowController_getFollowInfo_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FollowInfoRequestDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FollowInfoResponseDto"}}}}},"tags":["follow"]}},"/v1/follow":{"post":{"operationId":"FollowController_registerFollow_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FollowRegisterDto"}}}},"responses":{"201":{"description":""}},"tags":["follow"]},"delete":{"operationId":"FollowController_removeFollow_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FollowRemoveDto"}}}},"responses":{"200":{"description":""}},"tags":["follow"]}},"/v1/profile/metrics/overview/{userId}":{"get":{"operationId":"ProfileMetricsController_getStatsOverview_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileMetricsOverviewDto"}}}}},"summary":"Retrieves basic stats for a user profile","tags":["profile-metrics"]}},"/v1/profile/metrics/distribution/year/{userId}":{"get":{"operationId":"ProfileMetricsController_getYearDistribution_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"by","required":true,"in":"query","schema":{"type":"string","enum":["release_year","finish_year","playtime"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileMetricsYearDistributionResponseDto"}}}}},"tags":["profile-metrics"]}},"/v1/profile/metrics/report/{userId}/{period}":{"get":{"operationId":"ProfileMetricsController_getPeriodReport_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"period","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileMetricsReportResponseDto"}}}}},"tags":["profile-metrics"]}},"/v1/profile/metrics/distribution/type/{userId}":{"get":{"operationId":"ProfileMetricsController_getTypeDistribution_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"by","required":true,"in":"query","schema":{"type":"string","enum":["genre","category","mode","theme","status","platform"]}},{"name":"year","required":false,"in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileMetricsTypeDistributionResponseDto"}}}}},"tags":["profile-metrics"]}},"/v1/importer/watch/notification/{id}":{"get":{"operationId":"ImporterWatchController_findNotification_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImporterWatchNotification"}}}}},"tags":["importer-watch"]}},"/v1/importer/{source}":{"get":{"operationId":"ImporterController_findUnprocessedEntries_v1","parameters":[{"name":"source","required":true,"in":"path","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}},{"name":"offset","required":false,"in":"query","schema":{"default":0,"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImporterPaginatedResponseDto"}}}}},"tags":["importer"]}},"/v1/importer/status":{"post":{"operationId":"ImporterController_changeStatus_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImporterStatusUpdateRequestDto"}}}},"responses":{"201":{"description":""}},"tags":["importer"]}},"/v1/comment":{"post":{"operationId":"CommentController_findAll_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindAllCommentsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindCommentsPaginatedResponseDto"}}}}},"tags":["comment"]}},"/v1/comment/{sourceType}/{id}":{"get":{"operationId":"CommentController_findOneById_v1","parameters":[{"name":"sourceType","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ActivityCommentDto"},{"$ref":"#/components/schemas/ReviewCommentDto"},{"$ref":"#/components/schemas/PostCommentDto"}]}}}}},"tags":["comment"]}},"/v1/comment/{sourceType}/{id}/children":{"get":{"operationId":"CommentController_findAllChildrenById_v1","parameters":[{"name":"sourceType","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"offset","required":false,"in":"query","schema":{"default":0,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}},{"name":"orderBy","required":false,"in":"query","schema":{"$ref":"#/components/schemas/Object"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}}},"tags":["comment"]}},"/v1/comment/create":{"post":{"operationId":"CommentController_create_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommentDto"}}}},"responses":{"201":{"description":""}},"tags":["comment"]}},"/v1/comment/{id}":{"patch":{"operationId":"CommentController_update_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCommentDto"}}}},"responses":{"204":{"description":""}},"tags":["comment"]},"delete":{"operationId":"CommentController_delete_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteCommentDto"}}}},"responses":{"200":{"description":""}},"tags":["comment"]}},"/v1/report":{"get":{"operationId":"ReportController_findAllByLatest_v1","parameters":[{"name":"includeClosed","required":false,"in":"query","schema":{"default":false,"type":"boolean"}},{"name":"offset","required":false,"in":"query","schema":{"default":0,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedReportResponseDto"}}}}},"tags":["report"]},"post":{"operationId":"ReportController_create_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReportRequestDto"}}}},"responses":{"201":{"description":""}},"tags":["report"]}},"/v1/report/{id}":{"get":{"operationId":"ReportController_findOneById_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Report"}}}}},"tags":["report"]}},"/v1/report/{id}/handle":{"post":{"operationId":"ReportController_handle_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HandleReportRequestDto"}}}},"responses":{"201":{"description":""}},"tags":["report"]}},"/v1/recommendation":{"get":{"operationId":"RecommendationController_getRecommendations_v1","parameters":[{"name":"criteria","required":true,"in":"query","description":"Criteria to be used for deciding on what to recommend.\nE.g. finished games, genre of played games, etc.","schema":{"type":"string","enum":["played","finished","genre","theme"]}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}}],"responses":{"200":{"description":""}},"tags":["recommendation"]}},"/v1/posts/feed":{"get":{"operationId":"PostsFeedController_buildFeed_v1","parameters":[{"name":"criteria","required":true,"in":"query","schema":{"type":"string","enum":["following","all"]}},{"name":"lastCreatedAt","required":false,"in":"query","schema":{"type":"string"}},{"name":"lastId","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}},{"name":"postId","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPostsPaginatedResponseDto"}}}}},"tags":["posts-feed"]}},"/v1/blog/post/tags":{"get":{"operationId":"BlogPostController_findAllTags_v1","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BlogPostTag"}}}}}},"tags":["BlogPost"]}},"/v1/blog/post/{postId}":{"get":{"operationId":"BlogPostController_findOneById_v1","parameters":[{"name":"postId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPost"}}}}},"tags":["BlogPost"]},"delete":{"operationId":"BlogPostController_delete_v1","parameters":[{"name":"postId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}},"tags":["BlogPost"]}},"/v1/blog/post":{"get":{"operationId":"BlogPostController_findAll_v1","parameters":[{"name":"tag","required":false,"in":"query","schema":{"type":"string"}},{"name":"includeDraft","required":false,"in":"query","schema":{"default":false,"type":"boolean"}},{"name":"limit","required":false,"in":"query","schema":{"default":20,"type":"number"}},{"name":"offset","required":false,"in":"query","schema":{"default":0,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindAllBlogPostResponseDto"}}}}},"tags":["BlogPost"]},"post":{"operationId":"BlogPostController_create_v1","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/CreateUpdateBlogPostDto"}}}},"responses":{"201":{"description":""}},"tags":["BlogPost"]}},"/v1/blog/post/{postId}/image":{"put":{"operationId":"BlogPostController_updatePostImage_v1","parameters":[{"name":"postId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/UpdateBlogPostImageDto"}}}},"responses":{"204":{"description":""}},"tags":["BlogPost"]}},"/v1/journal/overview/{userId}":{"get":{"operationId":"JournalController_getJournalOverview_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JournalOverviewResponseDto"}}}}},"tags":["journal"]}},"/v1/journal/playlog/{userId}/{gameId}":{"get":{"operationId":"JournalController_getJournalPlaylog_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"gameId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/JournalPlaylogGroupDto"}}}}}},"tags":["journal"]}},"/v1/journal/heatmap/{userId}":{"get":{"operationId":"JournalController_getHeatmap_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetJournalHeatmapResponseDto"}}}}},"tags":["journal"]}},"/v1/journal/achievements/{userId}":{"get":{"operationId":"JournalController_getObtainedAchievementsJournal_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetObtainedAchievementsJournalResponseDto"}}}}},"tags":["journal"]}},"/v1/awards/admin/event":{"post":{"operationId":"AwardsAdminController_createOrUpdateEvent_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUpdateAwardsEventDto"}}}},"responses":{"201":{"description":""}},"tags":["awards"]}},"/v1/awards/admin/category":{"post":{"operationId":"AwardsAdminController_createUpdateCategory_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUpdateAwardsCategoryDto"}}}},"responses":{"201":{"description":""}},"tags":["awards"]}},"/v1/awards/admin/category/suggestion":{"post":{"operationId":"AwardsAdminController_addCategorySuggestion_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddCategorySuggestionDto"}}}},"responses":{"201":{"description":""}},"tags":["awards"]},"delete":{"operationId":"AwardsAdminController_removeCategorySuggestion_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddCategorySuggestionDto"}}}},"responses":{"200":{"description":""}},"tags":["awards"]}},"/v1/awards/vote/{eventId}/recent":{"get":{"operationId":"AwardsVoteController_getRecentVotesByEventId_v1","parameters":[{"name":"eventId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AwardsVote"}}}}}},"tags":["awards"]}},"/v1/awards/vote/{userId}/{categoryId}":{"get":{"operationId":"AwardsVoteController_getVoteByUserId_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"categoryId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwardsVote"}}}}},"tags":["awards"]}},"/v1/awards/vote":{"post":{"operationId":"AwardsVoteController_registerVote_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAwardsVoteDto"}}}},"responses":{"201":{"description":""}},"tags":["awards"]}},"/v1/awards/events/{id}":{"get":{"operationId":"AwardsController_getEventById_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwardsEvent"}}}}},"tags":["awards"]}},"/v1/awards/events/year/{year}":{"get":{"operationId":"AwardsController_getEventsByYear_v1","parameters":[{"name":"year","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwardsEvent"}}}}},"tags":["awards"]}},"/v1/awards/events":{"get":{"operationId":"AwardsController_getEvents_v1","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AwardsEvent"}}}}}},"tags":["awards"]}},"/v1/awards/{eventId}/categories":{"get":{"operationId":"AwardsController_getCategoriesByEventId_v1","parameters":[{"name":"eventId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VotableAwardsCategoryDto"}}}}}},"tags":["awards"]}},"/v1/awards/{eventId}/results":{"get":{"operationId":"AwardsController_getResultsByEventId_v1","parameters":[{"name":"eventId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AwardsCategoryResult"}}}}}},"tags":["awards"]}},"/v1/user/account/restart":{"delete":{"operationId":"UserAccountController_restartUserAccount_v1","parameters":[],"responses":{"200":{"description":""}},"tags":["user-account"]}},"/v1/preferred-platform":{"get":{"operationId":"PreferredPlatformController_findAllByUserId_v1","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PreferredPlatformDto"}}}}}},"tags":["preferred-platform"]},"post":{"operationId":"PreferredPlatformController_createOrUpdate_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePreferredPlatformDto"}}}},"responses":{"201":{"description":""}},"tags":["preferred-platform"]}},"/v1/preferred-platform/{platformId}":{"delete":{"operationId":"PreferredPlatformController_deletePreferredPlatform_v1","parameters":[{"name":"platformId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":""}},"tags":["preferred-platform"]}},"/v1/recap/{year}/{userId}/status":{"get":{"operationId":"RecapController_getRecapStatus_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"year","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecapStatusDto"}}}}},"summary":"Given a userID, returns the recap status for the current year.\nThis includes whether the recap is created and if the user is eligible for the recap.\nThe eligibility is determined by the user's account creation date and the target year.","tags":["recap"]}},"/v1/recap/{year}/{userId}":{"get":{"operationId":"RecapController_getRecapByYear_v1","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"year","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/YearRecapDto"}}}}},"summary":"Given a year and userId, returns the actual recap data for that user in that year.","tags":["recap"]}}},"info":{"title":"GameNode API","description":"API docs for the videogame catalog system GameNode. <br><br>Built with love by the GameNode team.","version":"1.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"Library":{"type":"object","properties":{"userId":{"type":"string","description":"@description The primary key of the library entity.\nAlso used to share the library with other users.\n\nSame as SuperTokens' userId."},"collections":{"type":"array","items":{"$ref":"#/components/schemas/Collection"}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["userId","collections","createdAt","updatedAt"]},"GameCover":{"type":"object","properties":{"game":{"$ref":"#/components/schemas/Game"},"id":{"type":"number"},"alphaChannel":{"type":"boolean"},"animated":{"type":"boolean"},"height":{"type":"number"},"imageId":{"type":"string"},"url":{"type":"string"},"width":{"type":"number"},"checksum":{"type":"string"}},"required":["game","id"]},"GameAlternativeName":{"type":"object","properties":{"id":{"type":"number"},"comment":{"type":"string"},"name":{"type":"string"},"checksum":{"type":"string"},"game":{"$ref":"#/components/schemas/Game"}},"required":["id","game"]},"GameArtwork":{"type":"object","properties":{"game":{"$ref":"#/components/schemas/Game"},"id":{"type":"number"},"alphaChannel":{"type":"boolean"},"animated":{"type":"boolean"},"height":{"type":"number"},"imageId":{"type":"string"},"url":{"type":"string"},"width":{"type":"number"},"checksum":{"type":"string"}},"required":["game","id"]},"GameScreenshot":{"type":"object","properties":{"game":{"$ref":"#/components/schemas/Game"},"id":{"type":"number"},"alphaChannel":{"type":"boolean"},"animated":{"type":"boolean"},"height":{"type":"number"},"imageId":{"type":"string"},"url":{"type":"string"},"width":{"type":"number"},"checksum":{"type":"string"}},"required":["game","id"]},"GameLocalization":{"type":"object","properties":{"game":{"$ref":"#/components/schemas/Game"},"id":{"type":"number"},"checksum":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["game","id","createdAt","updatedAt"]},"GameMode":{"type":"object","properties":{"game":{"$ref":"#/components/schemas/Game"},"id":{"type":"number"},"checksum":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["game","id","createdAt","updatedAt"]},"GameGenre":{"type":"object","properties":{"games":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"id":{"type":"number"},"checksum":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["games","id","createdAt","updatedAt"]},"GameTheme":{"type":"object","properties":{"games":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"id":{"type":"number"},"checksum":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","createdAt","updatedAt"]},"GamePlayerPerspective":{"type":"object","properties":{"games":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"id":{"type":"number"},"checksum":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["games","id","createdAt","updatedAt"]},"GameEngineLogo":{"type":"object","properties":{"engine":{"$ref":"#/components/schemas/GameEngine"},"id":{"type":"number"},"alphaChannel":{"type":"boolean"},"animated":{"type":"boolean"},"height":{"type":"number"},"imageId":{"type":"string"},"url":{"type":"string"},"width":{"type":"number"},"checksum":{"type":"string"}},"required":["engine","id"]},"GameCompanyLogo":{"type":"object","properties":{"company":{"$ref":"#/components/schemas/GameCompany"},"id":{"type":"number"},"alphaChannel":{"type":"boolean"},"animated":{"type":"boolean"},"height":{"type":"number"},"imageId":{"type":"string"},"url":{"type":"string"},"width":{"type":"number"},"checksum":{"type":"string"}},"required":["company","id"]},"GameCompany":{"type":"object","properties":{"id":{"type":"number"},"changeDate":{"format":"date-time","type":"string"},"changeDateCategory":{"type":"string"},"changedCompany":{"$ref":"#/components/schemas/GameCompany"},"checksum":{"type":"string"},"country":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"description":{"type":"string"},"logo":{"$ref":"#/components/schemas/GameCompanyLogo"},"name":{"type":"string"},"parent":{"$ref":"#/components/schemas/GameCompany"},"parentId":{"type":"number","nullable":true},"slug":{"type":"string"},"startDate":{"format":"date-time","type":"string"},"startDateCategory":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"},"url":{"type":"string"}},"required":["id","createdAt","name","parentId","slug","updatedAt"]},"GamePlatform":{"type":"object","properties":{"id":{"type":"number"},"abbreviation":{"type":"string"},"alternative_name":{"type":"string"},"category":{"type":"number","enum":[1,2,3,4,5,6]},"checksum":{"type":"string"},"generation":{"type":"number"},"name":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"games":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"collectionEntries":{"type":"array","items":{"$ref":"#/components/schemas/CollectionEntry"}}},"required":["id","abbreviation","alternative_name","category","checksum","generation","name","createdAt","updatedAt","games","collectionEntries"]},"GameEngine":{"type":"object","properties":{"logo":{"$ref":"#/components/schemas/GameEngineLogo"},"companies":{"type":"array","items":{"$ref":"#/components/schemas/GameCompany"}},"platforms":{"type":"array","items":{"$ref":"#/components/schemas/GamePlatform"}},"games":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"id":{"type":"number"},"checksum":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["logo","companies","platforms","games","id","createdAt","updatedAt"]},"GameKeyword":{"type":"object","properties":{"game":{"$ref":"#/components/schemas/Game"},"id":{"type":"number"},"checksum":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["game","id","createdAt","updatedAt"]},"GameFranchise":{"type":"object","properties":{"games":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"id":{"type":"number"},"checksum":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["games","id","createdAt","updatedAt"]},"PsnExtraMappings":{"type":"object","properties":{"id":{"type":"number"},"externalGame":{"$ref":"#/components/schemas/GameExternalGame"},"externalGameId":{"type":"number"},"npCommunicationId":{"type":"string"},"npServiceName":{"type":"string","description":"'trophy' or 'trophy2'"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["id","externalGame","externalGameId","npCommunicationId","npServiceName","createdAt","updatedAt","deletedAt"]},"GameExternalGame":{"type":"object","properties":{"id":{"type":"number"},"uid":{"type":"string","description":"Corresponds to the game id on the target source (see GameExternalGameCategory).\nIt's called uid, not uuid."},"category":{"type":"number","enum":[1,3,5,10,11,13,14,15,20,22,23,26,28,29,30,31,32,36,37,54,55,121]},"media":{"type":"number","enum":[1,2]},"checksum":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"year":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"number"},"psnExtraMappings":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/PsnExtraMappings"}}},"required":["id","uid","createdAt","updatedAt","game","gameId","psnExtraMappings"]},"GameInvolvedCompany":{"type":"object","properties":{"id":{"type":"number"},"checksum":{"type":"string"},"company":{"$ref":"#/components/schemas/GameCompany"},"companyId":{"type":"number"},"developer":{"type":"boolean"},"porting":{"type":"boolean"},"publisher":{"type":"boolean"},"supporting":{"type":"boolean"},"games":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","company","companyId","developer","porting","publisher","supporting","games","createdAt","updatedAt"]},"Game":{"type":"object","properties":{"id":{"type":"number","description":"Should be mapped to the IGDB ID of the game."},"name":{"type":"string"},"slug":{"type":"string"},"aggregatedRating":{"type":"number"},"aggregatedRatingCount":{"type":"number"},"category":{"enum":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],"type":"number"},"status":{"enum":[0,2,3,4,5,6,7,8],"type":"number"},"summary":{"type":"string"},"storyline":{"type":"string"},"checksum":{"type":"string"},"url":{"type":"string"},"firstReleaseDate":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"dlcs":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"dlcOf":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"expansions":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"expansionOf":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"expandedGames":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"expandedGameOf":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"similarGames":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"similarGameOf":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"remakes":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"remakeOf":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"remasters":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"remasterOf":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"cover":{"$ref":"#/components/schemas/GameCover"},"alternativeNames":{"type":"array","items":{"$ref":"#/components/schemas/GameAlternativeName"}},"artworks":{"type":"array","items":{"$ref":"#/components/schemas/GameArtwork"}},"screenshots":{"type":"array","items":{"$ref":"#/components/schemas/GameScreenshot"}},"gameLocalizations":{"type":"array","items":{"$ref":"#/components/schemas/GameLocalization"}},"gameModes":{"type":"array","items":{"$ref":"#/components/schemas/GameMode"}},"genres":{"type":"array","items":{"$ref":"#/components/schemas/GameGenre"}},"themes":{"type":"array","items":{"$ref":"#/components/schemas/GameTheme"}},"playerPerspectives":{"type":"array","items":{"$ref":"#/components/schemas/GamePlayerPerspective"}},"gameEngines":{"type":"array","items":{"$ref":"#/components/schemas/GameEngine"}},"keywords":{"type":"array","items":{"$ref":"#/components/schemas/GameKeyword"}},"franchises":{"type":"array","items":{"$ref":"#/components/schemas/GameFranchise"}},"platforms":{"type":"array","items":{"$ref":"#/components/schemas/GamePlatform"}},"externalGames":{"type":"array","items":{"$ref":"#/components/schemas/GameExternalGame"}},"involvedCompanies":{"type":"array","items":{"$ref":"#/components/schemas/GameInvolvedCompany"}},"source":{"type":"string","description":"Oh dear maintainer, please forgive me for using transient fields.","default":"MYSQL","enum":["MYSQL","MANTICORE"]}},"required":["id","name","slug","category","status","summary","storyline","checksum","url","firstReleaseDate","createdAt","updatedAt","dlcs","dlcOf","expansions","expansionOf","expandedGames","expandedGameOf","similarGames","similarGameOf","remakes","remakeOf","remasters","remasterOf","cover","alternativeNames","artworks","screenshots","gameLocalizations","gameModes","genres","themes","playerPerspectives","gameEngines","keywords","franchises","platforms","externalGames","involvedCompanies","source"]},"CollectionEntry":{"type":"object","properties":{"collections":{"description":"Collections this entry belongs to","type":"array","items":{"$ref":"#/components/schemas/Collection"}},"id":{"type":"string"},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"number"},"ownedPlatforms":{"description":"The platforms on which the user owns the game.","type":"array","items":{"$ref":"#/components/schemas/GamePlatform"}},"collectionsMap":{"type":"array","items":{"$ref":"#/components/schemas/CollectionEntryToCollection"}},"isFavorite":{"type":"boolean"},"status":{"enum":["playing","finished","planned","dropped","ongoing"],"type":"string"},"library":{"$ref":"#/components/schemas/Library"},"libraryUserId":{"type":"string"},"finishedAt":{"format":"date-time","type":"string","nullable":true},"startedAt":{"format":"date-time","type":"string","nullable":true},"droppedAt":{"format":"date-time","type":"string","nullable":true},"plannedAt":{"format":"date-time","type":"string","nullable":true},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["collections","id","game","gameId","ownedPlatforms","collectionsMap","isFavorite","status","library","libraryUserId","finishedAt","startedAt","droppedAt","plannedAt","createdAt","updatedAt"]},"CollectionEntryToCollection":{"type":"object","properties":{"collectionEntryId":{"type":"string"},"collectionId":{"type":"string"},"order":{"type":"number"},"collectionEntry":{"$ref":"#/components/schemas/CollectionEntry"},"collection":{"$ref":"#/components/schemas/Collection"},"createdAt":{"format":"date-time","type":"string"}},"required":["collectionEntryId","collectionId","order","collectionEntry","collection","createdAt"]},"Collection":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"isPublic":{"type":"boolean"},"library":{"$ref":"#/components/schemas/Library"},"libraryUserId":{"type":"string"},"defaultEntryStatus":{"nullable":true,"description":"The default status for collection entries added to this collection.","enum":["playing","finished","planned","dropped","ongoing"],"type":"string"},"entriesMap":{"type":"array","items":{"$ref":"#/components/schemas/CollectionEntryToCollection"}},"isFeatured":{"type":"boolean"},"isFinished":{"type":"boolean"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","name","description","isPublic","library","libraryUserId","defaultEntryStatus","entriesMap","isFeatured","isFinished","createdAt","updatedAt"]},"CreateCollectionDto":{"type":"object","properties":{"defaultEntryStatus":{"nullable":true,"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"isPublic":{"type":"boolean","default":true},"isFeatured":{"type":"boolean","default":false}},"required":["name"]},"UpdateCollectionDto":{"type":"object","properties":{}},"CreateUpdateCollectionEntryDto":{"type":"object","properties":{"collectionIds":{"type":"array","items":{"type":"string"}},"gameId":{"type":"number"},"relatedGameIds":{"type":"array","items":{"type":"number"}},"platformIds":{"type":"array","items":{"type":"number"}},"finishedAt":{"format":"date-time","type":"string","nullable":true},"status":{"type":"string","enum":["playing","finished","planned","dropped","ongoing"]}},"required":["collectionIds","gameId","platformIds","status"]},"FindRelatedCollectionEntriesResponseDto":{"type":"object","properties":{"dlcs":{"type":"array","items":{"$ref":"#/components/schemas/CollectionEntry"}},"expansions":{"type":"array","items":{"$ref":"#/components/schemas/CollectionEntry"}}},"required":["dlcs","expansions"]},"CollectionEntryFavoriteStatusDto":{"type":"object","properties":{"isFavorite":{"type":"boolean","default":false}},"required":["isFavorite"]},"FindCollectionEntriesOrderBy":{"type":"object","properties":{"addedDate":{"type":"string"},"releaseDate":{"type":"string"},"userCustom":{"type":"string"}}},"FindCollectionEntriesGameFilterDto":{"type":"object","properties":{"category":{"type":"array","items":{"type":"number","enum":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]}},"status":{"type":"array","items":{"type":"number","enum":[0,2,3,4,5,6,7,8]}}}},"PaginationInfo":{"type":"object","properties":{"totalItems":{"type":"number","description":"Total number of items available for the current query"},"totalPages":{"type":"number","description":"Total number of pages available for the current query"},"hasNextPage":{"type":"boolean","description":"If this query allows for a next page"}},"required":["totalItems","totalPages","hasNextPage"]},"CollectionEntriesPaginatedResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CollectionEntry"}},"pagination":{"$ref":"#/components/schemas/PaginationInfo"}},"required":["data","pagination"]},"FindCollectionEntriesForCollectionIdDto":{"type":"object","properties":{"orderBy":{"$ref":"#/components/schemas/FindCollectionEntriesOrderBy"},"status":{"enum":["playing","finished","planned","dropped","ongoing"],"type":"string"},"gameFilters":{"$ref":"#/components/schemas/FindCollectionEntriesGameFilterDto"},"offset":{"type":"number","default":0},"limit":{"type":"number","default":20}}},"CollectionEntryUpdateOrderingDto":{"type":"object","properties":{"collectionId":{"type":"string"},"entryId":{"type":"string"},"previousEntryId":{"type":"string"},"nextEntryId":{"type":"string"}},"required":["collectionId","entryId"]},"ProfileAvatar":{"type":"object","properties":{"profile":{"$ref":"#/components/schemas/Profile"},"id":{"type":"number"},"mimetype":{"type":"string"},"extension":{"type":"string"},"size":{"type":"number"},"filename":{"type":"string"},"encoding":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["profile","id","mimetype","extension","size","filename","encoding","createdAt","updatedAt","deletedAt"]},"ProfileBanner":{"type":"object","properties":{"profile":{"$ref":"#/components/schemas/Profile"},"id":{"type":"number"},"mimetype":{"type":"string"},"extension":{"type":"string"},"size":{"type":"number"},"filename":{"type":"string"},"encoding":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["profile","id","mimetype","extension","size","filename","encoding","createdAt","updatedAt","deletedAt"]},"Profile":{"type":"object","properties":{"userId":{"type":"string","description":"Shareable string ID\n\nSame as SuperTokens' userId."},"username":{"type":"string"},"bio":{"type":"string"},"avatar":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ProfileAvatar"}]},"banner":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ProfileBanner"}]},"usernameLastUpdatedAt":{"format":"date-time","type":"string","nullable":true},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["userId","username","bio","avatar","banner","usernameLastUpdatedAt","createdAt","updatedAt"]},"Review":{"type":"object","properties":{"id":{"type":"string"},"content":{"type":"string","nullable":true},"rating":{"type":"number"},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"number"},"profile":{"$ref":"#/components/schemas/Profile"},"profileUserId":{"type":"string"},"collectionEntry":{"$ref":"#/components/schemas/CollectionEntry"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","content","rating","game","gameId","profile","profileUserId","collectionEntry","createdAt","updatedAt"]},"UserFollow":{"type":"object","properties":{"id":{"type":"number"},"follower":{"description":"User that is following another user.","allOf":[{"$ref":"#/components/schemas/Profile"}]},"followerUserId":{"type":"string","description":"User that is following another user."},"followed":{"description":"User that is being followed","allOf":[{"$ref":"#/components/schemas/Profile"}]},"followedUserId":{"type":"string","description":"User that is being followed"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","follower","followerUserId","followed","followedUserId","createdAt","updatedAt"]},"Post":{"type":"object","properties":{"id":{"type":"string"},"content":{"type":"string","description":"The post HTML content"},"profile":{"$ref":"#/components/schemas/Profile"},"profileUserId":{"type":"string"},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["id","content","profile","profileUserId","game","gameId","createdAt","updatedAt","deletedAt"]},"ObtainedGameAchievement":{"type":"object","properties":{"id":{"type":"number"},"externalAchievementId":{"type":"string","description":"The ID of the achievement in the external platform (e.g., Steam achievement ID).\nNormalized to a string to accommodate various formats across platforms."},"profile":{"$ref":"#/components/schemas/Profile"},"profileUserId":{"type":"string"},"externalGame":{"$ref":"#/components/schemas/GameExternalGame"},"externalGameId":{"type":"number"},"obtainedAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["id","externalAchievementId","profile","profileUserId","externalGame","externalGameId","obtainedAt","createdAt","updatedAt","deletedAt"]},"ObtainedGameAchievementActivity":{"type":"object","properties":{"id":{"type":"number"},"profile":{"$ref":"#/components/schemas/Profile"},"profileUserId":{"type":"string"},"totalObtained":{"type":"number"},"hasCompletedAllAchievements":{"type":"boolean","description":"If the user has obtained all achievements for the game\n(including obtained achievements not related to this specific activity), this is set to true.\nThis value may be outdated if a game update/DLC adds new achievements, but\nfor activity purposes it is sufficient."},"hasObtainedPlatinumTrophy":{"type":"boolean","description":"Exclusive to PlayStation games: if the user has obtained the platinum trophy for the game\nThis will only be true if the platinum trophy is featured in the list of obtained achievements\nfor this specific activity."},"externalGame":{"description":"The related external game the achievements were obtained for.\nAll obtained achievements for this activity should be related to this specific external game, but this is not enforced on the database level.","allOf":[{"$ref":"#/components/schemas/GameExternalGame"}]},"externalGameId":{"type":"number"},"obtainedGameAchievements":{"description":"Game achievements obtained by the user for this activity.\nThis reads as 'achievements obtained since last check' and usually only includes\none or more achievements for related to a single game, since processing is done on a per-game basis.","type":"array","items":{"$ref":"#/components/schemas/ObtainedGameAchievement"}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["id","profile","profileUserId","totalObtained","hasCompletedAllAchievements","hasObtainedPlatinumTrophy","externalGame","externalGameId","obtainedGameAchievements","createdAt","updatedAt","deletedAt"]},"Activity":{"type":"object","properties":{"id":{"type":"string"},"type":{"enum":["REVIEW","FOLLOW","COLLECTION_ENTRY","POST","OBTAINED_GAME_ACHIEVEMENT"],"type":"string"},"profile":{"description":"The associated profile with this Activity (e.g. user who performed an action)","allOf":[{"$ref":"#/components/schemas/Profile"}]},"profileUserId":{"type":"string"},"collectionEntry":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/CollectionEntry"}]},"collectionEntryId":{"type":"string","nullable":true},"collection":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Collection"}]},"collectionId":{"type":"string","nullable":true},"review":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Review"}]},"reviewId":{"type":"string","nullable":true},"userFollow":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/UserFollow"}]},"userFollowId":{"type":"number","nullable":true},"post":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Post"}]},"postId":{"type":"string","nullable":true},"obtainedGameAchievementActivity":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ObtainedGameAchievementActivity"}]},"obtainedGameAchievementActivityId":{"type":"number","nullable":true},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","type","profile","profileUserId","collectionEntry","collectionEntryId","collection","collectionId","review","reviewId","userFollow","userFollowId","post","postId","obtainedGameAchievementActivity","obtainedGameAchievementActivityId","createdAt","updatedAt"]},"ActivitiesPaginatedResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Activity"}},"pagination":{"$ref":"#/components/schemas/PaginationInfo"}},"required":["data","pagination"]},"StatisticsActionDto":{"type":"object","properties":{"sourceId":{"oneOf":[{"type":"string"},{"type":"number"}]},"targetUserId":{"type":"string","minLength":36},"sourceType":{"enum":["game","review","activity","post","review_comment","activity_comment","post_comment"],"type":"string"}},"required":["sourceId","sourceType"]},"FindOneStatisticsDto":{"type":"object","properties":{"sourceId":{"oneOf":[{"type":"string"},{"type":"number"}]},"sourceType":{"type":"string","enum":["game","review","activity","post","review_comment","activity_comment","post_comment"]}},"required":["sourceId","sourceType"]},"GameRepositoryFilterDto":{"type":"object","properties":{"ids":{"description":"If this is supplied, filtering will be done only for entities specified here. <br>\nUseful to filter data received from entities which hold game ids (like GameStatistics, Reviews, etc.)","type":"array","items":{"type":"number"}},"status":{"type":"array","items":{"type":"number","enum":[0,2,3,4,5,6,7,8]}},"category":{"type":"array","items":{"type":"number","enum":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]}},"themes":{"type":"array","items":{"type":"number"}},"gameModes":{"type":"array","items":{"type":"number"}},"platforms":{"type":"array","items":{"type":"number"}},"genres":{"type":"array","items":{"type":"number"}},"offset":{"type":"number","default":0},"limit":{"type":"number","default":20}}},"FindStatisticsTrendingGamesDto":{"type":"object","properties":{"criteria":{"$ref":"#/components/schemas/GameRepositoryFilterDto"},"period":{"type":"string","enum":["day","week","month","quarter","half_year","year","all"]},"offset":{"type":"number","default":0},"limit":{"type":"number","default":20}},"required":["period"]},"GameStatistics":{"type":"object","properties":{"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"number"},"id":{"type":"number"},"viewsCount":{"type":"number"},"likesCount":{"type":"number"}},"required":["game","gameId","id","viewsCount","likesCount"]},"GameStatisticsPaginatedResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/GameStatistics"}},"pagination":{"$ref":"#/components/schemas/PaginationInfo"}},"required":["data","pagination"]},"FindStatisticsTrendingReviewsDto":{"type":"object","properties":{"reviewId":{"type":"string","description":"Usually, this property should not be used unless a specific review needs to be retrieved, and it's easier to just\ncall the statistics controller."},"gameId":{"type":"number"},"userId":{"type":"string","minLength":36},"period":{"type":"string","default":"all","enum":["day","week","month","quarter","half_year","year","all"]},"excludeOwn":{"type":"boolean","default":false},"offset":{"type":"number","default":0},"limit":{"type":"number","default":20}},"required":["period"]},"ReviewStatistics":{"type":"object","properties":{"review":{"$ref":"#/components/schemas/Review"},"reviewId":{"type":"string"},"id":{"type":"number"},"viewsCount":{"type":"number"},"likesCount":{"type":"number"}},"required":["review","reviewId","id","viewsCount","likesCount"]},"ReviewStatisticsPaginatedResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReviewStatistics"}},"pagination":{"$ref":"#/components/schemas/PaginationInfo"}},"required":["data","pagination"]},"StatisticsStatus":{"type":"object","properties":{"isLiked":{"type":"boolean"},"isViewed":{"type":"boolean"}},"required":["isLiked","isViewed"]},"ImporterWatchNotification":{"type":"object","properties":{"id":{"type":"number"},"library":{"$ref":"#/components/schemas/Library"},"libraryUserId":{"type":"string"},"source":{"enum":["steam","psn","xbox"],"type":"string"},"games":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GameExternalGame"}},"autoImportedCount":{"type":"number"},"autoImportSkippedCount":{"type":"number"}},"required":["id","library","libraryUserId","source","games","autoImportedCount","autoImportSkippedCount"]},"ReviewComment":{"type":"object","properties":{"review":{"$ref":"#/components/schemas/Review"},"reviewId":{"type":"string"},"parentOf":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ReviewComment"}},"childOf":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ReviewComment"}},"childOfId":{"type":"string","nullable":true},"id":{"type":"string"},"content":{"type":"string","description":"HTML content of the user's comment."},"profile":{"description":"Author of this comment","allOf":[{"$ref":"#/components/schemas/Profile"}]},"profileUserId":{"type":"string","description":"User id of the author of this comment"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["review","reviewId","parentOf","childOf","childOfId","id","content","profile","profileUserId","createdAt","updatedAt"]},"ActivityComment":{"type":"object","properties":{"activity":{"$ref":"#/components/schemas/Activity"},"activityId":{"type":"string"},"parentOf":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ActivityComment"}},"childOf":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ActivityComment"}},"childOfId":{"type":"string","nullable":true},"id":{"type":"string"},"content":{"type":"string","description":"HTML content of the user's comment."},"profile":{"description":"Author of this comment","allOf":[{"$ref":"#/components/schemas/Profile"}]},"profileUserId":{"type":"string","description":"User id of the author of this comment"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["activity","activityId","parentOf","childOf","childOfId","id","content","profile","profileUserId","createdAt","updatedAt"]},"PostComment":{"type":"object","properties":{"post":{"$ref":"#/components/schemas/Post"},"postId":{"type":"string"},"parentOf":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/PostComment"}},"childOf":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/PostComment"}},"childOfId":{"type":"string","nullable":true},"id":{"type":"string"},"content":{"type":"string","description":"HTML content of the user's comment."},"profile":{"description":"Author of this comment","allOf":[{"$ref":"#/components/schemas/Profile"}]},"profileUserId":{"type":"string","description":"User id of the author of this comment"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["post","postId","parentOf","childOf","childOfId","id","content","profile","profileUserId","createdAt","updatedAt"]},"Report":{"type":"object","properties":{"id":{"type":"number"},"sourceType":{"description":"Indexed to improve speed when filtering by type.","enum":["review","profile","post","review_comment","activity_comment","post_comment"],"type":"string"},"category":{"enum":["spam","personal","nudity"],"type":"string"},"reason":{"type":"string","nullable":true,"description":"User-submitted reason for report."},"targetProfile":{"description":"Profile that is being target of a report","allOf":[{"$ref":"#/components/schemas/Profile"}]},"targetProfileUserId":{"type":"string"},"profile":{"description":"User responsible for report.","allOf":[{"$ref":"#/components/schemas/Profile"}]},"profileUserId":{"type":"string"},"closeProfile":{"nullable":true,"description":"User responsible for closing this report","allOf":[{"$ref":"#/components/schemas/Profile"}]},"closeProfileUserId":{"type":"string","nullable":true},"targetReview":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Review"}]},"targetReviewId":{"type":"string","nullable":true},"targetReviewComment":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ReviewComment"}]},"targetReviewCommentId":{"type":"string","nullable":true},"targetActivityComment":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ActivityComment"}]},"targetActivityCommentId":{"type":"string","nullable":true},"targetPost":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Post"}]},"targetPostId":{"type":"string","nullable":true},"targetPostComment":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/PostComment"}]},"targetPostCommentId":{"type":"string","nullable":true},"isClosed":{"type":"boolean"},"closeHandleAction":{"nullable":true,"description":"Action taken when closing this report","enum":["discard","alert","suspend","ban"],"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","sourceType","category","reason","targetProfile","targetProfileUserId","profile","profileUserId","closeProfile","closeProfileUserId","targetReview","targetReviewId","targetReviewComment","targetReviewCommentId","targetActivityComment","targetActivityCommentId","targetPost","targetPostId","targetPostComment","targetPostCommentId","isClosed","closeHandleAction","createdAt","updatedAt"]},"Notification":{"type":"object","properties":{"id":{"type":"number"},"sourceType":{"enum":["game","review","post","post_comment","review_comment","activity","activity_comment","profile","importer","report"],"type":"string"},"category":{"description":"What this notification's about. E.g.: a new like, a new follower, a game launch, etc.","enum":["follow","like","comment","watch","alert","mention"],"type":"string"},"review":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Review"}]},"reviewId":{"type":"string","nullable":true},"game":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Game"}]},"gameId":{"type":"number","nullable":true},"activity":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Activity"}]},"activityId":{"type":"string","nullable":true},"post":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Post"}]},"postId":{"type":"string","nullable":true},"importerNotification":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ImporterWatchNotification"}]},"importerNotificationId":{"type":"number"},"report":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Report"}]},"reportId":{"type":"number","nullable":true},"reviewComment":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ReviewComment"}]},"reviewCommentId":{"type":"string","nullable":true},"activityComment":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ActivityComment"}]},"activityCommentId":{"type":"string","nullable":true},"postComment":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/PostComment"}]},"postCommentId":{"type":"string","nullable":true},"isViewed":{"type":"boolean"},"profile":{"nullable":true,"description":"User responsible for generating this notification (e.g. user that liked a review).","allOf":[{"$ref":"#/components/schemas/Profile"}]},"profileUserId":{"type":"string","nullable":true,"description":"User responsible for generating this notification (e.g. user that liked a review).\nWhen null/undefined, the notification was generated by the 'system'."},"targetProfile":{"nullable":true,"description":"User which is the target for this notification. <br>\nIf this is empty (null/undefined), the notification is targeted at all users. <br>\nNot to be confused with the 'profile' property.","allOf":[{"$ref":"#/components/schemas/Profile"}]},"targetProfileUserId":{"type":"string","nullable":true,"description":"User which is the target for this notification. <br>\nIf this is empty (null/undefined), the notification is targeted at all users. <br>\nNot to be confused with the 'profile' property."},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","sourceType","category","review","reviewId","game","gameId","activity","activityId","post","postId","importerNotification","importerNotificationId","report","reportId","reviewComment","reviewCommentId","activityComment","activityCommentId","postComment","postCommentId","isViewed","profile","profileUserId","targetProfile","targetProfileUserId","createdAt","updatedAt"]},"NotificationAggregateDto":{"type":"object","properties":{"sourceId":{"oneOf":[{"type":"string"},{"type":"number"}]},"category":{"type":"string","enum":["follow","like","comment","watch","alert","mention"]},"sourceType":{"type":"string","enum":["game","review","post","post_comment","review_comment","activity","activity_comment","profile","importer","report"]},"notifications":{"type":"array","items":{"$ref":"#/components/schemas/Notification"}}},"required":["sourceId","category","sourceType","notifications"]},"PaginatedNotificationAggregationDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/NotificationAggregateDto"}},"pagination":{"$ref":"#/components/schemas/PaginationInfo"}},"required":["data","pagination"]},"NotificationViewUpdateDto":{"type":"object","properties":{"isViewed":{"type":"boolean"},"notificationIds":{"type":"array","items":{"type":"number"}}},"required":["isViewed","notificationIds"]},"FindGamesByCollectionTypeRequestDto":{"type":"object","properties":{"collectionType":{"type":"string","enum":["upcoming","recently_released"]},"relations":{"type":"object"},"offset":{"type":"number","default":0},"limit":{"type":"number","default":20}},"required":["collectionType"]},"FindGamesByCollectionTypeResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"pagination":{"$ref":"#/components/schemas/PaginationInfo"}},"required":["data","pagination"]},"GameExternalStoreDto":{"type":"object","properties":{"icon":{"type":"string","nullable":true,"description":"Icon representing said store/service."},"storeName":{"type":"string","nullable":true},"id":{"type":"number"},"uid":{"type":"string","description":"Corresponds to the game id on the target source (see GameExternalGameCategory).\nIt's called uid, not uuid."},"category":{"type":"number","enum":[1,3,5,10,11,13,14,15,20,22,23,26,28,29,30,31,32,36,37,54,55,121]},"media":{"type":"number","enum":[1,2]},"checksum":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"year":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"gameId":{"type":"number"},"psnExtraMappings":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/PsnExtraMappings"}}},"required":["icon","storeName","id","uid","createdAt","updatedAt","gameId","psnExtraMappings"]},"GameRepositoryFindOneDto":{"type":"object","properties":{"relations":{"type":"object"}}},"GameRepositoryFindAllDto":{"type":"object","properties":{"gameIds":{"type":"array","items":{"type":"number"}},"relations":{"type":"object"}},"required":["gameIds"]},"FindExternalGamesResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/GameExternalGame"}},"pagination":{"$ref":"#/components/schemas/PaginationInfo"}},"required":["data","pagination"]},"UnmappedExternalGame":{"type":"object","properties":{"id":{"type":"number"},"sourceUid":{"type":"string"},"category":{"type":"number","enum":[1,3,5,10,11,13,14,15,20,22,23,26,28,29,30,31,32,36,37,54,55,121]},"isActive":{"type":"boolean"}},"required":["id","sourceUid","category","isActive"]},"SubmitExternalGameDto":{"type":"object","properties":{"sourceId":{"type":"string","minLength":1},"sourceUrl":{"type":"string","format":"uri"},"gameId":{"type":"number"},"category":{"type":"number","enum":[1,3,5,10,11,13,14,15,20,22,23,26,28,29,30,31,32,36,37,54,55,121]}},"required":["sourceId","sourceUrl","gameId","category"]},"CreateReviewDto":{"type":"object","properties":{"gameId":{"type":"number"},"content":{"type":"string","minLength":4},"rating":{"type":"number","minimum":0,"maximum":5},"mentionedUserIds":{"default":[],"type":"array","items":{"type":"string","minLength":36}}},"required":["gameId","rating"]},"FindAllReviewsByIdDto":{"type":"object","properties":{"reviewsIds":{"type":"array","items":{"type":"string"}}},"required":["reviewsIds"]},"ReviewScoreDistribution":{"type":"object","properties":{"1":{"type":"number"},"2":{"type":"number"},"3":{"type":"number"},"4":{"type":"number"},"5":{"type":"number"},"total":{"type":"number","description":"Total number of reviews"}},"required":["1","2","3","4","5","total"]},"ReviewScoreResponseDto":{"type":"object","properties":{"median":{"type":"number"},"distribution":{"$ref":"#/components/schemas/ReviewScoreDistribution"}},"required":["median","distribution"]},"Object":{"type":"object","properties":{}},"FindReviewPaginatedDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Review"}},"pagination":{"$ref":"#/components/schemas/PaginationInfo"}},"required":["data","pagination"]},"UpdateProfileDto":{"type":"object","properties":{"username":{"type":"string","minLength":4,"maxLength":20},"bio":{"type":"string","minLength":1,"maxLength":240}}},"UpdateProfileImageDto":{"type":"object","properties":{"type":{"type":"string","enum":["avatar","banner"]},"file":{"type":"object"}},"required":["type","file"]},"FindAllProfileResponseItemDto":{"type":"object","properties":{"profile":{"$ref":"#/components/schemas/Profile"},"isSuspended":{"type":"boolean"},"isBanned":{"type":"boolean"}},"required":["profile","isSuspended","isBanned"]},"AchievementDto":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"expGainAmount":{"type":"number"},"category":{"type":"number","enum":[0,1,2,3,4,5]}},"required":["id","name","description","expGainAmount","category"]},"PaginatedAchievementsResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AchievementDto"}},"pagination":{"$ref":"#/components/schemas/PaginationInfo"}},"required":["data","pagination"]},"ObtainedAchievementDto":{"type":"object","properties":{"achievement":{"$ref":"#/components/schemas/AchievementDto"},"id":{"type":"number"},"achievementId":{"type":"string","description":"Achievement id specified in entries for achievements.data.ts"},"profile":{"$ref":"#/components/schemas/Profile"},"profileUserId":{"type":"string"},"isFeatured":{"type":"boolean"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["achievement","id","achievementId","profile","profileUserId","isFeatured","createdAt","updatedAt"]},"UpdateFeaturedObtainedAchievementDto":{"type":"object","properties":{"isFeatured":{"type":"boolean"}},"required":["isFeatured"]},"AchievementGrantRequestDto":{"type":"object","properties":{"targetUserIds":{"type":"array","items":{"type":"string","minLength":36}},"achievementId":{"type":"string"}},"required":["targetUserIds","achievementId"]},"CreateAchievementCodeRequestDto":{"type":"object","properties":{"expiresAt":{"format":"date-time","type":"string"},"achievementId":{"type":"string"},"isSingleUse":{"type":"boolean","default":true}},"required":["expiresAt","achievementId","isSingleUse"]},"CreateAchievementCodeResponseDto":{"type":"object","properties":{"code":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"}},"required":["code","expiresAt"]},"UpdateFeaturedObtainedAchievementV2Dto":{"type":"object","properties":{"featuredAchievementIds":{"description":"Obtained achievements ids passed here will be marked as featured, while ids not present will be automatically\nmarked not featured.","type":"array","items":{"type":"string"}}},"required":["featuredAchievementIds"]},"UserLevel":{"type":"object","properties":{"userId":{"type":"string","description":"Should be the same as the profile's UserId"},"profile":{"$ref":"#/components/schemas/Profile"},"currentLevel":{"type":"number"},"currentLevelExp":{"type":"number","description":"XP in the current user-level"},"levelUpExpCost":{"type":"number","description":"Threshold XP to hit the next user-level"},"expMultiplier":{"type":"number","description":"The multiplier to apply to all exp gains"}},"required":["userId","profile","currentLevel","currentLevelExp","levelUpExpCost","expMultiplier"]},"CursorPaginationInfo":{"type":"object","properties":{"hasNextPage":{"type":"boolean","description":"If this query allows for a next page"}},"required":["hasNextPage"]},"GetPostsPaginatedResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Post"}},"pagination":{"$ref":"#/components/schemas/CursorPaginationInfo"}},"required":["data","pagination"]},"CreatePostDto":{"type":"object","properties":{"content":{"type":"string"},"gameId":{"type":"number"}},"required":["content","gameId"]},"UploadPostImageRequestDto":{"type":"object","properties":{"file":{"type":"object"}},"required":["file"]},"UploadPostImageResponseDto":{"type":"object","properties":{"filename":{"type":"string","description":"Persisted filename with extension"}},"required":["filename"]},"GameCompletionStatus":{"type":"object","properties":{"externalGameId":{"type":"number"},"profileUserId":{"type":"string"},"externalGame":{"$ref":"#/components/schemas/GameExternalGame"},"profile":{"$ref":"#/components/schemas/Profile"},"isCompleted":{"type":"boolean"},"isPlatinumObtained":{"type":"boolean","description":"Exclusive to PlayStation games.\nIndicates whether the platinum trophy has been obtained for the game.\nThis is often a key indicator of 100% completion in many games."},"totalAvailableAchievements":{"type":"number"},"totalObtainedAchievements":{"type":"number"},"completedAt":{"format":"date-time","type":"string","nullable":true},"checksum":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["externalGameId","profileUserId","externalGame","profile","isCompleted","isPlatinumObtained","totalAvailableAchievements","totalObtainedAchievements","completedAt","checksum","createdAt","updatedAt","deletedAt"]},"SteamAchievementDetails":{"type":"object","properties":{"globalPercentage":{"type":"number","description":"Global percentage of users that own this achievement (essentially represents rarity)."}},"required":["globalPercentage"]},"PsnAchievementDetails":{"type":"object","properties":{"trophyType":{"type":"string"},"trophyIcon":{"type":"string"},"trophyGroupId":{"type":"string","example":"default, 001, 002"}},"required":["trophyType","trophyIcon","trophyGroupId"]},"XboxAchievementDetails":{"type":"object","properties":{"gamerScore":{"type":"number","description":"Gamerscore granted by this achievement."}},"required":["gamerScore"]},"GameAchievementDto":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string","nullable":true},"externalId":{"type":"string"},"source":{"enum":[1,3,5,10,11,13,14,15,20,22,23,26,28,29,30,31,32,36,37,54,55,121],"type":"number"},"externalGameId":{"type":"number"},"gameId":{"type":"number"},"iconUrl":{"type":"string"},"platformIds":{"description":"Related GamePlatform references.\nUsually, an achievement is only related to one platform.","type":"array","items":{"type":"number"}},"steamDetails":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/SteamAchievementDetails"}]},"psnDetails":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/PsnAchievementDetails"}]},"xboxDetails":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/XboxAchievementDetails"}]}},"required":["name","description","externalId","source","externalGameId","gameId","iconUrl","platformIds"]},"GameObtainedAchievementDto":{"type":"object","properties":{"isObtained":{"type":"boolean"},"obtainedAt":{"format":"date-time","type":"string","nullable":true},"externalGameId":{"type":"number"},"externalId":{"type":"string"},"gameId":{"type":"number"},"source":{"enum":[1,3,5,10,11,13,14,15,20,22,23,26,28,29,30,31,32,36,37,54,55,121],"type":"number"}},"required":["isObtained","obtainedAt","externalGameId","externalId","gameId","source"]},"GameAchievementWithObtainedInfo":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string","nullable":true},"externalId":{"type":"string"},"source":{"type":"number","enum":[1,3,5,10,11,13,14,15,20,22,23,26,28,29,30,31,32,36,37,54,55,121]},"externalGameId":{"type":"number"},"gameId":{"type":"number"},"iconUrl":{"type":"string"},"platformIds":{"description":"Related GamePlatform references.\nUsually, an achievement is only related to one platform.","type":"array","items":{"type":"number"}},"steamDetails":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/SteamAchievementDetails"}]},"psnDetails":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/PsnAchievementDetails"}]},"xboxDetails":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/XboxAchievementDetails"}]},"isObtained":{"type":"boolean"},"obtainedAt":{"format":"date-time","type":"string","nullable":true}},"required":["name","description","externalId","source","externalGameId","gameId","iconUrl","platformIds","isObtained","obtainedAt"]},"GameObtainedAchievementActivityDto":{"type":"object","properties":{"obtainedGameAchievements":{"type":"array","items":{"$ref":"#/components/schemas/GameAchievementWithObtainedInfo"}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true},"id":{"type":"number"},"profileUserId":{"type":"string"},"totalObtained":{"type":"number"},"hasCompletedAllAchievements":{"type":"boolean","description":"If the user has obtained all achievements for the game\n(including obtained achievements not related to this specific activity), this is set to true.\nThis value may be outdated if a game update/DLC adds new achievements, but\nfor activity purposes it is sufficient."},"hasObtainedPlatinumTrophy":{"type":"boolean","description":"Exclusive to PlayStation games: if the user has obtained the platinum trophy for the game\nThis will only be true if the platinum trophy is featured in the list of obtained achievements\nfor this specific activity."},"externalGame":{"description":"The related external game the achievements were obtained for.\nAll obtained achievements for this activity should be related to this specific external game, but this is not enforced on the database level.","allOf":[{"$ref":"#/components/schemas/GameExternalGame"}]},"externalGameId":{"type":"number"}},"required":["obtainedGameAchievements","createdAt","updatedAt","deletedAt","id","profileUserId","totalObtained","hasCompletedAllAchievements","hasObtainedPlatinumTrophy","externalGame","externalGameId"]},"GameAchievementGroupDto":{"type":"object","properties":{"source":{"type":"number","enum":[1,3,5,10,11,13,14,15,20,22,23,26,28,29,30,31,32,36,37,54,55,121]},"sourceName":{"type":"string"},"sourceAbbreviatedName":{"type":"string"},"iconName":{"type":"string"},"achievements":{"type":"array","items":{"$ref":"#/components/schemas/GameAchievementDto"}}},"required":["source","sourceName","sourceAbbreviatedName","iconName","achievements"]},"FindObtainedAchievementsResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/GameObtainedAchievementDto"}},"pagination":{"$ref":"#/components/schemas/PaginationInfo"}},"required":["data","pagination"]},"FindAvailableConnectionsResponseDto":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string","enum":["steam","psn","xbox"]},"isImporterViable":{"type":"boolean","description":"If this connection can be used by the importer system to import games\ne.g.: Steam, PSN"},"isImporterWatchViable":{"type":"boolean","description":"If this connection can be used by the importer watch system to periodically\ncheck for new importable games\ne.g.: Steam"},"isPlaytimeImportViable":{"type":"boolean"},"isAchievementImportViable":{"type":"boolean"},"iconName":{"type":"string"}},"required":["name","type","isImporterViable","isImporterWatchViable","isPlaytimeImportViable","isAchievementImportViable","iconName"]},"UserConnectionDto":{"type":"object","properties":{"isImporterViable":{"type":"boolean"},"isImporterWatchViable":{"type":"boolean"},"isPlaytimeImportViable":{"type":"boolean"},"isAchievementImportViable":{"type":"boolean"},"id":{"type":"number"},"type":{"enum":["steam","psn","xbox"],"type":"string"},"profileUserId":{"type":"string"},"sourceUserId":{"type":"string"},"sourceUsername":{"type":"string"},"isAutoImportEnabled":{"type":"boolean"},"autoImportCollection":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Collection"}]},"autoImportCollectionId":{"type":"string","nullable":true}},"required":["isImporterViable","isImporterWatchViable","isPlaytimeImportViable","isAchievementImportViable","id","type","profileUserId","sourceUserId","sourceUsername","isAutoImportEnabled","autoImportCollection","autoImportCollectionId"]},"ConnectionCreateDto":{"type":"object","properties":{"type":{"type":"string","enum":["steam","psn","xbox"]},"userIdentifier":{"type":"string","description":"A string representing a username, user id or profile URL for the target connection <br>\ne.g. a Steam's profile URL","minLength":1},"isAutoImportEnabled":{"type":"boolean","default":false},"autoImportCollectionId":{"type":"string","nullable":true,"format":"uuid"}},"required":["type","userIdentifier","isAutoImportEnabled"]},"UserCumulativePlaytimeDto":{"type":"object","properties":{"lastPlayedDate":{"format":"date-time","type":"string","nullable":true},"firstPlayedDate":{"format":"date-time","type":"string","nullable":true},"totalPlaytimeSeconds":{"type":"number","description":"Total playtime for this game, in seconds."},"totalPlayCount":{"type":"number"},"recentPlaytimeSeconds":{"type":"number"},"gameId":{"type":"number"},"profileUserId":{"type":"string"}},"required":["lastPlayedDate","firstPlayedDate","totalPlaytimeSeconds","totalPlayCount","recentPlaytimeSeconds","gameId","profileUserId"]},"UserPlaytime":{"type":"object","properties":{"lastPlayedDate":{"format":"date-time","type":"string","nullable":true},"firstPlayedDate":{"format":"date-time","type":"string","nullable":true},"id":{"type":"number"},"source":{"type":"string","enum":["steam","psn","xbox","epicgames","gog","battlenet","emulator","nwii","nwiiu","nswitch"]},"profile":{"$ref":"#/components/schemas/Profile"},"profileUserId":{"type":"string"},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"number"},"totalPlaytimeSeconds":{"type":"number","description":"Total playtime for this game, in seconds."},"recentPlaytimeSeconds":{"type":"number"},"totalPlayCount":{"type":"number"},"platform":{"$ref":"#/components/schemas/GamePlatform"},"platformId":{"type":"number"},"checksum":{"type":"string","nullable":true},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["lastPlayedDate","firstPlayedDate","id","source","profile","profileUserId","game","gameId","totalPlaytimeSeconds","recentPlaytimeSeconds","totalPlayCount","platform","platformId","checksum","createdAt","updatedAt"]},"UserPlaytimeDto":{"type":"object","properties":{"lastPlayedDate":{"format":"date-time","type":"string","nullable":true},"firstPlayedDate":{"format":"date-time","type":"string","nullable":true},"id":{"type":"number"},"source":{"enum":["steam","psn","xbox","epicgames","gog","battlenet","emulator","nwii","nwiiu","nswitch"],"type":"string"},"profileUserId":{"type":"string"},"gameId":{"type":"number"},"totalPlaytimeSeconds":{"type":"number","description":"Total playtime for this game, in seconds."},"recentPlaytimeSeconds":{"type":"number"},"totalPlayCount":{"type":"number"},"platform":{"$ref":"#/components/schemas/GamePlatform"},"platformId":{"type":"number"},"checksum":{"type":"string","nullable":true},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["lastPlayedDate","firstPlayedDate","id","source","profileUserId","gameId","totalPlaytimeSeconds","recentPlaytimeSeconds","totalPlayCount","platform","platformId","checksum","createdAt","updatedAt"]},"FindAllPlaytimeResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/UserPlaytimeDto"}},"pagination":{"$ref":"#/components/schemas/PaginationInfo"}},"required":["data","pagination"]},"SubmitUserPlaytimeDto":{"type":"object","properties":{"lastPlayedDate":{"format":"date-time","type":"string","nullable":true},"source":{"type":"string","enum":["steam","psn","xbox","epicgames","gog","battlenet","emulator","nwii","nwiiu","nswitch"]},"gameId":{"type":"number"},"totalPlaytimeSeconds":{"type":"number","description":"Total playtime for this game, in seconds."},"platformId":{"type":"number"}},"required":["lastPlayedDate","source","gameId","totalPlaytimeSeconds","platformId"]},"PlaytimeFilterOrderBy":{"type":"object","properties":{"lastPlayedDate":{"type":"string"},"totalPlayCount":{"type":"string"},"recentPlaytimeSeconds":{"type":"string"},"totalPlaytimeSeconds":{"type":"string"}}},"FindAllPlaytimeFiltersDto":{"type":"object","properties":{"period":{"type":"string","enum":["week","month","year","all"]},"orderBy":{"default":{"lastPlayedDate":"DESC","recentPlaytimeSeconds":"DESC","totalPlaytimeSeconds":"DESC"},"allOf":[{"$ref":"#/components/schemas/PlaytimeFilterOrderBy"}]},"limit":{"type":"number","default":20},"offset":{"type":"number","default":0}},"required":["period"]},"GameTimeToBeatDto":{"type":"object","properties":{"id":{"type":"number","description":"Internal IGDB for this TTB."},"gameId":{"type":"number"},"main":{"type":"number","description":"Average time (in seconds) to finish the game to its credits without spending notable time on extras such as side quests."},"mainPlusSides":{"type":"number","description":"Average time (in seconds) to finish the game while mixing in some extras such as side quests without being overly thorough."},"completionist":{"type":"number","description":"Average time (in seconds) to finish the game to 100% completion."},"submitCount":{"type":"number","description":"Total amount of time to beat submissions for this game (in IGDB)"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","gameId","main","mainPlusSides","completionist","submitCount","createdAt","updatedAt"]},"ActivitiesFeedPaginatedResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Activity"}},"pagination":{"$ref":"#/components/schemas/PaginationInfo"}},"required":["data","pagination"]},"FollowStatusDto":{"type":"object","properties":{"isFollowing":{"type":"boolean"}},"required":["isFollowing"]},"FollowInfoRequestDto":{"type":"object","properties":{"criteria":{"type":"string","enum":["followers","following"]},"targetUserId":{"type":"string","minLength":36},"offset":{"type":"number","default":0},"limit":{"type":"number","default":20},"orderBy":{"type":"object"}},"required":["criteria","targetUserId"]},"FollowInfoResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"string"}},"pagination":{"$ref":"#/components/schemas/PaginationInfo"}},"required":["data","pagination"]},"FollowRegisterDto":{"type":"object","properties":{"followedUserId":{"type":"string","minLength":36}},"required":["followedUserId"]},"FollowRemoveDto":{"type":"object","properties":{"followedUserId":{"type":"string","minLength":36}},"required":["followedUserId"]},"ProfileMetricsOverviewDto":{"type":"object","properties":{"totalGames":{"type":"number"},"totalCollections":{"type":"number"},"totalFinishedGames":{"type":"number"},"totalFinishedGamesInYear":{"type":"number"},"totalPlayedGames":{"type":"number"},"totalPlayedGamesInYear":{"type":"number"},"totalEstimatedPlaytime":{"type":"number","description":"Total playtime spent on games, based on available data import from user's connections."}},"required":["totalGames","totalCollections","totalFinishedGames","totalFinishedGamesInYear","totalPlayedGames","totalPlayedGamesInYear","totalEstimatedPlaytime"]},"ProfileMetricsYearDistributionItem":{"type":"object","properties":{"year":{"type":"number"},"count":{"type":"number"},"reviewedCount":{"type":"number","description":"Number of items in period that have been reviewed. Not available to \"playtime\" criteria."}},"required":["year","count"]},"ProfileMetricsYearDistributionResponseDto":{"type":"object","properties":{"distribution":{"type":"array","items":{"$ref":"#/components/schemas/ProfileMetricsYearDistributionItem"}}},"required":["distribution"]},"ProfileMetricsReportResponseDto":{"type":"object","properties":{"playedInPeriod":{"type":"number"},"finishedInPeriod":{"type":"number"},"reviewedInPeriod":{"type":"number"},"playtimeSecondsInPeriod":{"type":"number"}},"required":["playedInPeriod","finishedInPeriod","reviewedInPeriod","playtimeSecondsInPeriod"]},"ProfileMetricsTypeDistributionItem":{"type":"object","properties":{"criteriaId":{"type":"number","description":"Id of the criteria being used.\nE.g. the id of a 'GameGenre' entity."},"criteriaName":{"type":"string","description":"Criteria being used as basis for this distribution.\nE.g. The name of a 'GameGenre', the name of a Game's category (game, dlc, etc)"},"count":{"type":"number","description":"Total number of times this criteria appears.\nE.g. the number of games of 'adventure' genre a user has."},"finishedCount":{"type":"number","description":"Total number of items of this criteria that have been 'finished'.\nE.g. finished 'adventure' genre games. <br >\nNot avaiable in {@link ProfileMetricsTypeDistributionBy#STATUS}."}},"required":["criteriaId","criteriaName","count","finishedCount"]},"ProfileMetricsTypeDistributionResponseDto":{"type":"object","properties":{"distribution":{"type":"array","items":{"$ref":"#/components/schemas/ProfileMetricsTypeDistributionItem"}}},"required":["distribution"]},"ImporterResponseItemDto":{"type":"object","properties":{"id":{"type":"number"},"uid":{"type":"string","description":"Corresponds to the game id on the target source (see GameExternalGameCategory).\nIt's called uid, not uuid."},"category":{"enum":[1,3,5,10,11,13,14,15,20,22,23,26,28,29,30,31,32,36,37,54,55,121],"type":"number"},"media":{"enum":[1,2],"type":"number"},"checksum":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"year":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"number"},"psnExtraMappings":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/PsnExtraMappings"}},"preferredPlatformId":{"type":"number","description":"The preferred platform to use when adding this importer item to a user's collection."}},"required":["id","uid","createdAt","updatedAt","game","gameId","psnExtraMappings","preferredPlatformId"]},"ImporterPaginatedResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ImporterResponseItemDto"}},"pagination":{"$ref":"#/components/schemas/PaginationInfo"}},"required":["data","pagination"]},"ImporterStatusUpdateRequestDto":{"type":"object","properties":{"status":{"type":"string"},"externalGameId":{"type":"number"}},"required":["status","externalGameId"]},"ActivityCommentDto":{"type":"object","properties":{"parentOf":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ActivityCommentDto"}},"id":{"type":"string"},"content":{"type":"string","description":"HTML content of the user's comment."},"profileUserId":{"type":"string","description":"User id of the author of this comment"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"activityId":{"type":"string"},"childOfId":{"type":"string","nullable":true}},"required":["parentOf","id","content","profileUserId","createdAt","updatedAt","activityId","childOfId"]},"ReviewCommentDto":{"type":"object","properties":{"parentOf":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ReviewCommentDto"}},"id":{"type":"string"},"content":{"type":"string","description":"HTML content of the user's comment."},"profileUserId":{"type":"string","description":"User id of the author of this comment"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"reviewId":{"type":"string"},"childOfId":{"type":"string","nullable":true}},"required":["parentOf","id","content","profileUserId","createdAt","updatedAt","reviewId","childOfId"]},"PostCommentDto":{"type":"object","properties":{"parentOf":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/PostCommentDto"}},"id":{"type":"string"},"content":{"type":"string","description":"HTML content of the user's comment."},"profileUserId":{"type":"string","description":"User id of the author of this comment"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"postId":{"type":"string"},"childOfId":{"type":"string","nullable":true}},"required":["parentOf","id","content","profileUserId","createdAt","updatedAt","postId","childOfId"]},"FindAllCommentsDto":{"type":"object","properties":{"sourceId":{"type":"string","minLength":36},"sourceType":{"type":"string","enum":["review","activity","post"]},"offset":{"type":"number","default":0},"limit":{"type":"number","default":20},"orderBy":{"type":"object"}},"required":["sourceId","sourceType"]},"FindCommentsPaginatedResponseDto":{"type":"object","properties":{"data":{"type":"array","default":[],"items":{"oneOf":[{"$ref":"#/components/schemas/ReviewCommentDto"},{"$ref":"#/components/schemas/ActivityCommentDto"},{"$ref":"#/components/schemas/PostCommentDto"}]}},"pagination":{"default":{},"allOf":[{"$ref":"#/components/schemas/PaginationInfo"}]}},"required":["data","pagination"]},"CreateCommentDto":{"type":"object","properties":{"sourceId":{"type":"string","description":"UUID of the target entity. Comments can only be attributed to\nUUID based entities.","minLength":36},"sourceType":{"type":"string","enum":["review","activity","post"]},"content":{"type":"string","minLength":1},"childOf":{"type":"string","minLength":36}},"required":["sourceId","sourceType","content"]},"UpdateCommentDto":{"type":"object","properties":{"sourceType":{"type":"string","enum":["review","activity","post"]},"content":{"type":"string","minLength":1}},"required":["sourceType","content"]},"DeleteCommentDto":{"type":"object","properties":{"sourceType":{"type":"string","enum":["review","activity","post"]}},"required":["sourceType"]},"PaginatedReportResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Report"}},"pagination":{"$ref":"#/components/schemas/PaginationInfo"}},"required":["data","pagination"]},"CreateReportRequestDto":{"type":"object","properties":{"sourceType":{"type":"string","enum":["review","profile","post","review_comment","activity_comment","post_comment"]},"sourceId":{"type":"string","minLength":36},"category":{"type":"string","enum":["spam","personal","nudity"]},"reason":{"type":"string"}},"required":["sourceType","sourceId","category"]},"HandleReportRequestDto":{"type":"object","properties":{"action":{"type":"string","enum":["discard","alert","suspend","ban"]},"deleteReportedContent":{"type":"boolean","default":true}},"required":["action","deleteReportedContent"]},"BlogPostTag":{"type":"object","properties":{"id":{"type":"string","description":"The provided identifier for this tag.\nIt should be a lowercase version of the tag's name."},"name":{"type":"string"}},"required":["id","name"]},"BlogPostReview":{"type":"object","properties":{"postId":{"type":"string","description":"PK and FK targeting BlogPost"},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"number"},"rating":{"type":"number"},"post":{"$ref":"#/components/schemas/BlogPost"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["postId","game","gameId","rating","post","createdAt","updatedAt","deletedAt"]},"BlogPost":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"content":{"type":"string","description":"The post HTML content"},"isDraft":{"type":"boolean"},"profile":{"$ref":"#/components/schemas/Profile"},"profileUserId":{"type":"string"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/BlogPostTag"}},"image":{"description":"The main presentation image for this post.","allOf":[{"$ref":"#/components/schemas/BlogPostImage"}]},"review":{"nullable":true,"description":"If this is present, this blog post is a game review.","allOf":[{"$ref":"#/components/schemas/BlogPostReview"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["id","title","content","isDraft","profile","profileUserId","tags","image","review","createdAt","updatedAt","deletedAt"]},"BlogPostImage":{"type":"object","properties":{"blogPost":{"$ref":"#/components/schemas/BlogPost"},"id":{"type":"number"},"mimetype":{"type":"string"},"extension":{"type":"string"},"size":{"type":"number"},"filename":{"type":"string"},"encoding":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["blogPost","id","mimetype","extension","size","filename","encoding","createdAt","updatedAt","deletedAt"]},"FindAllBlogPostResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/BlogPost"}},"pagination":{"$ref":"#/components/schemas/PaginationInfo"}},"required":["data","pagination"]},"CreateUpdateBlogPostReviewInfoDto":{"type":"object","properties":{"gameId":{"type":"number"},"rating":{"type":"number","maximum":5,"minimum":1}},"required":["gameId","rating"]},"CreateUpdateBlogPostDto":{"type":"object","properties":{"image":{"type":"object","format":"binary"},"postId":{"type":"string","minLength":36},"content":{"type":"string","minLength":4},"title":{"type":"string","minLength":1},"tags":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string"}},"isDraft":{"type":"boolean"},"reviewInfo":{"$ref":"#/components/schemas/CreateUpdateBlogPostReviewInfoDto"}},"required":["content","title","tags","isDraft"]},"UpdateBlogPostImageDto":{"type":"object","properties":{"image":{"type":"object","format":"binary"}}},"JournalEntryStatusDto":{"type":"object","properties":{"collectionEntryId":{"type":"string","description":"UUID of the collection entry"},"gameId":{"type":"number","description":"ID of the game","example":12345},"status":{"enum":["playing","finished","planned","dropped","ongoing"],"type":"string","description":"Status of the game (e.g., Finished, Started, etc.)","example":"Finished"}},"required":["collectionEntryId","gameId","status"]},"JournalEntryDayGroupDto":{"type":"object","properties":{"day":{"type":"number","description":"Day of the grouping","example":12},"entries":{"description":"List of games and their statuses for the day","type":"array","items":{"$ref":"#/components/schemas/JournalEntryStatusDto"}}},"required":["day","entries"]},"JournalEntryMonthGroupDto":{"type":"object","properties":{"month":{"type":"number","description":"Month of the grouping","example":7},"days":{"description":"Days within the month","type":"array","items":{"$ref":"#/components/schemas/JournalEntryDayGroupDto"}}},"required":["month","days"]},"JournalEntryYearGroupDto":{"type":"object","properties":{"year":{"type":"number","description":"Year of the grouping","example":2025},"months":{"description":"Months within the year","type":"array","items":{"$ref":"#/components/schemas/JournalEntryMonthGroupDto"}}},"required":["year","months"]},"JournalOverviewResponseDto":{"type":"object","properties":{"years":{"description":"Group of collection entries by year","type":"array","items":{"$ref":"#/components/schemas/JournalEntryYearGroupDto"}}},"required":["years"]},"JournalPlaylogEntryDto":{"type":"object","properties":{"gameId":{"type":"number"},"type":{"type":"string","enum":["collection_entry_status","obtained_achievement"]},"entryStatus":{"type":"string","description":"Only available for 'type' of 'collection_entry_status'","enum":["playing","finished","planned","dropped","ongoing"]},"obtainedAchievement":{"description":"Only available for 'type' of 'obtained_achievement'","allOf":[{"$ref":"#/components/schemas/GameAchievementWithObtainedInfo"}]},"platformIds":{"description":"The {@link GamePlatform}s this entry relates to.","type":"array","items":{"type":"number"}},"date":{"type":"string","description":"Date for the staus of 'collection_entry_status', and date the achievement was obtained for 'obtained_achievement'\nIn 'DD-MM-YYYY' format."}},"required":["gameId","type","platformIds","date"]},"JournalPlaylogGroupDto":{"type":"object","properties":{"date":{"type":"string","description":"Date used as criteria to group related entries.\nIn 'DD-MM-YYYY' format.\nEntries will be grouped by this."},"type":{"type":"string","description":"Type used as criteria to group related entries.\nEntries will be grouped by this.","enum":["collection_entry_status","obtained_achievement"]},"platformIds":{"description":"The {@link GamePlatform}s this entry relates to.\n<strong>THIS IS NOT USED AS A GROUPING KEY.</strong>","type":"array","items":{"type":"number"}},"entries":{"type":"array","items":{"$ref":"#/components/schemas/JournalPlaylogEntryDto"}}},"required":["date","type","platformIds","entries"]},"JournalHeatmapItem":{"type":"object","properties":{"date":{"type":"string","description":"Date normalized to the 'day' level. In the 'YYYY-MM-DD' format."},"count":{"type":"number"}},"required":["date","count"]},"GetJournalHeatmapResponseDto":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/JournalHeatmapItem"}}},"required":["items"]},"JournalAchievementsGameGroup":{"type":"object","properties":{"gameId":{"type":"number"},"externalGameId":{"type":"number"},"source":{"type":"number","enum":[1,3,5,10,11,13,14,15,20,22,23,26,28,29,30,31,32,36,37,54,55,121]},"sourceName":{"type":"string"},"sourceAbbreviatedName":{"type":"string"},"sourceIcon":{"type":"string"},"isComplete":{"type":"boolean","description":"If all achievements for this game are obtained, this will be true."},"isPlatinum":{"type":"boolean","description":"Exclusive to PSN.\nIf the platinum trophy for this game is obtained, this will be true.\nNot all games have a platinum trophy, and if a Platinum is obtained before a new achievement is added to the game,\nthere may be cases where the game is 'platinum' but not 'completed'."},"achievements":{"type":"array","items":{"$ref":"#/components/schemas/GameAchievementWithObtainedInfo"}}},"required":["gameId","externalGameId","source","sourceName","sourceAbbreviatedName","sourceIcon","isComplete","isPlatinum","achievements"]},"JournalAchievementsMonthGroup":{"type":"object","properties":{"month":{"type":"number","description":"Month of year, 0 indexed (0 = January, 11 = December)"},"games":{"type":"array","items":{"$ref":"#/components/schemas/JournalAchievementsGameGroup"}}},"required":["month","games"]},"JournalAchievementsYearGroup":{"type":"object","properties":{"year":{"type":"number","description":"Year of achievement obtainment, e.g. 2025"},"totalObtained":{"type":"number"},"months":{"type":"array","items":{"$ref":"#/components/schemas/JournalAchievementsMonthGroup"}}},"required":["year","totalObtained","months"]},"GetObtainedAchievementsJournalResponseDto":{"type":"object","properties":{"years":{"type":"array","items":{"$ref":"#/components/schemas/JournalAchievementsYearGroup"}}},"required":["years"]},"CreateUpdateAwardsEventDto":{"type":"object","properties":{"eventId":{"type":"number"},"year":{"type":"number"},"votingStartDate":{"format":"date-time","type":"string"},"votingEndDate":{"format":"date-time","type":"string"},"resultsDate":{"format":"date-time","type":"string"}},"required":["year","votingStartDate","votingEndDate","resultsDate"]},"CreateUpdateAwardsCategoryDto":{"type":"object","properties":{"categoryId":{"type":"number"},"year":{"type":"number"},"name":{"type":"string"},"description":{"type":"string"},"order":{"type":"number"}},"required":["year","name","description","order"]},"AddCategorySuggestionDto":{"type":"object","properties":{"categoryId":{"type":"number"},"gameId":{"type":"number"}},"required":["categoryId","gameId"]},"AwardsEvent":{"type":"object","properties":{"id":{"type":"number"},"year":{"type":"number","description":"The corresponding year this event should take place in."},"votingStartDate":{"format":"date-time","type":"string","description":"Voting start date"},"votingEndDate":{"format":"date-time","type":"string"},"resultsDate":{"format":"date-time","type":"string"},"categories":{"type":"array","items":{"$ref":"#/components/schemas/AwardsCategory"}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["id","year","votingStartDate","votingEndDate","resultsDate","categories","createdAt","updatedAt","deletedAt"]},"AwardsCategorySuggestion":{"type":"object","properties":{"id":{"type":"number"},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"number"},"category":{"$ref":"#/components/schemas/AwardsCategory"},"categoryId":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["id","game","gameId","category","categoryId","createdAt","updatedAt","deletedAt"]},"AwardsCategory":{"type":"object","properties":{"id":{"type":"number"},"event":{"$ref":"#/components/schemas/AwardsEvent"},"eventId":{"type":"number"},"name":{"type":"string"},"order":{"type":"number"},"description":{"type":"string"},"isGOTY":{"type":"boolean","description":"If this category corresponds to the 'global' goty award."},"isPersonalGOTY":{"type":"boolean"},"suggestions":{"type":"array","items":{"$ref":"#/components/schemas/AwardsCategorySuggestion"}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["id","event","eventId","name","order","description","isGOTY","isPersonalGOTY","suggestions","createdAt","updatedAt","deletedAt"]},"AwardsVote":{"type":"object","properties":{"id":{"type":"number"},"category":{"$ref":"#/components/schemas/AwardsCategory"},"categoryId":{"type":"number"},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"number"},"profile":{"$ref":"#/components/schemas/Profile"},"profileUserId":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["id","category","categoryId","game","gameId","profile","profileUserId","createdAt","updatedAt","deletedAt"]},"RegisterAwardsVoteDto":{"type":"object","properties":{"categoryId":{"type":"number"},"gameId":{"type":"number"}},"required":["categoryId","gameId"]},"VotableAwardsCategoryDto":{"type":"object","properties":{"isVotable":{"type":"boolean"},"votingStartDate":{"format":"date-time","type":"string"},"votingEndDate":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true},"id":{"type":"number"},"eventId":{"type":"number"},"name":{"type":"string"},"order":{"type":"number"},"description":{"type":"string"},"isGOTY":{"type":"boolean","description":"If this category corresponds to the 'global' goty award."},"isPersonalGOTY":{"type":"boolean"},"suggestions":{"type":"array","items":{"$ref":"#/components/schemas/AwardsCategorySuggestion"}}},"required":["isVotable","votingStartDate","votingEndDate","createdAt","updatedAt","deletedAt","id","eventId","name","order","description","isGOTY","isPersonalGOTY","suggestions"]},"AwardsCategoryResult":{"type":"object","properties":{"id":{"type":"number"},"totalVotesCount":{"type":"number"},"totalUniqueGamesSubmitted":{"type":"number"},"totalUsersParticipating":{"type":"number"},"categoryId":{"type":"number"},"category":{"$ref":"#/components/schemas/AwardsCategory"},"winners":{"type":"array","items":{"$ref":"#/components/schemas/AwardsCategoryResultWinner"}}},"required":["id","totalVotesCount","totalUniqueGamesSubmitted","totalUsersParticipating","categoryId","category","winners"]},"AwardsCategoryResultWinner":{"type":"object","properties":{"id":{"type":"number"},"result":{"$ref":"#/components/schemas/AwardsCategoryResult"},"resultId":{"type":"number"},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"number"},"position":{"type":"number"},"totalVotes":{"type":"number"},"votesPercentage":{"type":"number","description":"Percentage of votes for this game in relation to the total votes.\nOnly for the target category.","example":0.5}},"required":["id","result","resultId","game","gameId","position","totalVotes","votesPercentage"]},"PreferredPlatformDto":{"type":"object","properties":{"iconName":{"type":"string"},"id":{"type":"number"},"libraryUserId":{"type":"string"},"platformId":{"type":"number"},"platform":{"$ref":"#/components/schemas/GamePlatform"},"enabled":{"type":"boolean"},"label":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","libraryUserId","platformId","platform","enabled","createdAt","updatedAt"]},"CreatePreferredPlatformDto":{"type":"object","properties":{"platformId":{"type":"number"},"label":{"type":"string"},"isEnabled":{"type":"boolean","default":true}},"required":["platformId"]},"RecapStatusDto":{"type":"object","properties":{"isRecapCreated":{"type":"boolean","description":"If the recap data for this user is already created.\nIf eligible, this will be true once the recap is created by the corresponding job."},"isRecapEligible":{"type":"boolean","description":"If the user is eligible for the target recap year.\nThis is determined by the user's account creation date and the target year."}},"required":["isRecapCreated","isRecapEligible"]},"GamePlatformDto":{"type":"object","properties":{"id":{"type":"number"},"abbreviation":{"type":"string"},"alternative_name":{"type":"string"},"category":{"enum":[1,2,3,4,5,6],"type":"number"},"checksum":{"type":"string"},"generation":{"type":"number"},"name":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"games":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"collectionEntries":{"type":"array","items":{"$ref":"#/components/schemas/CollectionEntry"}},"iconName":{"type":"string","description":"Icon name for the platform\nOnly available if {@link getIconNameForPlatformAbbreviation} or {@link getIconNamesForPlatformAbbreviations} was used to set it"}},"required":["id","abbreviation","alternative_name","category","checksum","generation","name","createdAt","updatedAt","games","collectionEntries"]},"YearRecapPlayedGame":{"type":"object","properties":{"id":{"type":"number"},"recap":{"$ref":"#/components/schemas/YearRecap"},"recapId":{"type":"number"},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"number"},"platform":{"$ref":"#/components/schemas/GamePlatform"},"platformId":{"type":"number"},"totalPlaytimeSeconds":{"type":"number","description":"Total playtime registered for the game during the recap period, in seconds"},"percentOfTotalPlaytime":{"type":"number"},"percentOfTotalPlaytimeFormatted":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["id","recap","recapId","game","gameId","platform","platformId","totalPlaytimeSeconds","percentOfTotalPlaytime","percentOfTotalPlaytimeFormatted","createdAt","updatedAt","deletedAt"]},"YearRecapGenre":{"type":"object","properties":{"id":{"type":"number"},"genre":{"$ref":"#/components/schemas/GameGenre"},"genreId":{"type":"number"},"recap":{"$ref":"#/components/schemas/YearRecap"},"recapId":{"type":"number"},"totalGames":{"type":"number"},"totalGamesFinished":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["id","genre","genreId","recap","recapId","totalGames","totalGamesFinished","createdAt","updatedAt","deletedAt"]},"YearRecapTheme":{"type":"object","properties":{"id":{"type":"number"},"theme":{"$ref":"#/components/schemas/GameTheme"},"themeId":{"type":"number"},"recap":{"$ref":"#/components/schemas/YearRecap"},"recapId":{"type":"number"},"totalGames":{"type":"number"},"totalGamesFinished":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["id","theme","themeId","recap","recapId","totalGames","totalGamesFinished","createdAt","updatedAt","deletedAt"]},"YearRecapMode":{"type":"object","properties":{"id":{"type":"number"},"mode":{"$ref":"#/components/schemas/GameMode"},"modeId":{"type":"number"},"recap":{"$ref":"#/components/schemas/YearRecap"},"recapId":{"type":"number"},"totalGames":{"type":"number"},"totalGamesFinished":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["id","mode","modeId","recap","recapId","totalGames","totalGamesFinished","createdAt","updatedAt","deletedAt"]},"YearRecapPlatform":{"type":"object","properties":{"id":{"type":"number"},"recap":{"$ref":"#/components/schemas/YearRecap"},"recapId":{"type":"number"},"platform":{"$ref":"#/components/schemas/GamePlatform"},"platformId":{"type":"number"},"totalGames":{"type":"number"},"totalGamesFinished":{"type":"number"}},"required":["id","recap","recapId","platform","platformId","totalGames","totalGamesFinished"]},"YearRecap":{"type":"object","properties":{"id":{"type":"number"},"year":{"type":"number"},"profile":{"$ref":"#/components/schemas/Profile"},"profileUserId":{"type":"string"},"totalPlayedGames":{"type":"number"},"totalPlaytimeSeconds":{"type":"number"},"totalAddedGames":{"type":"number"},"totalReviewsCreated":{"type":"number"},"totalCollectionsCreated":{"type":"number"},"totalFollowersGained":{"type":"number"},"totalLikesPerformed":{"type":"number"},"playedGames":{"type":"array","items":{"$ref":"#/components/schemas/YearRecapPlayedGame"}},"genres":{"type":"array","items":{"$ref":"#/components/schemas/YearRecapGenre"}},"themes":{"type":"array","items":{"$ref":"#/components/schemas/YearRecapTheme"}},"modes":{"type":"array","items":{"$ref":"#/components/schemas/YearRecapMode"}},"platforms":{"type":"array","items":{"$ref":"#/components/schemas/YearRecapPlatform"}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["id","year","profile","profileUserId","totalPlayedGames","totalPlaytimeSeconds","totalAddedGames","totalReviewsCreated","totalCollectionsCreated","totalFollowersGained","totalLikesPerformed","playedGames","genres","themes","modes","platforms","createdAt","updatedAt","deletedAt"]},"YearRecapPlayedGameDto":{"type":"object","properties":{"platform":{"$ref":"#/components/schemas/GamePlatformDto"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true},"id":{"type":"number"},"recap":{"$ref":"#/components/schemas/YearRecap"},"recapId":{"type":"number"},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"number"},"platformId":{"type":"number"},"totalPlaytimeSeconds":{"type":"number","description":"Total playtime registered for the game during the recap period, in seconds"},"percentOfTotalPlaytime":{"type":"number"},"percentOfTotalPlaytimeFormatted":{"type":"string"}},"required":["platform","createdAt","updatedAt","deletedAt","id","recap","recapId","game","gameId","platformId","totalPlaytimeSeconds","percentOfTotalPlaytime","percentOfTotalPlaytimeFormatted"]},"YearRecapPlatformCountDto":{"type":"object","properties":{"id":{"type":"number"},"abbreviation":{"type":"string"},"alternative_name":{"type":"string"},"category":{"enum":[1,2,3,4,5,6],"type":"number"},"checksum":{"type":"string"},"generation":{"type":"number"},"name":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"games":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"collectionEntries":{"type":"array","items":{"$ref":"#/components/schemas/CollectionEntry"}},"iconName":{"type":"string","description":"Icon name for the platform\nOnly available if {@link getIconNameForPlatformAbbreviation} or {@link getIconNamesForPlatformAbbreviations} was used to set it"},"count":{"type":"number"}},"required":["id","abbreviation","alternative_name","category","checksum","generation","name","createdAt","updatedAt","games","collectionEntries","count"]},"YearRecapDto":{"type":"object","properties":{"playedGames":{"type":"array","items":{"$ref":"#/components/schemas/YearRecapPlayedGameDto"}},"playedGamesByPlatform":{"description":"Map of platforms and the number of games played on each platform.\nThis is computed from the playedGames list.","type":"array","items":{"$ref":"#/components/schemas/YearRecapPlatformCountDto"}},"distributionByGenre":{"type":"array","items":{"$ref":"#/components/schemas/ProfileMetricsTypeDistributionItem"}},"distributionByMode":{"type":"array","items":{"$ref":"#/components/schemas/ProfileMetricsTypeDistributionItem"}},"distributionByTheme":{"type":"array","items":{"$ref":"#/components/schemas/ProfileMetricsTypeDistributionItem"}},"distributionByPlatform":{"type":"array","items":{"$ref":"#/components/schemas/ProfileMetricsTypeDistributionItem"}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true},"id":{"type":"number"},"year":{"type":"number"},"profile":{"$ref":"#/components/schemas/Profile"},"profileUserId":{"type":"string"},"totalPlayedGames":{"type":"number"},"totalPlaytimeSeconds":{"type":"number"},"totalAddedGames":{"type":"number"},"totalReviewsCreated":{"type":"number"},"totalCollectionsCreated":{"type":"number"},"totalFollowersGained":{"type":"number"},"totalLikesPerformed":{"type":"number"},"genres":{"type":"array","items":{"$ref":"#/components/schemas/YearRecapGenre"}},"themes":{"type":"array","items":{"$ref":"#/components/schemas/YearRecapTheme"}},"modes":{"type":"array","items":{"$ref":"#/components/schemas/YearRecapMode"}},"platforms":{"type":"array","items":{"$ref":"#/components/schemas/YearRecapPlatform"}}},"required":["playedGames","playedGamesByPlatform","distributionByGenre","distributionByMode","distributionByTheme","distributionByPlatform","createdAt","updatedAt","deletedAt","id","year","profile","profileUserId","totalPlayedGames","totalPlaytimeSeconds","totalAddedGames","totalReviewsCreated","totalCollectionsCreated","totalFollowersGained","totalLikesPerformed","genres","themes","modes","platforms"]}}}}