From eae19bb1b047b3568e7a9a624b50e80886e56331 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Mon, 4 Nov 2024 13:47:50 +0300 Subject: feat/frontend: optimizing imports, file extensions (#230) Co-authored-by: FifthWit --- frontend/src/types/Map.ts | 108 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 frontend/src/types/Map.ts (limited to 'frontend/src/types/Map.ts') diff --git a/frontend/src/types/Map.ts b/frontend/src/types/Map.ts new file mode 100644 index 0000000..89c66d5 --- /dev/null +++ b/frontend/src/types/Map.ts @@ -0,0 +1,108 @@ +import type { Category, GameCategoryPortals } from '@customTypes/Game'; +import type { Pagination } from '@customTypes/Pagination'; +import type { UserShort } from '@customTypes/Profile'; + +export interface Map { + id: number; + name: string; + image: string; + is_disabled: boolean; + difficulty: number; + category_portals: GameCategoryPortals[]; +}; + +export interface MapDiscussion { + discussion: MapDiscussionsDetail; +}; + +export interface MapDiscussions { + discussions: MapDiscussionsDetail[]; +}; + +export interface MapDiscussionsDetail { + id: number; + title: string; + content: string; + creator: UserShort; + comments: MapDiscussionDetailComment[]; + created_at: string; + updated_at: string; +}; + +interface MapDiscussionDetailComment { + comment: string; + date: string; + user: UserShort; +}; + +export interface MapLeaderboard { + map: MapSummaryMap; + records: MapLeaderboardRecordSingleplayer[] | MapLeaderboardRecordMultiplayer[]; + pagination: Pagination; +}; + +export interface MapLeaderboardRecordSingleplayer { + kind: "singleplayer"; + placement: number; + record_id: number; + score_count: number; + score_time: number; + user: UserShort; + demo_id: string; + record_date: string; +}; + +export interface MapLeaderboardRecordMultiplayer { + kind: "multiplayer"; + placement: number; + record_id: number; + score_count: number; + score_time: number; + host: UserShort; + partner: UserShort; + host_demo_id: string; + partner_demo_id: string; + record_date: string; +}; + + +export interface MapSummary { + map: MapSummaryMap; + summary: MapSummaryDetails; +}; + +interface MapSummaryMap { + id: number; + image: string; + chapter_name: string; + game_name: string; + map_name: string; + is_coop: boolean; + is_disabled: boolean; +}; + +interface MapSummaryDetails { + routes: MapSummaryDetailsRoute[]; +}; + +interface MapSummaryDetailsRoute { + route_id: number; + category: Category; + history: MapSummaryDetailsRouteHistory; + rating: number; + completion_count: number; + description: string; + showcase: string; +}; + +interface MapSummaryDetailsRouteHistory { + runner_name: string; + score_count: number; + date: string; +}; + +export interface MapDeleteEndpoint { + map_id: number; + record_id: number; +} + -- cgit v1.2.3