aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/types/Map.ts
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2024-11-04 13:47:50 +0300
committerGitHub <noreply@github.com>2024-11-04 13:47:50 +0300
commiteae19bb1b047b3568e7a9a624b50e80886e56331 (patch)
treeaa3215377fd1a7714e4c5763f9abf9d7dc7def2b /frontend/src/types/Map.ts
parentfix: remove insert trigger on users, check insert user on login err (#224) (diff)
downloadlphub-eae19bb1b047b3568e7a9a624b50e80886e56331.tar.gz
lphub-eae19bb1b047b3568e7a9a624b50e80886e56331.tar.bz2
lphub-eae19bb1b047b3568e7a9a624b50e80886e56331.zip
feat/frontend: optimizing imports, file extensions (#230)
Co-authored-by: FifthWit <fifthwitbusiness@gmail.com>
Diffstat (limited to 'frontend/src/types/Map.ts')
-rw-r--r--frontend/src/types/Map.ts108
1 files changed, 108 insertions, 0 deletions
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 @@
1import type { Category, GameCategoryPortals } from '@customTypes/Game';
2import type { Pagination } from '@customTypes/Pagination';
3import type { UserShort } from '@customTypes/Profile';
4
5export interface Map {
6 id: number;
7 name: string;
8 image: string;
9 is_disabled: boolean;
10 difficulty: number;
11 category_portals: GameCategoryPortals[];
12};
13
14export interface MapDiscussion {
15 discussion: MapDiscussionsDetail;
16};
17
18export interface MapDiscussions {
19 discussions: MapDiscussionsDetail[];
20};
21
22export interface MapDiscussionsDetail {
23 id: number;
24 title: string;
25 content: string;
26 creator: UserShort;
27 comments: MapDiscussionDetailComment[];
28 created_at: string;
29 updated_at: string;
30};
31
32interface MapDiscussionDetailComment {
33 comment: string;
34 date: string;
35 user: UserShort;
36};
37
38export interface MapLeaderboard {
39 map: MapSummaryMap;
40 records: MapLeaderboardRecordSingleplayer[] | MapLeaderboardRecordMultiplayer[];
41 pagination: Pagination;
42};
43
44export interface MapLeaderboardRecordSingleplayer {
45 kind: "singleplayer";
46 placement: number;
47 record_id: number;
48 score_count: number;
49 score_time: number;
50 user: UserShort;
51 demo_id: string;
52 record_date: string;
53};
54
55export interface MapLeaderboardRecordMultiplayer {
56 kind: "multiplayer";
57 placement: number;
58 record_id: number;
59 score_count: number;
60 score_time: number;
61 host: UserShort;
62 partner: UserShort;
63 host_demo_id: string;
64 partner_demo_id: string;
65 record_date: string;
66};
67
68
69export interface MapSummary {
70 map: MapSummaryMap;
71 summary: MapSummaryDetails;
72};
73
74interface MapSummaryMap {
75 id: number;
76 image: string;
77 chapter_name: string;
78 game_name: string;
79 map_name: string;
80 is_coop: boolean;
81 is_disabled: boolean;
82};
83
84interface MapSummaryDetails {
85 routes: MapSummaryDetailsRoute[];
86};
87
88interface MapSummaryDetailsRoute {
89 route_id: number;
90 category: Category;
91 history: MapSummaryDetailsRouteHistory;
92 rating: number;
93 completion_count: number;
94 description: string;
95 showcase: string;
96};
97
98interface MapSummaryDetailsRouteHistory {
99 runner_name: string;
100 score_count: number;
101 date: string;
102};
103
104export interface MapDeleteEndpoint {
105 map_id: number;
106 record_id: number;
107}
108