diff --git a/common/js/types.d.ts b/common/js/types.d.ts index 5db23f1c6..8b63e60a2 100644 --- a/common/js/types.d.ts +++ b/common/js/types.d.ts @@ -1,4 +1,5 @@ import { IObjectID } from "monk"; +import { FilterQuery } from "mongodb"; export interface CounterDocument { counterName: string; value: integer; @@ -699,19 +700,27 @@ export interface AnySongDocument extends MongoDBDocument { export interface SongDocument extends AnySongDocument { data: SongDocumentData[G]; } -export interface FolderDocument extends MongoDBDocument { +export interface BaseFolderDocument extends MongoDBDocument { title: string; game: Game; playtype: Playtypes[Game]; - type: "query" | "static"; - query: { - collection: "songs" | "charts"; - body: Record; - }; folderID: string; table: string; tableIndex: number; } +export interface FolderSongsDocument extends BaseFolderDocument { + type: "songs"; + data: FilterQuery; +} +export interface FolderChartsDocument extends BaseFolderDocument { + type: "charts"; + data: FilterQuery; +} +export interface FolderStaticDocument extends BaseFolderDocument { + type: "static"; + data: string[]; +} +export declare type FolderDocument = FolderStaticDocument | FolderChartsDocument | FolderSongsDocument; export interface FolderChartLookup extends MongoDBDocument { chartID: string; folderID: string; diff --git a/common/src/types.ts b/common/src/types.ts index e89da5852..da21094f9 100644 --- a/common/src/types.ts +++ b/common/src/types.ts @@ -1,4 +1,5 @@ import { IObjectID } from "monk"; +import { FilterQuery } from "mongodb"; export interface CounterDocument { counterName: string; @@ -878,20 +879,32 @@ export interface SongDocument extends AnySongDocument { data: SongDocumentData[G]; } -export interface FolderDocument extends MongoDBDocument { +export interface BaseFolderDocument extends MongoDBDocument { title: string; game: Game; playtype: Playtypes[Game]; - type: "query" | "static"; - query: { - collection: "songs" | "charts"; - body: Record; - }; folderID: string; table: string; tableIndex: number; } +export interface FolderSongsDocument extends BaseFolderDocument { + type: "songs"; + data: FilterQuery; +} + +export interface FolderChartsDocument extends BaseFolderDocument { + type: "charts"; + data: FilterQuery; +} + +export interface FolderStaticDocument extends BaseFolderDocument { + type: "static"; + data: string[]; +} + +export type FolderDocument = FolderStaticDocument | FolderChartsDocument | FolderSongsDocument; + export interface FolderChartLookup extends MongoDBDocument { chartID: string; folderID: string;