diff --git a/common/src/types.ts b/common/src/types.ts index 76427d225..3b4310d59 100644 --- a/common/src/types.ts +++ b/common/src/types.ts @@ -814,7 +814,7 @@ interface ChartDocumentData { "usc:Single": { hashSHA1: string | string[]; isOfficial: boolean }; "ddr:SP": CDDataDDRSP; "ddr:DP": CDDataDDRSP; - "maimai:Single": { maxPercent: number; inGameID: string }; + "maimai:Single": { maxPercent: number; inGameID: number; inGameStrID: string }; "jubeat:Single": { arcChartID: string | null }; "museca:Single": Record; "bms:7K": CDDataBMS; @@ -894,8 +894,8 @@ interface SongDocumentData { maimai: { titleJP: string; artistJP: string; genre: string }; jubeat: Record; popn: Record; - sdvx: { uscEquiv: integer | null }; - usc: { sdvxEquiv: integer | null }; + sdvx: Record; + usc: Record; ddr: Record; bms: { genre: string | null; subtitle: string | null; subartist: string | null }; chunithm: { genre: string }; @@ -1369,3 +1369,31 @@ export interface ARCSavedProfileDocument extends MongoDBDocument { accountID: string; forImportType: "api/arc-iidx" | "api/arc-sdvx"; } + +export type BatchManualScore = { + score: number; + lamp: Lamps[I]; + identifier: string; + comment?: string | null; + judgements?: Record; + hitMeta?: Partial; + scoreMeta?: Partial; +} & ( + | { + matchType: "tachiSongID" | "inGameID" | "songTitle"; + difficulty: Difficulties[I]; + } + | { + matchType: "ddrSongHash" | "bmsChartHash" | "uscChartHash"; + } +); + +export interface BatchManual { + meta: { + game: IDStringToGame[I]; + playtype: IDStringToPlaytype[I]; + service: string; + version?: GPTSupportedVersions[I]; + }; + body: BatchManualScore[]; +}