diff --git a/common/js/types.d.ts b/common/js/types.d.ts index 99f749c3d..10375265e 100644 --- a/common/js/types.d.ts +++ b/common/js/types.d.ts @@ -57,7 +57,7 @@ export interface IDStringToGame { export interface MongoDBDocument { _id?: IObjectID; } -export declare type Databases = "sessions" | "folders" | "folder-chart-lookup" | "scores" | "score-pbs" | "queries" | "rivals" | "notifications" | "imports" | "tierlistdata" | "tierlist" | "goals" | "user-goals" | "user-milestones" | "milestones" | "game-stats" | "users"; +export declare type Databases = "sessions" | "session-views" | "folders" | "folder-chart-lookup" | "scores" | "score-pbs" | "queries" | "rivals" | "notifications" | "imports" | "tierlistdata" | "tierlist" | "goals" | "user-goals" | "user-milestones" | "milestones" | "game-stats" | "users"; export declare type ValidDatabases = Databases | `songs-${Game}` | `charts-${Game}`; /** * Supported games by Kamaitachi. @@ -325,13 +325,18 @@ export interface SessionDocument extends MongoDBDocument { }; highlight: boolean; } -export interface ImportSessionInfo { +export interface SessionViewDocument extends MongoDBDocument { + sessionID: string; + ip: string; + timestamp: number; +} +export interface LEGACY_ImportSessionInfo { sessionID: string; name: string; scoreCount: integer; performance: number; } -export interface ImportDocument extends MongoDBDocument { +export interface LEGACY_ImportDocument extends MongoDBDocument { userID: integer; timeStarted: integer; timeFinished: integer; @@ -339,7 +344,7 @@ export interface ImportDocument extends MongoDBDocument { skippedScores: integer; successfulScores: string[]; service: string; - sessionInfo: ImportSessionInfo[]; + sessionInfo: LEGACY_ImportSessionInfo[]; importID: string; timeTaken: number; msPerScore: number; @@ -354,7 +359,7 @@ export interface ClassDelta { old: string | null; new: string; } -export interface KTBlackImportDocument extends MongoDBDocument { +export interface ImportDocument extends MongoDBDocument { userID: integer; timeStarted: number; timeFinished: number; @@ -635,6 +640,7 @@ export interface TierlistV2Parent exten lastUpdated: number; config: { autoHumanise: boolean; + requireState: null | "clear" | "play"; flags: F[]; }; } @@ -650,7 +656,6 @@ export interface TierlistV2DataDocument extends MongoDBDocumen [flag in F]: boolean; }; }; - tierlistDataID: string; } interface SongDocumentData { iidx: { diff --git a/common/src/types.ts b/common/src/types.ts index 00726e207..dd0488862 100644 --- a/common/src/types.ts +++ b/common/src/types.ts @@ -82,6 +82,7 @@ export interface MongoDBDocument { export type Databases = | "sessions" + | "session-views" | "folders" | "folder-chart-lookup" | "scores" @@ -470,14 +471,20 @@ export interface SessionDocument extends MongoDBDocument { highlight: boolean; } -export interface ImportSessionInfo { +export interface SessionViewDocument extends MongoDBDocument { + sessionID: string; + ip: string; + timestamp: number; +} + +export interface LEGACY_ImportSessionInfo { sessionID: string; name: string; // NONSENSE scoreCount: integer; performance: number; } -export interface ImportDocument extends MongoDBDocument { +export interface LEGACY_ImportDocument extends MongoDBDocument { userID: integer; timeStarted: integer; timeFinished: integer; @@ -485,7 +492,7 @@ export interface ImportDocument extends MongoDBDocument { skippedScores: integer; successfulScores: string[]; service: string; - sessionInfo: ImportSessionInfo[]; + sessionInfo: LEGACY_ImportSessionInfo[]; importID: string; timeTaken: number; msPerScore: number; @@ -503,7 +510,7 @@ export interface ClassDelta { new: string; } -export interface KTBlackImportDocument extends MongoDBDocument { +export interface ImportDocument extends MongoDBDocument { userID: integer; timeStarted: number; timeFinished: number; @@ -826,15 +833,19 @@ export interface TierlistV2Parent exten description: string; lastUpdated: number; config: { + // Automatically update TierlistDataDocuments with humanised strings. idk how this will work yet. autoHumanise: boolean; + // No matter what, users have a permission of 000 if they have not cleared/played the chart + requireState: null | "clear" | "play"; + // the list of flags that can appear in TierlistDataDocuments flags: F[]; }; } export interface TierlistV2DataDocument extends MongoDBDocument { - chartID: string; - tierlistID: string; - type: "grade" | "lamp" | "score"; + chartID: string; // -- compositekey + tierlistID: string; // -- compositekey + type: "grade" | "lamp" | "score"; // -- compositekey data: { key: string; value: number; @@ -843,7 +854,6 @@ export interface TierlistV2DataDocument extends MongoDBDocumen [flag in F]: boolean; }; }; - tierlistDataID: string; // used to xref changelog data } interface SongDocumentData {