From f72005af771d826b4cbc6fb5e2f51280d6206653 Mon Sep 17 00:00:00 2001 From: sk1982 Date: Tue, 12 Mar 2024 06:45:48 -0400 Subject: [PATCH] db --- src/db.ts | 29 + src/types/db.d.ts | 3458 ++++++++++++++++++++++++++++++++ src/types/deep-is/index.ts | 3 + src/types/next-auth/index.d.ts | 16 + src/types/user.ts | 13 + 5 files changed, 3519 insertions(+) create mode 100644 src/db.ts create mode 100644 src/types/db.d.ts create mode 100644 src/types/deep-is/index.ts create mode 100644 src/types/next-auth/index.d.ts create mode 100644 src/types/user.ts diff --git a/src/db.ts b/src/db.ts new file mode 100644 index 0000000..4e84c8f --- /dev/null +++ b/src/db.ts @@ -0,0 +1,29 @@ +import { DB } from '@/types/db'; +import { createPool } from 'mysql2'; +import { Generated, Kysely, MysqlDialect } from 'kysely'; + +const createDb = () => { + if ((globalThis as any).db) + return (globalThis as any).db as Kysely; + + const dialect = new MysqlDialect({ + pool: createPool(process.env.DATABASE_URL as string) + }); + + if (process.env.NODE_ENV === 'production') + delete process.env.DATABASE_URL; + + return (globalThis as any).db = new Kysely({ dialect }); +} + + +type IdGenerated = C extends 'id' ? Generated : T; + +// mark all id fields as generated +export type GeneratedDB = { + [Table in keyof DB]: { + [Column in keyof DB[Table]]: IdGenerated + } +}; + +export const db = createDb(); diff --git a/src/types/db.d.ts b/src/types/db.d.ts new file mode 100644 index 0000000..ebd55f5 --- /dev/null +++ b/src/types/db.d.ts @@ -0,0 +1,3458 @@ +// Do not edit. File generated by kysely-codegen + +export interface ActaeonChuniStaticMapIcon { + id: number; + imagePath: string | null; + name: string | null; + sortName: string | null; +} + +export interface ActaeonChuniStaticNamePlate { + id: number; + imagePath: string | null; + name: string | null; + sortName: string | null; +} + +export interface ActaeonChuniStaticSystemVoice { + cuePath: string | null; + id: number; + imagePath: string | null; + name: string | null; + sortName: string | null; +} + +export interface ActaeonChuniStaticTrophies { + explainText: string | null; + id: number; + name: string | null; + rareType: number | null; +} + +export interface AimeCard { + access_code: string | null; + created_date: Date | null; + id: number; + is_banned: number | null; + is_locked: number | null; + last_login_date: Date | null; + user: number; +} + +export interface AimeUser { + created_date: Date | null; + email: string | null; + id: number; + last_login_date: Date | null; + password: string | null; + permissions: number | null; + suspend_expire_time: Date | null; + username: string | null; +} + +export interface Arcade { + city: string | null; + country: string | null; + country_id: number | null; + id: number; + ip: string | null; + name: string | null; + nickname: string | null; + region_id: number | null; + state: string | null; + timezone: string | null; +} + +export interface ArcadeOwner { + arcade: number; + permissions: number; + user: number; +} + +export interface ChuniItemCharacter { + assignIllust: number | null; + characterId: number | null; + exMaxLv: number | null; + friendshipExp: number | null; + id: number; + isNewMark: number | null; + isValid: number | null; + level: number | null; + param1: number | null; + param2: number | null; + playCount: number | null; + skillId: number | null; + user: number; +} + +export interface ChuniItemDuel { + duelId: number | null; + id: number; + isClear: number | null; + lastPlayDate: string | null; + param1: number | null; + param2: number | null; + param3: number | null; + param4: number | null; + point: number | null; + progress: number | null; + user: number; +} + +export interface ChuniItemFavorite { + favId: number; + favKind: number; + id: number; + user: number; + version: number; +} + +export interface ChuniItemGacha { + ceilingGachaCnt: number | null; + dailyGachaCnt: number | null; + dailyGachaDate: Date; + elevenGachaCnt: number | null; + fiveGachaCnt: number | null; + gachaId: number; + id: number; + totalGachaCnt: number | null; + user: number; +} + +export interface ChuniItemItem { + id: number; + isValid: number | null; + itemId: number | null; + itemKind: number | null; + stock: number | null; + user: number; +} + +export interface ChuniItemLoginBonus { + bonusCount: number; + id: number; + isFinished: number | null; + isWatched: number | null; + lastUpdateDate: Date | null; + presetId: number; + user: number; + version: number; +} + +export interface ChuniItemMap { + areaId: number | null; + eventId: number | null; + id: number; + isClear: number | null; + isValid: number | null; + mapId: number | null; + position: number | null; + rate: number | null; + routeNumber: number | null; + statusCount: number | null; + user: number; +} + +export interface ChuniItemMapArea { + id: number; + isClear: number | null; + isLocked: number | null; + mapAreaId: number | null; + position: number | null; + rate: number | null; + remainGridCount: number | null; + statusCount: number | null; + user: number; +} + +export interface ChuniItemMatching { + isFull: number; + matchingMemberInfoList: string; + restMSec: number; + roomId: number; + user: number; + version: number; +} + +export interface ChuniItemPrintDetail { + cardId: number; + clientId: string; + created: string | null; + id: number; + placeId: number; + printDate: Date; + printerSerialId: string; + printOption1: number | null; + printOption10: number | null; + printOption2: number | null; + printOption3: number | null; + printOption4: number | null; + printOption5: number | null; + printOption6: number | null; + printOption7: number | null; + printOption8: number | null; + printOption9: number | null; + serialId: string; + user: number; +} + +export interface ChuniItemPrintState { + cardId: number | null; + gachaId: number | null; + hasCompleted: number; + id: number; + limitDate: Date; + placeId: number | null; + user: number; +} + +export interface ChuniProfileActivity { + activityId: number | null; + id: number; + kind: number | null; + param1: number | null; + param2: number | null; + param3: number | null; + param4: number | null; + sortNumber: number | null; + user: number; +} + +export interface ChuniProfileCharge { + chargeId: number | null; + id: number; + param1: number | null; + param2: number | null; + paramDate: string | null; + purchaseDate: string | null; + stock: number | null; + user: number; + validDate: string | null; +} + +export interface ChuniProfileData { + acceptResCount: number | null; + avatarBack: number | null; + avatarFace: number | null; + avatarFront: number | null; + avatarHead: number | null; + avatarItem: number | null; + avatarPoint: number | null; + avatarSkin: number | null; + avatarWear: number | null; + battleRankId: number | null; + battleRankPoint: number | null; + battleRewardCount: number | null; + battleRewardIndex: number | null; + battleRewardStatus: number | null; + characterId: number | null; + charaIllustId: number | null; + classEmblemBase: number | null; + classEmblemMedal: number | null; + compatibleCmVersion: string | null; + eliteRankPoint: number | null; + eventWatchedDate: string | null; + exMapLoopCount: number | null; + exp: number | null; + ext1: number | null; + ext10: number | null; + ext2: number | null; + ext3: number | null; + ext4: number | null; + ext5: number | null; + ext6: number | null; + ext7: number | null; + ext8: number | null; + ext9: number | null; + extLong1: number | null; + extLong2: number | null; + extStr1: string | null; + extStr2: string | null; + firstDataVersion: string | null; + firstGameId: string | null; + firstPlayDate: string | null; + firstRomVersion: string | null; + firstTutorialCancelNum: number | null; + frameId: number | null; + friendCount: number | null; + highestRating: number | null; + id: number; + isMaimai: number | null; + isNetBattleHost: number | null; + isWebJoin: number | null; + lastAllNetId: number | null; + lastClientId: string | null; + lastCountryCode: string | null; + lastDataVersion: string | null; + lastGameId: string | null; + lastPlaceId: number | null; + lastPlaceName: string | null; + lastPlayDate: string | null; + lastRegionId: number | null; + lastRegionName: string | null; + lastRomVersion: string | null; + level: number | null; + mapIconId: number | null; + masterTutorialCancelNum: number | null; + medal: number | null; + multiPlayCount: number | null; + multiWinCount: number | null; + nameplateId: number | null; + netBattle1stCount: number | null; + netBattle2ndCount: number | null; + netBattle3rdCount: number | null; + netBattle4thCount: number | null; + netBattleConsecutiveWinCount: number | null; + netBattleCorrection: number | null; + netBattleEndState: number | null; + netBattleErrCnt: number | null; + netBattleHostErrCnt: number | null; + netBattleLoseCount: number | null; + netBattlePlayCount: number | null; + netBattleWinCount: number | null; + overPowerLowerRank: number | null; + overPowerPoint: number | null; + overPowerRate: number | null; + playCount: number | null; + playedTutorialBit: number | null; + playerRating: number | null; + point: number | null; + rankUpChallengeResults: string | null; + reincarnationNum: number | null; + requestResCount: number | null; + skillId: number | null; + stockedGridCount: number | null; + successResCount: number | null; + teamId: number | null; + totalAdvancedHighScore: number | null; + totalBasicHighScore: number | null; + totalExpertHighScore: number | null; + totalHiScore: number | null; + totalMapNum: number | null; + totalMasterHighScore: number | null; + totalPoint: number | null; + totalRepertoireCount: number | null; + totalUltimaHighScore: number | null; + trophyId: number | null; + user: number; + userName: string | null; + userNameEx: string | null; + version: number; + voiceId: number | null; + webLimitDate: string | null; +} + +export interface ChuniProfileDataEx { + compatibleCmVersion: string | null; + ext1: number | null; + ext10: number | null; + ext11: number | null; + ext12: number | null; + ext13: number | null; + ext14: number | null; + ext15: number | null; + ext16: number | null; + ext17: number | null; + ext18: number | null; + ext19: number | null; + ext2: number | null; + ext20: number | null; + ext3: number | null; + ext4: number | null; + ext5: number | null; + ext6: number | null; + ext7: number | null; + ext8: number | null; + ext9: number | null; + extLong1: number | null; + extLong2: number | null; + extLong3: number | null; + extLong4: number | null; + extLong5: number | null; + extStr1: string | null; + extStr2: string | null; + extStr3: string | null; + extStr4: string | null; + extStr5: string | null; + id: number; + mapIconId: number | null; + medal: number | null; + user: number; + version: number; + voiceId: number | null; +} + +export interface ChuniProfileEmoney { + emoneyBrand: number | null; + emoneyCredit: number | null; + ext1: number | null; + ext2: number | null; + ext3: number | null; + id: number; + type: number | null; + user: number; +} + +export interface ChuniProfileOption { + bgInfo: number | null; + categoryDetail: number | null; + ext1: number | null; + ext10: number | null; + ext2: number | null; + ext3: number | null; + ext4: number | null; + ext5: number | null; + ext6: number | null; + ext7: number | null; + ext8: number | null; + ext9: number | null; + fieldColor: number | null; + fieldWallPosition: number | null; + fieldWallPosition_120: number | null; + guideLine: number | null; + guideSound: number | null; + hardJudge: number | null; + headphone: number | null; + id: number; + judgeAppendSe: number | null; + judgeAttack: number | null; + judgeCritical: number | null; + judgeJustice: number | null; + judgePos: number | null; + judgeTimingOffset: number | null; + judgeTimingOffset_120: number | null; + matching: number | null; + mirrorFumen: number | null; + notesThickness: number | null; + optionSet: number | null; + playerLevel: number | null; + playTimingOffset: number | null; + playTimingOffset_120: number | null; + privacy: number | null; + rating: number | null; + resultVoiceShort: number | null; + selectMusicFilterLv: number | null; + sortMusicFilterLv: number | null; + sortMusicGenre: number | null; + soundEffect: number | null; + speed: number | null; + speed_120: number | null; + successAir: number | null; + successExTap: number | null; + successFlick: number | null; + successSkill: number | null; + successSlideHold: number | null; + successTap: number | null; + successTapTimbre: number | null; + trackSkip: number | null; + user: number; +} + +export interface ChuniProfileOptionEx { + ext1: number | null; + ext10: number | null; + ext11: number | null; + ext12: number | null; + ext13: number | null; + ext14: number | null; + ext15: number | null; + ext16: number | null; + ext17: number | null; + ext18: number | null; + ext19: number | null; + ext2: number | null; + ext20: number | null; + ext3: number | null; + ext4: number | null; + ext5: number | null; + ext6: number | null; + ext7: number | null; + ext8: number | null; + ext9: number | null; + id: number; + user: number; +} + +export interface ChuniProfileOverpower { + difficulty: number | null; + genreId: number | null; + id: number; + point: number | null; + rate: number | null; + user: number; +} + +export interface ChuniProfileRecentRating { + id: number; + recentRating: string | null; + user: number; +} + +export interface ChuniProfileRegion { + id: number; + playCount: number | null; + regionId: number | null; + user: number; +} + +export interface ChuniProfileTeam { + id: number; + teamName: string | null; + teamPoint: number | null; +} + +export interface ChuniScoreBest { + ext1: number | null; + fullChain: number | null; + id: number; + isAllJustice: number | null; + isFullCombo: number | null; + isLock: number | null; + isSuccess: number | null; + level: number | null; + maxChain: number | null; + maxComboCount: number | null; + missCount: number | null; + musicId: number | null; + playCount: number | null; + resAcceptCount: number | null; + resRequestCount: number | null; + resSuccessCount: number | null; + scoreMax: number | null; + scoreRank: number | null; + theoryCount: number | null; + user: number; +} + +export interface ChuniScoreCourse { + classId: number | null; + courseId: number | null; + eventId: number | null; + id: number; + isAllJustice: number | null; + isClear: number | null; + isFullCombo: number | null; + isSuccess: number | null; + lastPlayDate: string | null; + orderId: number | null; + param1: number | null; + param2: number | null; + param3: number | null; + param4: number | null; + playCount: number | null; + playerRating: number | null; + scoreMax: number | null; + scoreRank: number | null; + theoryCount: number | null; + user: number; +} + +export interface ChuniScorePlaylog { + characterId: number | null; + charaIllustId: number | null; + commonId: number | null; + customId: number | null; + eventId: number | null; + fullChainKind: number | null; + id: number; + isAllJustice: number | null; + isClear: number | null; + isContinue: number | null; + isFreeToPlay: number | null; + isFullCombo: number | null; + isMaimai: number | null; + isNewRecord: number | null; + judgeAttack: number | null; + judgeCritical: number | null; + judgeGuilty: number | null; + judgeHeaven: number | null; + judgeJustice: number | null; + level: number | null; + machineType: number | null; + maxChain: number | null; + maxCombo: number | null; + musicId: number | null; + orderId: number | null; + placeId: number | null; + placeName: string | null; + playDate: string | null; + playedCustom1: number | null; + playedCustom2: number | null; + playedCustom3: number | null; + playedMusicLevel1: number | null; + playedMusicLevel2: number | null; + playedMusicLevel3: number | null; + playedUserId1: number | null; + playedUserId2: number | null; + playedUserId3: number | null; + playedUserName1: string | null; + playedUserName2: string | null; + playedUserName3: string | null; + playerRating: number | null; + playKind: number | null; + rank: number | null; + rateAir: number | null; + rateFlick: number | null; + rateHold: number | null; + rateSlide: number | null; + rateTap: number | null; + regionId: number | null; + romVersion: string | null; + score: number | null; + skillEffect: number | null; + skillId: number | null; + skillLevel: number | null; + sortNumber: number | null; + ticketId: number | null; + track: number | null; + user: number; + userPlayDate: string | null; +} + +export interface ChuniStaticAvatar { + avatarAccessoryId: number | null; + category: number | null; + iconPath: string | null; + id: number; + name: string | null; + texturePath: string | null; + version: number; +} + +export interface ChuniStaticCards { + cardId: number; + chain: number; + charaId: number; + charaName: string; + combo: number; + difType: number; + id: number; + labelType: number; + miss: number; + presentName: string; + rarity: number | null; + skillName: string; + version: number; +} + +export interface ChuniStaticCharge { + chargeId: number | null; + consumeType: number | null; + enabled: number | null; + expirationDays: number | null; + id: number; + name: string | null; + sellingAppeal: number | null; + version: number; +} + +export interface ChuniStaticEvents { + enabled: number | null; + eventId: number | null; + id: number; + name: string | null; + startDate: Date | null; + type: number | null; + version: number; +} + +export interface ChuniStaticGachaCards { + cardId: number; + gachaId: number; + id: number; + isPickup: number | null; + rarity: number; + weight: number | null; +} + +export interface ChuniStaticGachas { + ceilingCnt: number | null; + changeRateCnt1: number | null; + changeRateCnt2: number | null; + endDate: Date | null; + gachaId: number; + gachaName: string; + id: number; + isCeiling: number | null; + kind: number; + noticeEndDate: Date | null; + noticeStartDate: Date | null; + startDate: Date | null; + type: number; + version: number; +} + +export interface ChuniStaticLoginBonus { + id: number; + itemNum: number; + loginBonusCategoryType: number; + loginBonusId: number; + loginBonusName: string; + needLoginDayCount: number; + presentId: number; + presentName: string; + presetId: number; + version: number; +} + +export interface ChuniStaticLoginBonusPreset { + isEnabled: number | null; + presetId: number; + presetName: string; + version: number; +} + +export interface ChuniStaticMusic { + artist: string | null; + chartId: number | null; + genre: string | null; + id: number; + jacketPath: string | null; + level: number | null; + songId: number | null; + title: string | null; + version: number; + worldsEndTag: string | null; +} + +export interface CxbPlaylog { + chart_id: number | null; + clear: number | null; + combo: number | null; + cool: number | null; + date_scored: Date | null; + fail: number | null; + fast: number | null; + fast2: number | null; + flawless: number | null; + id: number; + score: number | null; + slow: number | null; + slow2: number | null; + song_mcode: string | null; + super: number | null; + user: number; +} + +export interface CxbProfile { + data: string; + id: number; + index: number; + user: number; + version: number; +} + +export interface CxbRanking { + clear: number | null; + id: number; + rev_id: number | null; + score: number | null; + song_id: number | null; + user: number; +} + +export interface CxbRevEnergy { + energy: number; + id: number; + user: number; +} + +export interface CxbScore { + data: string | null; + game_version: number | null; + id: number; + song_index: number | null; + song_mcode: string | null; + user: number; +} + +export interface CxbStaticMusic { + artist: string | null; + category: string | null; + chartId: number | null; + id: number; + index: number | null; + level: number | null; + songId: string | null; + title: string | null; + version: number; +} + +export interface DivaPlaylog { + atn_pnt: number | null; + clr_kind: number | null; + cool: number | null; + date_scored: Date | null; + difficulty: number | null; + edition: number | null; + fine: number | null; + id: number; + max_combo: number | null; + pv_id: number | null; + sad: number | null; + safe: number | null; + score: number | null; + sort_kind: number | null; + user: number; + version: number | null; + worst: number | null; +} + +export interface DivaProfile { + btn_se_eqp: number; + btn_se_vol: number; + btn_se_vol2: number; + chn_sld_se_eqp: number; + cnp_cid: number; + cnp_rr: number; + cnp_sp: string; + cnp_val: number; + dsp_clr_brdr: number; + dsp_clr_sts: number; + dsp_intrm_rnk: number; + hp_vol: number; + id: number; + lv_efct_id: number; + lv_num: number; + lv_plt_id: number; + lv_pnt: number; + lv_str: string; + my_qst_id: string | null; + my_qst_sts: string | null; + nxt_dffclty: number; + nxt_edtn: number; + nxt_pv_id: number; + passwd: string; + passwd_stat: number; + player_name: string; + rgo_sts: number; + skn_eqp: number; + sld_se_eqp: number; + sldr_se_vol2: number; + sldr_tch_se_eqp: number; + sort_kind: number; + use_mdl_pri: number; + use_pv_btn_se_eqp: number; + use_pv_chn_sld_se_eqp: number; + use_pv_mdl_eqp: number; + use_pv_skn_eqp: number; + use_pv_sld_se_eqp: number; + use_pv_sldr_tch_se_eqp: number; + user: number; + vcld_pts: number; + version: number; +} + +export interface DivaProfileCustomizeItem { + id: number; + item_id: number; + user: number; + version: number; +} + +export interface DivaProfileModule { + id: number; + module_id: number; + user: number; + version: number; +} + +export interface DivaProfilePvCustomize { + btn_se: number | null; + c_itm_eqp_ary: string | null; + chsld_se: number | null; + id: number; + mdl_eqp_ary: string | null; + ms_itm_flg_ary: string | null; + pv_id: number; + skin: number | null; + sld_se: number | null; + sldtch_se: number | null; + user: number; + version: number; +} + +export interface DivaProfileShop { + c_itm_eqp_ary: string | null; + id: number; + mdl_eqp_ary: string | null; + ms_itm_flg_ary: string | null; + user: number; + version: number; +} + +export interface DivaScore { + atn_pnt: number | null; + clr_kind: number | null; + cool: number | null; + difficulty: number | null; + edition: number | null; + fine: number | null; + id: number; + max_combo: number | null; + pv_id: number | null; + sad: number | null; + safe: number | null; + score: number | null; + sort_kind: number | null; + user: number; + version: number | null; + worst: number | null; +} + +export interface DivaStaticItems { + enabled: number | null; + end_date: string | null; + id: number; + itemId: number | null; + name: string | null; + points: number | null; + start_date: string | null; + type: number | null; + unknown_0: number | null; + version: number; +} + +export interface DivaStaticMusic { + bg_music: string | null; + bpm: number | null; + chartId: number | null; + date: string | null; + id: number; + level: number | null; + lyrics: string | null; + pv_illustrator: string | null; + songId: number | null; + title: string | null; + version: number; + vocaloid_arranger: string | null; +} + +export interface DivaStaticQuests { + end_datetime: string | null; + id: number; + kind: number | null; + name: string | null; + quest_enable: number | null; + quest_order: number | null; + questId: number | null; + start_datetime: string | null; + unknown_0: number | null; + unknown_1: number | null; + unknown_2: number | null; + version: number; +} + +export interface DivaStaticShop { + enabled: number | null; + end_date: string | null; + id: number; + name: string | null; + points: number | null; + shopId: number | null; + start_date: string | null; + type: number | null; + unknown_0: number | null; + version: number; +} + +export interface EventLog { + details: string; + id: number; + message: string; + severity: number; + system: string; + type: string; + when_logged: Date; +} + +export interface IdacProfile { + asset_version: number | null; + aura_color_id: number | null; + aura_id: number | null; + aura_line_id: number | null; + avatar_point: number | null; + bgm_id: number | null; + bothwin_count: number | null; + bothwin_score: number | null; + cash: number | null; + country: number | null; + create_date: Date | null; + daily_play: number | null; + day_play: number | null; + dressup_point: number | null; + factory_disp: number | null; + id: number; + keyholder_id: number | null; + last_play_date: Date | null; + mileage: number | null; + mytitle_efffect_id: number | null; + mytitle_id: number | null; + name_change_category: number | null; + papercup_id: number | null; + stamp_key_assign_0: number | null; + stamp_key_assign_1: number | null; + stamp_key_assign_2: number | null; + stamp_key_assign_3: number | null; + start_menu_bg_id: number | null; + sticker_effect_id: number | null; + sticker_id: number | null; + store: number | null; + subcard_count: number | null; + tachometer_id: number | null; + team_id: number | null; + total_cash: number | null; + total_play: number | null; + use_car_id: number | null; + use_style_car_id: number | null; + user: number; + username: string | null; + version: number; + vs_history: number | null; +} + +export interface IdacProfileAvatar { + behind: number | null; + bg: number | null; + body: number | null; + body_accessory: number | null; + effect: number | null; + eye: number | null; + face: number | null; + face_accessory: number | null; + glasses: number | null; + hair: number | null; + id: number; + mouth: number | null; + sex: number | null; + special: number | null; + user: number; +} + +export interface IdacProfileConfig { + battle_onomatope_display: number | null; + bgm_volume: number | null; + config_id: number | null; + cornering_guide: number | null; + default_viewpoint: number | null; + favorite_bgm: number | null; + ghost: number | null; + id: number; + line_guide: number | null; + master_volume: number | null; + minimap: number | null; + race_exit: number | null; + result_skip: number | null; + se_volume: number | null; + stamp_select_skip: number | null; + steering_intensity: number | null; + store_battle_policy: number | null; + transmission_type: number | null; + user: number; +} + +export interface IdacProfileRank { + grade: number | null; + grade_exp: number | null; + grade_reward_dist: number | null; + id: number; + is_last_max: number | null; + max_attained_online_battle_rank: number | null; + max_attained_pride_point: number | null; + online_battle_rank: number | null; + online_battle_rank_exp: number | null; + online_battle_rank_reward_dist: number | null; + pride_group_id: number | null; + pride_point: number | null; + store_battle_rank: number | null; + store_battle_rank_exp: number | null; + store_battle_rank_reward_dist: number | null; + story_rank: number | null; + story_rank_exp: number | null; + story_rank_reward_dist: number | null; + theory_exp: number | null; + theory_rank: number | null; + theory_rank_reward_dist: number | null; + time_trial_rank: number | null; + time_trial_rank_exp: number | null; + time_trial_rank_reward_dist: number | null; + user: number; + version: number; +} + +export interface IdacProfileStock { + aura_color_list: string | null; + aura_color_new_list: string | null; + aura_line_list: string | null; + aura_line_new_list: string | null; + aura_list: string | null; + aura_new_list: string | null; + avatar_behind_list: string | null; + avatar_behind_new_list: string | null; + avatar_bg_list: string | null; + avatar_bg_new_list: string | null; + avatar_body_accessory_list: string | null; + avatar_body_accessory_new_list: string | null; + avatar_body_list: string | null; + avatar_body_new_list: string | null; + avatar_effect_list: string | null; + avatar_effect_new_list: string | null; + avatar_eye_list: string | null; + avatar_eye_new_list: string | null; + avatar_face_accessory_list: string | null; + avatar_face_accessory_new_list: string | null; + avatar_face_list: string | null; + avatar_face_new_list: string | null; + avatar_glasses_list: string | null; + avatar_glasses_new_list: string | null; + avatar_hair_list: string | null; + avatar_hair_new_list: string | null; + avatar_mouth_list: string | null; + avatar_mouth_new_list: string | null; + avatar_special_list: string | null; + avatar_special_new_list: string | null; + bgm_list: string | null; + bgm_new_list: string | null; + dx_color_list: string | null; + dx_color_new_list: string | null; + id: number; + keyholder_list: string | null; + keyholder_new_list: string | null; + mytitle_list: string | null; + mytitle_new_list: string | null; + papercup_list: string | null; + papercup_new_list: string | null; + stamp_list: string | null; + stamp_new_list: string | null; + start_menu_bg_list: string | null; + start_menu_bg_new_list: string | null; + tachometer_list: string | null; + tachometer_new_list: string | null; + under_neon_list: string | null; + user: number; + version: number; +} + +export interface IdacProfileTheory { + general_flag: number | null; + id: number; + partner_id: number | null; + partner_progress: number | null; + partner_progress_score: number | null; + play_count: number | null; + play_count_multi: number | null; + practice_start_rank: number | null; + user: number; + version: number; + vs_history: number | null; + vs_history_multi: number | null; + win_count: number | null; + win_count_multi: number | null; +} + +export interface IdacUserCar { + bureau: number | null; + car_flag: number | null; + car_id: number | null; + car_mileage: number | null; + color: number | null; + color_stock_list: string | null; + color_stock_new_list: string | null; + equip_parts_count: number | null; + id: number; + infinity_tune: number | null; + kana: number | null; + l_no: number | null; + net_vs_use_count: number | null; + online_vs_win: number | null; + parts_list: string | null; + parts_set_equip_list: string | null; + parts_stock_list: string | null; + parts_stock_new_list: string | null; + pickup_seq: number | null; + purchase_seq: number | null; + s_no: number | null; + story_use_count: number | null; + style_car_id: number | null; + theory_use_count: number | null; + timetrial_use_count: number | null; + total_car_parts_count: number | null; + tune_level: number | null; + tune_parts: number | null; + tune_point: number | null; + use_count: number | null; + user: number | null; + version: number; + vs_use_count: number | null; +} + +export interface IdacUserChallenge { + advantage: number | null; + cleared_difficulty: number | null; + course_day: number | null; + course_id: number | null; + eval_id: number | null; + id: number; + last_play_course_id: number | null; + nearby_advantage_rate: number | null; + play_count: number | null; + play_difficulty: number | null; + record: number | null; + result: number | null; + sec1_advantage_avg: number | null; + sec2_advantage_avg: number | null; + sec3_advantage_avg: number | null; + sec4_advantage_avg: number | null; + story_type: number | null; + style_car_id: number | null; + user: number | null; + vs_type: number | null; + weak_difficulty: number | null; + win_flag: number | null; +} + +export interface IdacUserCourse { + course_id: number | null; + id: number; + run_counts: number | null; + skill_level_exp: number | null; + user: number | null; +} + +export interface IdacUserStamp { + add_bonus_daily_flag_1: number | null; + add_bonus_daily_flag_2: number | null; + add_bonus_daily_flag_3: number | null; + collaboration_bonus: number | null; + create_date_daily: Date | null; + create_date_weekly: Date | null; + daily_bonus: number | null; + day_total_bonus: number | null; + fasteststreetlegaltheory_bonus: number | null; + id: number; + m_stamp_event_id: number | null; + online_battle_bonus: number | null; + select_flag: number | null; + stamp_masu: number | null; + store_battle_bonus: number | null; + story_bonus: number | null; + timetrial_bonus: number | null; + total_bonus: number | null; + user: number; + weekday_bonus: number | null; + weekend_bonus: number | null; + weekly_bonus: number | null; +} + +export interface IdacUserStory { + chapter: number | null; + id: number; + loop_count: number | null; + story_type: number | null; + user: number | null; +} + +export interface IdacUserStoryEpisode { + chapter: number | null; + episode: number | null; + id: number; + play_status: number | null; + user: number | null; +} + +export interface IdacUserStoryEpisodeDifficulty { + clear_count: number | null; + difficulty: number | null; + episode: number | null; + id: number; + play_count: number | null; + play_score: number | null; + play_status: number | null; + user: number | null; +} + +export interface IdacUserTheoryCourse { + course_id: number | null; + id: number; + max_victory_grade: number | null; + played_powerhouse_lv: number | null; + powerhouse_exp: number | null; + powerhouse_lv: number | null; + run_count: number | null; + update_dt: Date | null; + user: number | null; +} + +export interface IdacUserTheoryPartner { + fellowship_exp: number | null; + fellowship_lv: number | null; + id: number; + partner_id: number | null; + user: number | null; +} + +export interface IdacUserTheoryRunning { + attack: number | null; + course_id: number | null; + defense: number | null; + id: number; + runaway: number | null; + safety: number | null; + trick_flag: number | null; + user: number | null; +} + +export interface IdacUserTicket { + id: number; + ticket_cnt: number | null; + ticket_id: number | null; + user: number | null; +} + +export interface IdacUserTimeTrial { + course_id: number | null; + eval_id: number | null; + goal_time: number | null; + id: number; + mission: number | null; + play_dt: Date | null; + section_time_1: number | null; + section_time_2: number | null; + section_time_3: number | null; + section_time_4: number | null; + style_car_id: number | null; + user: number | null; + version: number; +} + +export interface IdacUserTimetrialEvent { + id: number; + point: number | null; + timetrial_event_id: number | null; + user: number; +} + +export interface IdacUserVsInfo { + advantage_1: number | null; + advantage_2: number | null; + advantage_3: number | null; + advantage_4: number | null; + boost_flag: number | null; + break_count: number | null; + break_penalty_flag: number | null; + course_day: number | null; + course_id: number | null; + group_key: string | null; + id: number; + matching_success_sec: number | null; + players_num: number | null; + select_course_day: number | null; + select_course_id: number | null; + select_course_random: number | null; + style_car_id: number | null; + user: number | null; + vs_history: number | null; + win_flg: number | null; + winning: number | null; +} + +export interface Machine { + arcade: number; + board: string | null; + country: string | null; + data: string | null; + game: string | null; + id: number; + is_cab: number | null; + memo: string | null; + ota_enable: number | null; + serial: string; + timezone: string | null; +} + +export interface Mai2ItemCard { + cardId: number | null; + cardTypeId: number | null; + charaId: number | null; + endDate: Date | null; + id: number; + mapId: number | null; + startDate: Date | null; + user: number; +} + +export interface Mai2ItemCharacter { + awakening: number | null; + characterId: number | null; + id: number; + level: number | null; + point: number | null; + useCount: number | null; + user: number; +} + +export interface Mai2ItemCharge { + chargeId: number | null; + id: number; + purchaseDate: string | null; + stock: number | null; + user: number; + validDate: string | null; +} + +export interface Mai2ItemFavorite { + id: number; + itemIdList: string | null; + itemKind: number | null; + user: number; +} + +export interface Mai2ItemFriendSeasonRanking { + id: number; + point: number | null; + rank: number | null; + recordDate: Date | null; + rewardGet: number | null; + seasonId: number | null; + user: number; + userName: string | null; +} + +export interface Mai2ItemItem { + id: number; + isValid: number | null; + itemId: number | null; + itemKind: number | null; + stock: number | null; + user: number; +} + +export interface Mai2ItemLoginBonus { + bonusId: number | null; + id: number; + isComplete: number | null; + isCurrent: number | null; + point: number | null; + user: number; +} + +export interface Mai2ItemMap { + distance: number | null; + id: number; + isClear: number | null; + isComplete: number | null; + isLock: number | null; + mapId: number | null; + user: number; +} + +export interface Mai2ItemPrintDetail { + cardRomVersion: number | null; + clientId: string | null; + created: string | null; + id: number; + isHolograph: number | null; + orderId: number | null; + placeId: number | null; + printDate: Date | null; + printerSerialId: string | null; + printNumber: number | null; + printOption1: number | null; + printOption10: number | null; + printOption2: number | null; + printOption3: number | null; + printOption4: number | null; + printOption5: number | null; + printOption6: number | null; + printOption7: number | null; + printOption8: number | null; + printOption9: number | null; + serialId: string | null; + user: number; +} + +export interface Mai2Playlog { + achievement: number | null; + afterDeluxRating: number | null; + afterGrade: number | null; + afterGradeRank: number | null; + afterRating: number | null; + beforeDeluxRating: number | null; + beforeGrade: number | null; + beforeRating: number | null; + breakCriticalPerfect: number | null; + breakGood: number | null; + breakGreat: number | null; + breakMiss: number | null; + breakPerfect: number | null; + characterAwakening1: number | null; + characterAwakening2: number | null; + characterAwakening3: number | null; + characterAwakening4: number | null; + characterAwakening5: number | null; + characterId1: number | null; + characterId2: number | null; + characterId3: number | null; + characterId4: number | null; + characterId5: number | null; + characterLevel1: number | null; + characterLevel2: number | null; + characterLevel3: number | null; + characterLevel4: number | null; + characterLevel5: number | null; + comboStatus: number | null; + deluxscore: number | null; + extBool1: number | null; + extNum1: number | null; + extNum2: number | null; + extNum4: number | null; + fastCount: number | null; + holdCriticalPerfect: number | null; + holdGood: number | null; + holdGreat: number | null; + holdMiss: number | null; + holdPerfect: number | null; + id: number; + isAchieveNewRecord: number | null; + isBreak: number | null; + isClear: number | null; + isCriticalDisp: number | null; + isDeluxscoreNewRecord: number | null; + isEventMode: number | null; + isFastLateDisp: number | null; + isFreedomMode: number | null; + isHold: number | null; + isNewFree: number | null; + isPlayTutorial: number | null; + isSlide: number | null; + isTap: number | null; + isTouch: number | null; + lateCount: number | null; + level: number | null; + loginDate: number | null; + maxCombo: number | null; + maxSync: number | null; + musicId: number | null; + orderId: number | null; + placeId: number | null; + placeName: string | null; + playDate: string | null; + playedMusicLevel1: number | null; + playedMusicLevel2: number | null; + playedMusicLevel3: number | null; + playedUserId1: number | null; + playedUserId2: number | null; + playedUserId3: number | null; + playedUserName1: string | null; + playedUserName2: string | null; + playedUserName3: string | null; + playerNum: number | null; + playlogId: number | null; + playMode: number | null; + scoreRank: number | null; + slideCriticalPerfect: number | null; + slideGood: number | null; + slideGreat: number | null; + slideMiss: number | null; + slidePerfect: number | null; + syncStatus: number | null; + tapCriticalPerfect: number | null; + tapGood: number | null; + tapGreat: number | null; + tapMiss: number | null; + tapPerfect: number | null; + totalCombo: number | null; + totalSync: number | null; + touchCriticalPerfect: number | null; + touchGood: number | null; + touchGreat: number | null; + touchMiss: number | null; + touchPerfect: number | null; + trackNo: number | null; + trialPlayAchievement: number | null; + type: number | null; + user: number; + userId: number | null; + userPlayDate: string | null; + version: number | null; + vsMode: number | null; + vsRank: number | null; + vsStatus: number | null; + vsUserAchievement: number | null; + vsUserGradeRank: number | null; + vsUserName: string | null; + vsUserRating: number | null; +} + +export interface Mai2Playlog2p { + id: number; + placeId: number | null; + regionId: number | null; + user: number; + user2pPlaylogDetailList: string | null; + userId1: number | null; + userId2: number | null; + userName1: string | null; + userName2: string | null; +} + +export interface Mai2ProfileActivity { + activityId: number | null; + id: number; + kind: number | null; + param1: number | null; + param2: number | null; + param3: number | null; + param4: number | null; + sortNumber: number | null; + user: number; +} + +export interface Mai2ProfileConsecLogins { + id: number; + logins: number | null; + user: number; + version: number; +} + +export interface Mai2ProfileDetail { + banState: number | null; + charaLockSlot: string | null; + charaSlot: string | null; + classRank: number | null; + comboCount: number | null; + compatibleCmVersion: string | null; + contentBit: number | null; + courseRank: number | null; + currentPlayCount: number | null; + dailyBonusDate: string | null; + dailyCourseBonusDate: string | null; + dateTime: number | null; + eventWatchedDate: string | null; + firstDataVersion: string | null; + firstGameId: string | null; + firstPlayDate: string | null; + firstRomVersion: string | null; + frameId: number | null; + gradeRank: number | null; + gradeRating: number | null; + helpCount: number | null; + highestRating: number | null; + iconId: number | null; + id: number; + isNetMember: number | null; + lastAllNetId: number | null; + lastClientId: string | null; + lastCountCourse: number | null; + lastCountryCode: string | null; + lastDataVersion: string | null; + lastGameId: string | null; + lastLoginDate: string | null; + lastPairLoginDate: string | null; + lastPlaceId: number | null; + lastPlaceName: string | null; + lastPlayCredit: number | null; + lastPlayDate: string | null; + lastPlayMode: number | null; + lastRegionId: number | null; + lastRegionName: string | null; + lastRomVersion: string | null; + lastSelectCourse: number | null; + lastSelectEMoney: number | null; + lastSelectTicket: number | null; + lastTrialPlayDate: string | null; + mapStock: number | null; + musicRating: number | null; + partnerId: number | null; + plateId: number | null; + playCount: number | null; + playerNewRating: number | null; + playerOldRating: number | null; + playerRating: number | null; + playSyncCount: number | null; + playVsCount: number | null; + renameCredit: number | null; + selectMapId: number | null; + titleId: number | null; + totalAchievement: number | null; + totalAdvancedAchievement: number | null; + totalAdvancedDeluxscore: number | null; + totalAdvancedSync: number | null; + totalAwake: number | null; + totalBasicAchievement: number | null; + totalBasicDeluxscore: number | null; + totalBasicSync: number | null; + totalDeluxscore: number | null; + totalExpertAchievement: number | null; + totalExpertDeluxscore: number | null; + totalExpertSync: number | null; + totalMasterAchievement: number | null; + totalMasterDeluxscore: number | null; + totalMasterSync: number | null; + totalReMasterAchievement: number | null; + totalReMasterDeluxscore: number | null; + totalReMasterSync: number | null; + totalSync: number | null; + user: number; + userName: string | null; + version: number; + winCount: number | null; +} + +export interface Mai2ProfileExtend { + categoryIndex: number | null; + encountMapNpcList: string | null; + extendContentBit: number | null; + extraFlag: number | null; + id: number; + isGotoCodeRead: number | null; + isPhotoAgree: number | null; + musicIndex: number | null; + playStatusSetting: number | null; + selectDifficultyId: number | null; + selectedCardList: string | null; + selectMusicId: number | null; + selectResultDetails: number | null; + selectResultScoreViewType: number | null; + selectScoreType: number | null; + sortCategorySetting: number | null; + sortMusicSetting: number | null; + user: number; + version: number; +} + +export interface Mai2ProfileGhost { + achievement: number | null; + classRank: number | null; + classValue: number | null; + courseRank: number | null; + difficulty: number | null; + iconId: number | null; + id: number; + musicId: number | null; + name: string | null; + plateId: number | null; + playDatetime: string | null; + rate: number | null; + regionCode: number | null; + resultBitList: string | null; + resultNum: number | null; + shopId: number | null; + titleId: number | null; + typeId: number | null; + udemaeRate: number | null; + user: number; + version: number | null; + version_int: number; +} + +export interface Mai2ProfileOption { + adjustTiming: number | null; + ansVolume: number | null; + breakSe: number | null; + breakSlideVolume: number | null; + breakVolume: number | null; + brightness: number | null; + criticalSe: number | null; + damageSeVolume: number | null; + dispBar: number | null; + dispCenter: number | null; + dispChain: number | null; + dispJudge: number | null; + dispJudgePos: number | null; + dispJudgeTouchPos: number | null; + dispRate: number | null; + exSe: number | null; + exVolume: number | null; + headPhoneVolume: number | null; + holdDesign: number | null; + id: number; + judgeTiming: number | null; + matching: number | null; + mirrorMode: number | null; + noteSize: number | null; + noteSpeed: number | null; + optionKind: number | null; + outFrameType: number | null; + outlineDesign: number | null; + selectMusicId: number | null; + slideDesign: number | null; + slideSe: number | null; + slideSize: number | null; + slideSpeed: number | null; + slideVolume: number | null; + sortMusic: number | null; + sortTab: number | null; + starRotate: number | null; + starType: number | null; + submonitorAchive: number | null; + submonitorAnimation: number | null; + submonitorAppeal: number | null; + tapDesign: number | null; + tapHoldVolume: number | null; + tapSe: number | null; + touchEffect: number | null; + touchHoldVolume: number | null; + touchSize: number | null; + touchSpeed: number | null; + touchVolume: number | null; + trackSkip: number | null; + user: number; + version: number; +} + +export interface Mai2ProfileRating { + id: number; + newRatingList: string | null; + nextNewRatingList: string | null; + nextRatingList: string | null; + rating: number | null; + ratingList: string | null; + udemae: string | null; + user: number; + version: number; +} + +export interface Mai2ProfileRegion { + created: string | null; + id: number; + playCount: number | null; + regionId: number | null; + user: number; +} + +export interface Mai2ScoreBest { + achievement: number | null; + comboStatus: number | null; + deluxscoreMax: number | null; + extNum1: number | null; + id: number; + level: number | null; + musicId: number | null; + playCount: number | null; + scoreRank: number | null; + syncStatus: number | null; + user: number; +} + +export interface Mai2ScoreCourse { + bestAchievement: number | null; + bestAchievementDate: string | null; + bestDeluxscore: number | null; + bestDeluxscoreDate: string | null; + clearDate: string | null; + courseId: number | null; + id: number; + isLastClear: number | null; + lastPlayDate: string | null; + playCount: number | null; + totalAchievement: number | null; + totalDeluxscore: number | null; + totalRestlife: number | null; + user: number; +} + +export interface Mai2StaticCards { + cardId: number; + cardName: string; + enabled: number | null; + endDate: Date | null; + id: number; + noticeEndDate: Date | null; + noticeStartDate: Date | null; + startDate: Date | null; + version: number; +} + +export interface Mai2StaticEvent { + enabled: number | null; + eventId: number | null; + id: number; + name: string | null; + startDate: Date | null; + type: number | null; + version: number; +} + +export interface Mai2StaticMusic { + addedVersion: string | null; + artist: string | null; + bpm: number | null; + chartId: number | null; + difficulty: number | null; + genre: string | null; + id: number; + noteDesigner: string | null; + songId: number | null; + title: string | null; + version: number; +} + +export interface Mai2StaticTicket { + enabled: number | null; + id: number; + kind: number | null; + name: string | null; + price: number | null; + ticketId: number | null; + version: number; +} + +export interface MaimaiPlaylog { + achievement: number | null; + breakBad: number | null; + breakGood: number | null; + breakGreat: number | null; + breakPerfect: number | null; + breakScore: number | null; + challengeLife: number | null; + challengeRemain: number | null; + country: string | null; + eventId: number | null; + fullCombo: number | null; + gameMode: number | null; + holdBad: number | null; + holdGood: number | null; + holdGreat: number | null; + holdPerfect: number | null; + holdScore: number | null; + id: number; + isAllPerfect: number | null; + isAllPerfectPlus: number | null; + isChallengeTrack: number | null; + isFreeToPlay: number | null; + isHighScore: number | null; + isTrackSkip: number | null; + judgeStyle: number | null; + level: number | null; + maxCombo: number | null; + maxFever: number | null; + musicId: number | null; + orderId: number | null; + placeId: number | null; + placeName: string | null; + playDate: string | null; + playedMusicLevel1: number | null; + playedMusicLevel2: number | null; + playedMusicLevel3: number | null; + playedUserId1: number | null; + playedUserId2: number | null; + playedUserId3: number | null; + playedUserName1: string | null; + playedUserName2: string | null; + playedUserName3: string | null; + playerRating: number | null; + regionId: number | null; + rivalNum: number | null; + score: number | null; + slideBad: number | null; + slideGood: number | null; + slideGreat: number | null; + slidePerfect: number | null; + slideScore: number | null; + sortNumber: number | null; + syncRate: number | null; + tapBad: number | null; + tapGood: number | null; + tapGreat: number | null; + tapPerfect: number | null; + tapScore: number | null; + track: number | null; + user: number; + userPlayDate: string | null; + version: number | null; + vsWin: number | null; +} + +export interface MaimaiProfileBoss { + emblemFlagList: number | null; + id: number; + pandoraFlagList0: number | null; + pandoraFlagList1: number | null; + pandoraFlagList2: number | null; + pandoraFlagList3: number | null; + pandoraFlagList4: number | null; + pandoraFlagList5: number | null; + pandoraFlagList6: number | null; + user: number; +} + +export interface MaimaiProfileDetail { + challengeTrackPhase: number | null; + comboCount: number | null; + eventPoint: number | null; + eventWatchedDate: string | null; + feverCount: number | null; + firstPlayBits: number | null; + frameId: number | null; + helpCount: number | null; + highestRating: number | null; + iconId: number | null; + id: number; + lastClientId: string | null; + lastCountryCode: string | null; + lastDataVersion: number | null; + lastLoginBonusDay: number | null; + lastPlaceId: number | null; + lastPlaceName: string | null; + lastPlayDate: string | null; + lastRegionId: number | null; + lastRegionName: string | null; + lastSurvivalBonusDay: number | null; + loginBonusLv: number | null; + nameplateId: number | null; + playCount: number | null; + playerRating: number | null; + playSyncCount: number | null; + playVsCount: number | null; + point: number | null; + rankAuthTailId: number | null; + totalAdvancedHighScore: number | null; + totalAdvancedSync: number | null; + totalBasicHighScore: number | null; + totalBasicSync: number | null; + totalEasyHighScore: number | null; + totalEasySync: number | null; + totalExpertHighScore: number | null; + totalExpertSync: number | null; + totalHighSync: number | null; + totalHiScore: number | null; + totalLv: number | null; + totalMasterHighScore: number | null; + totalMasterSync: number | null; + totalPoint: number | null; + totalReMasterHighScore: number | null; + totalReMasterSync: number | null; + trophyId: number | null; + user: number; + userName: string | null; + version: number; + webLimitDate: string | null; + winCount: number | null; +} + +export interface MaimaiProfileGradeStatus { + gradeLevel: number | null; + gradeMaxId: number | null; + gradeSubLevel: number | null; + gradeVersion: number | null; + id: number; + user: number; +} + +export interface MaimaiProfileOption { + adjustTiming: number | null; + ansVol: number | null; + appealFlame: number | null; + bgInfo: number | null; + breakSe: number | null; + breakSeVol: number | null; + brightness: number | null; + dispJudge: number | null; + dispTiming: number | null; + dmgVol: number | null; + filterAllPerfect: number | null; + filterDifficulty: number | null; + filterFullCombo: number | null; + filterFullSync: number | null; + filterGenre: number | null; + filterLevel: number | null; + filterMaxFever: number | null; + filterRank: number | null; + filterRec: number | null; + filterReMaster: number | null; + filterVersion: number | null; + finalSelectCategory: number | null; + finalSelectId: number | null; + guideSpeed: number | null; + hardJudge: number | null; + id: number; + isFeverDisp: number | null; + isStarRot: number | null; + isTagJump: number | null; + isUpperDisp: number | null; + judgePos: number | null; + mirrorMode: number | null; + noteVol: number | null; + optionMode: number | null; + ratingGuard: number | null; + selectChara: number | null; + simpleOptionParam: number | null; + slideSe: number | null; + slideSeVol: number | null; + sortType: number | null; + soudEffect: number | null; + timingPos: number | null; + trackSkip: number | null; + user: number; + version: number; +} + +export interface MaimaiProfileRecentRating { + id: number; + user: number; + userRecentRatingList: string | null; +} + +export interface MaimaiProfileWebOption { + dispHomeRanker: number | null; + dispJudgeStyle: number | null; + dispRank: number | null; + dispRate: number | null; + dispTotalLv: number | null; + id: number; + isNetMember: number | null; + user: number; + version: number; +} + +export interface MaimaiScoreBest { + achievement: number | null; + fullCombo: number | null; + id: number; + isAllPerfect: number | null; + isAllPerfectPlus: number | null; + level: number | null; + maxFever: number | null; + musicId: number | null; + playCount: number | null; + scoreMax: number | null; + syncRateMax: number | null; + user: number; +} + +export interface OngekiGpLog { + currentGP: number | null; + id: number; + kind: number | null; + pattern: number | null; + placeId: number | null; + placeName: string | null; + trxnDate: string | null; + usedCredit: number | null; + user: number | null; +} + +export interface OngekiProfileActivity { + activityId: number | null; + id: number; + kind: number | null; + param1: number | null; + param2: number | null; + param3: number | null; + param4: number | null; + sortNumber: number | null; + user: number; +} + +export interface OngekiProfileData { + banStatus: number | null; + battlePoint: number | null; + bestBattlePoint: number | null; + cardCategorySetting: number | null; + cardId: number | null; + cardSortSetting: number | null; + characterId: number | null; + characterVoiceNo: number | null; + cmEventWatchedDate: string | null; + compatibleCmVersion: string | null; + eventWatchedDate: string | null; + exp: number | null; + firstDataVersion: string | null; + firstGameId: string | null; + firstPlayDate: string | null; + firstRomVersion: string | null; + firstTutorialCancelNum: number | null; + highestRating: number | null; + id: number; + isDialogWatchedSuggestMemory: number | null; + jewelCount: number | null; + lastAllNetId: number | null; + lastClientId: string | null; + lastDataVersion: string | null; + lastEmoneyBrand: number | null; + lastEmoneyCredit: number | null; + lastGameId: string | null; + lastPlaceId: number | null; + lastPlaceName: string | null; + lastPlayDate: string | null; + lastPlayMusicLevel: number | null; + lastRegionId: number | null; + lastRegionName: string | null; + lastRomVersion: string | null; + lastUsedDeckId: number | null; + level: number | null; + medalCount: number | null; + nameplateId: number | null; + overDamageBattlePoint: number | null; + playCount: number | null; + playedTutorialBit: number | null; + playerRating: number | null; + point: number | null; + reincarnationNum: number | null; + rivalScoreCategorySetting: number | null; + sumBattleAdvancedHighScore: number | null; + sumBattleBasicHighScore: number | null; + sumBattleExpertHighScore: number | null; + sumBattleHighScore: number | null; + sumBattleLunaticHighScore: number | null; + sumBattleMasterHighScore: number | null; + sumTechAdvancedHighScore: number | null; + sumTechBasicHighScore: number | null; + sumTechExpertHighScore: number | null; + sumTechHighScore: number | null; + sumTechLunaticHighScore: number | null; + sumTechMasterHighScore: number | null; + tabSetting: number | null; + tabSortSetting: number | null; + totalJewelCount: number | null; + totalPoint: number | null; + trophyId: number | null; + user: number; + userName: string | null; + version: number; +} + +export interface OngekiProfileKop { + areaId: number | null; + authKey: number | null; + id: number; + isTotalTechNewRecord: number | null; + kopId: number | null; + techRecordDate: string | null; + totalPlatinumScore: number | null; + totalTechScore: number | null; + user: number | null; +} + +export interface OngekiProfileOption { + abort: number | null; + colorField: number | null; + colorLane: number | null; + colorLaneBright: number | null; + colorSide: number | null; + colorWallBright: number | null; + dispBP: number | null; + dispPlayerLv: number | null; + dispRating: number | null; + effectDamage: number | null; + effectPos: number | null; + headphone: number | null; + id: number; + judgeAdjustment: number | null; + judgeBreak: number | null; + judgeCriticalBreak: number | null; + judgeDisp: number | null; + judgeHit: number | null; + judgePos: number | null; + judgeTiming: number | null; + matching: number | null; + mirror: number | null; + optionSet: number | null; + platinumBreakDisp: number | null; + speed: number | null; + stealthField: number | null; + tapSound: number | null; + user: number; + volAll: number | null; + volBell: number | null; + volCrTap: number | null; + volDamage: number | null; + volEnemy: number | null; + volFlick: number | null; + volGuide: number | null; + volHold: number | null; + volSide: number | null; + volSkill: number | null; + volTap: number | null; +} + +export interface OngekiProfileRatingLog { + dataVersion: string | null; + highestRating: number | null; + id: number; + user: number; +} + +export interface OngekiProfileRecentRating { + id: number; + recentRating: string | null; + user: number; +} + +export interface OngekiProfileRegion { + created: string | null; + id: number; + playCount: number | null; + regionId: number | null; + user: number; +} + +export interface OngekiProfileRival { + id: number; + rivalUserId: number | null; + user: number | null; +} + +export interface OngekiProfileTrainingRoom { + authKey: number | null; + cardId: number | null; + id: number; + roomId: number | null; + user: number | null; + valueDate: string | null; +} + +export interface OngekiScoreBest { + battleScoreMax: number; + battleScoreRank: number; + clearStatus: number; + id: number; + isAllBreake: number; + isFullBell: number; + isFullCombo: number; + isLock: number; + isStoryWatched: number; + level: number; + maxComboCount: number; + maxOverKill: number; + maxTeamOverKill: number; + musicId: number; + platinumScoreMax: number | null; + playCount: number; + techScoreMax: number; + techScoreRank: number; + user: number; +} + +export interface OngekiScorePlaylog { + battlePoint: number | null; + battleScore: number | null; + battleScoreRank: number | null; + bellCount: number | null; + bossAttribute: number | null; + bossCharaId: number | null; + bossLevel: number | null; + cardAttack1: number | null; + cardAttack2: number | null; + cardAttack3: number | null; + cardId1: number | null; + cardId2: number | null; + cardId3: number | null; + cardLevel1: number | null; + cardLevel2: number | null; + cardLevel3: number | null; + clearStatus: number | null; + damageCount: number | null; + eventId: number | null; + eventName: string | null; + eventPoint: number | null; + id: number; + isAllBreak: number | null; + isBattleNewRecord: number | null; + isFullBell: number | null; + isFullCombo: number | null; + isOverDamageNewRecord: number | null; + isTechNewRecord: number | null; + judgeBreak: number | null; + judgeCriticalBreak: number | null; + judgeHit: number | null; + judgeMiss: number | null; + level: number | null; + maxCombo: number | null; + musicId: number | null; + overDamage: number | null; + placeId: number | null; + placeName: string | null; + platinumScore: number | null; + platinumScoreMax: number | null; + playDate: Date | null; + playedMusicLevel1: number | null; + playedMusicLevel2: number | null; + playedMusicLevel3: number | null; + playedUserId1: number | null; + playedUserId2: number | null; + playedUserId3: number | null; + playedUserName1: string | null; + playedUserName2: string | null; + playedUserName3: string | null; + playerRating: number | null; + playKind: number | null; + rateFlick: number | null; + rateHold: number | null; + rateSideHold: number | null; + rateSideTap: number | null; + rateTap: number | null; + sortNumber: number | null; + techScore: number | null; + techScoreRank: number | null; + totalBellCount: number | null; + user: number; + userPlayDate: Date | null; +} + +export interface OngekiScoreTechCount { + allBreakCount: number | null; + allBreakPlusCount: number | null; + id: number; + levelId: number; + user: number; +} + +export interface OngekiSessionLog { + id: number; + isPaid: number | null; + placeId: number | null; + playDate: string | null; + sortNumber: number | null; + user: number | null; + userPlayDate: string | null; +} + +export interface OngekiStaticCards { + attribute: string; + cardId: number; + cardNumber: string | null; + charaId: number; + choKaikaSkillId: number; + gakunen: string; + id: number; + levelParam: string; + name: string; + nickName: string | null; + rarity: number; + school: string; + skillId: number; + version: number; +} + +export interface OngekiStaticClientTestmode { + advertiseVolume: number; + clientId: string; + continueMode: number; + eventMode: number; + eventMusicNum: number; + groupId: number; + groupRole: number; + id: number; + isDelivery: number; + limitGp: number; + maxLeverMovable: number; + minLeverMovable: number; + patternGp: number; + placeId: number; + regionId: number; + selectMusicTime: number; + updateDate: Date; +} + +export interface OngekiStaticEvents { + enabled: number | null; + endDate: Date | null; + eventId: number | null; + id: number; + name: string | null; + startDate: Date | null; + type: number | null; + version: number | null; +} + +export interface OngekiStaticGachaCards { + cardId: number; + gachaId: number; + id: number; + isPickup: number | null; + isSelect: number | null; + rarity: number; + weight: number | null; +} + +export interface OngekiStaticGachas { + ceilingCnt: number | null; + changeRateCnt1: number | null; + changeRateCnt2: number | null; + convertEndDate: Date | null; + endDate: Date | null; + gachaId: number; + gachaName: string; + id: number; + isCeiling: number | null; + kind: number; + maxSelectPoint: number | null; + noticeEndDate: Date | null; + noticeStartDate: Date | null; + startDate: Date | null; + type: number; + version: number; +} + +export interface OngekiStaticGamePoint { + cost: number; + endDate: string; + id: number; + startDate: string; + type: number; +} + +export interface OngekiStaticMusic { + artist: string | null; + chartId: number | null; + genre: string | null; + id: number; + level: number | null; + songId: number | null; + title: string | null; + version: number | null; +} + +export interface OngekiStaticMusicRankingList { + id: number; + musicId: number; + point: number; + userName: string | null; + version: number; +} + +export interface OngekiStaticPresentList { + endDate: string; + id: number; + message: string | null; + presentId: number; + presentName: string; + rewardId: number; + startDate: string; + stock: number; + version: number; +} + +export interface OngekiStaticRewards { + id: number; + itemId: number; + itemKind: number; + rewardId: number; + rewardname: string; + version: number; +} + +export interface OngekiStaticTechMusic { + eventId: number; + id: number; + level: number; + musicId: number; + version: number; +} + +export interface OngekiTechEventRanking { + date: string | null; + eventId: number; + id: number; + rank: number | null; + totalPlatinumScore: number; + totalTechScore: number; + user: number; + version: number; +} + +export interface OngekiUserBoss { + damage: number | null; + eventId: number | null; + id: number; + isClear: number | null; + musicId: number | null; + user: number | null; +} + +export interface OngekiUserCard { + analogStock: number | null; + cardId: number | null; + choKaikaDate: string | null; + created: string | null; + digitalStock: number | null; + exp: number | null; + id: number; + isAcquired: number | null; + isNew: number | null; + kaikaDate: string | null; + level: number | null; + maxLevel: number | null; + printCount: number | null; + skillId: number | null; + useCount: number | null; + user: number | null; +} + +export interface OngekiUserChapter { + chapterId: number | null; + id: number; + isClear: number | null; + isStoryWatched: number | null; + jewelCount: number | null; + lastPlayMusicCategory: number | null; + lastPlayMusicId: number | null; + lastPlayMusicLevel: number | null; + skipTiming1: number | null; + skipTiming2: number | null; + user: number | null; +} + +export interface OngekiUserCharacter { + attachmentId: number | null; + characterId: number | null; + costumeId: number | null; + id: number; + intimateCount: number | null; + intimateCountDate: string | null; + intimateCountRewarded: number | null; + intimateLevel: number | null; + isNew: number | null; + playCount: number | null; + user: number | null; +} + +export interface OngekiUserDeck { + cardId1: number | null; + cardId2: number | null; + cardId3: number | null; + deckId: number | null; + id: number; + user: number | null; +} + +export interface OngekiUserEventMusic { + eventId: number | null; + id: number; + isTechNewRecord: number | null; + level: number | null; + musicId: number | null; + platinumScoreMax: number | null; + techRecordDate: string | null; + techScoreMax: number | null; + type: number | null; + user: number | null; +} + +export interface OngekiUserEventPoint { + date: string | null; + eventId: number; + id: number; + isRankingRewarded: number | null; + point: number; + rank: number | null; + type: number; + user: number | null; + version: number; +} + +export interface OngekiUserGacha { + ceilingGachaCnt: number | null; + dailyGachaCnt: number | null; + dailyGachaDate: Date; + elevenGachaCnt: number | null; + fiveGachaCnt: number | null; + gachaId: number; + id: number; + selectPoint: number | null; + totalGachaCnt: number | null; + user: number; + useSelectPoint: number | null; +} + +export interface OngekiUserGachaSupply { + cardId: number; + id: number; + user: number; +} + +export interface OngekiUserItem { + id: number; + isValid: number | null; + itemId: number | null; + itemKind: number | null; + stock: number | null; + user: number | null; +} + +export interface OngekiUserLoginBonus { + bonusCount: number | null; + bonusId: number | null; + id: number; + lastUpdateDate: string | null; + user: number | null; +} + +export interface OngekiUserMemorychapter { + chapterId: number | null; + gaugeId: number | null; + gaugeNum: number | null; + id: number; + isBossWatched: number | null; + isClear: number | null; + isDialogWatched: number | null; + isEndingWatched: number | null; + isStoryWatched: number | null; + jewelCount: number | null; + lastPlayMusicCategory: number | null; + lastPlayMusicId: number | null; + lastPlayMusicLevel: number | null; + user: number | null; +} + +export interface OngekiUserMissionPoint { + eventId: number | null; + id: number; + point: number | null; + user: number | null; + version: number | null; +} + +export interface OngekiUserMusicItem { + id: number; + musicId: number | null; + status: number | null; + user: number | null; +} + +export interface OngekiUserPrintDetail { + cardId: number; + cardType: number | null; + clientId: string; + id: number; + isAutographed: number | null; + isHolograph: number | null; + placeId: number; + printDate: Date; + printerSerialId: string; + printOption1: number | null; + printOption10: number | null; + printOption2: number | null; + printOption3: number | null; + printOption4: number | null; + printOption5: number | null; + printOption6: number | null; + printOption7: number | null; + printOption8: number | null; + printOption9: number | null; + serialId: string; + user: number; +} + +export interface OngekiUserScenerio { + id: number; + playCount: number | null; + scenarioId: number | null; + user: number | null; +} + +export interface OngekiUserStory { + id: number; + jewelCount: number | null; + lastChapterId: number | null; + lastPlayMusicCategory: number | null; + lastPlayMusicId: number | null; + lastPlayMusicLevel: number | null; + storyId: number | null; + user: number | null; +} + +export interface OngekiUserTechEvent { + eventId: number; + id: number; + isRankingRewarded: number | null; + isTotalTechNewRecord: number | null; + techRecordDate: string | null; + totalPlatinumScore: number; + totalTechScore: number; + user: number | null; + version: number; +} + +export interface OngekiUserTradeItem { + chapterId: number | null; + id: number; + tradeCount: number | null; + tradeItemId: number | null; + user: number | null; +} + +export interface PokkenItem { + category: number | null; + content: number | null; + id: number; + type: number | null; + user: number; +} + +export interface PokkenMatchData { + cool_ko_num: number | null; + ex_ko_num: number | null; + id: number; + num_games: number | null; + perfect_ko_num: number | null; + play_date: Date | null; + play_modes: string | null; + results: string | null; + timeup_win_num: number | null; + use_aid_skill: number | null; + use_navi: number | null; + use_navi_cloth: number | null; + user: number; + wko_num: number | null; +} + +export interface PokkenPokemonData { + battle_all_num_tutorial: number | null; + battle_num_tutorial: number | null; + battle_num_vs_cpu: number | null; + battle_num_vs_lan: number | null; + battle_num_vs_wan: number | null; + bp_point_atk: number | null; + bp_point_def: number | null; + bp_point_res: number | null; + bp_point_sp: number | null; + char_id: number; + id: number; + illustration_book_no: number | null; + pokemon_exp: number | null; + user: number; + win_cpu: number | null; + win_vs_lan: number | null; + win_vs_wan: number | null; +} + +export interface PokkenProfile { + achievement_flag: string | null; + aid_skill: number | null; + aid_skill_list: string | null; + avatar_accessory: number | null; + avatar_background: number | null; + avatar_battleglass: number | null; + avatar_body: number | null; + avatar_bodyall: number | null; + avatar_face0: number | null; + avatar_face1: number | null; + avatar_face2: number | null; + avatar_gender: number | null; + avatar_head: number | null; + avatar_stamp: number | null; + avatar_wear: number | null; + awake_num: number | null; + battle_num_tutorial: number | null; + battle_num_vs_cpu: number | null; + battle_num_vs_lan: number | null; + battle_num_vs_wan: number | null; + beat_num: number | null; + comment_text_id: number | null; + comment_word_id: number | null; + continue_num: number | null; + cool_ko_num: number | null; + event_achievement_flag: string | null; + event_achievement_param: string | null; + event_id: number | null; + event_reward_get_flag: number | null; + event_state: number | null; + ex_ko_num: number | null; + extra_counter: number | null; + fight_money: number | null; + grade_max_num: number | null; + home_loc_name: string | null; + home_region_code: number | null; + id: number; + last_play_event_id: number | null; + latest_use_pokemon: number | null; + lucky_box_fail_num: number | null; + navi_enable_flag: number | null; + navi_newbie_flag: number | null; + navi_trainer: number | null; + navi_version_id: number | null; + pad_vibrate_flag: number | null; + perfect_ko_num: number | null; + play_date_time: number | null; + pref_code: number | null; + rank_cpu_all: number | null; + rank_cpu_loc: number | null; + rank_event: number | null; + rank_pvp_all: number | null; + rank_pvp_loc: number | null; + rankmatch_flag: number | null; + rankmatch_max: number | null; + rankmatch_progress: string | null; + rankmatch_success: number | null; + record_flag: number | null; + score_point: number | null; + sp_bonus_category_id_1: number | null; + sp_bonus_category_id_2: number | null; + sp_bonus_key_value_1: number | null; + sp_bonus_key_value_2: number | null; + support_pokemon_list: string | null; + support_set_1_1: number | null; + support_set_1_2: number | null; + support_set_2_1: number | null; + support_set_2_2: number | null; + support_set_3_1: number | null; + support_set_3_2: number | null; + timeup_win_num: number | null; + title_decoration_id: number | null; + title_plate_id: number | null; + title_text_id: number | null; + total_play_days: number | null; + trainer_name: string | null; + trainer_rank_point: number | null; + tutorial_progress_flag: string | null; + use_support_num: number | null; + user: number; + wallet: number | null; + win_cpu: number | null; + win_vs_lan: number | null; + win_vs_wan: number | null; + wko_num: number | null; +} + +export interface SaoEndSessions { + id: number; + play_date: Date; + play_result_flag: number; + quest_id: number; + reward_data: string | null; + user: number; +} + +export interface SaoEquipmentData { + awakening_exp: number; + awakening_stage: number; + enhancement_exp: number; + enhancement_value: number; + equipment_id: number; + get_date: Date; + id: number; + possible_awakening_flag: number; + user: number; +} + +export interface SaoHeroLogData { + get_date: Date; + id: number; + log_exp: number; + log_level: number; + main_weapon: number; + skill_slot1_skill_id: number; + skill_slot2_skill_id: number; + skill_slot3_skill_id: number; + skill_slot4_skill_id: number; + skill_slot5_skill_id: number; + sub_equipment: number; + user: number; + user_hero_log_id: number; +} + +export interface SaoHeroParty { + id: number; + user: number; + user_hero_log_id_1: number; + user_hero_log_id_2: number; + user_hero_log_id_3: number; + user_party_team_id: number; +} + +export interface SaoItemData { + get_date: Date; + id: number; + item_id: number; + user: number; +} + +export interface SaoPlayerQuest { + clear_time: number; + combo_num: number; + concurrent_destroying_num: number; + episode_id: number; + id: number; + play_date: Date; + quest_clear_flag: number; + total_damage: number; + user: number; +} + +export interface SaoPlaySessions { + episode_id: number; + id: number; + play_date: Date; + play_mode: number; + quest_drop_boost_apply_flag: number; + user: number; + user_party_team_id: number; +} + +export interface SaoProfile { + id: number; + nick_name: string | null; + own_col: number | null; + own_vp: number | null; + own_yui_medal: number | null; + rank_exp: number | null; + rank_num: number | null; + setting_title_id: number | null; + user: number; + user_type: number | null; +} + +export interface SaoStaticEquipmentList { + enabled: number | null; + equipmentId: number | null; + equipmentType: number | null; + flavorText: string | null; + id: number; + name: string | null; + rarity: number | null; + version: number | null; + weaponTypeId: number | null; +} + +export interface SaoStaticHeroList { + awakeningExp: number | null; + enabled: number | null; + flavorText: string | null; + heroLogId: number | null; + id: number; + name: string | null; + nickname: string | null; + rarity: number | null; + skillTableSubId: number | null; + version: number | null; +} + +export interface SaoStaticItemList { + enabled: number | null; + flavorText: string | null; + id: number; + itemId: number | null; + itemTypeId: number | null; + name: string | null; + rarity: number | null; + version: number | null; +} + +export interface SaoStaticQuest { + enabled: number | null; + id: number; + name: string | null; + questSceneId: number | null; + sortNo: number | null; + version: number | null; +} + +export interface SaoStaticRareDropList { + commonRewardId: number | null; + enabled: number | null; + id: number; + questRareDropId: number | null; + version: number | null; +} + +export interface SaoStaticSupportLogList { + charaId: number | null; + enabled: number | null; + id: number; + name: string | null; + rarity: number | null; + salePrice: number | null; + skillName: string | null; + supportLogId: number | null; + version: number | null; +} + +export interface SaoStaticTitleList { + displayName: string | null; + enabled: number | null; + id: number; + imageFilePath: string | null; + rank: number | null; + requirement: number | null; + titleId: number | null; + version: number | null; +} + +export interface SchemaVersions { + game: string; + version: number; +} + +export interface WaccaBingo { + page_number: number; + page_progress: string; + user: number; +} + +export interface WaccaFavoriteSong { + id: number; + song_id: number; + user: number; +} + +export interface WaccaFriend { + is_accepted: number | null; + profile_reciever: number; + profile_sender: number; +} + +export interface WaccaGate { + gate_id: number; + id: number; + last_used: Date; + loops: number; + mission_flag: number; + page: number; + progress: number; + total_points: number; + user: number; +} + +export interface WaccaItem { + acquire_date: Date; + id: number; + item_id: number; + type: number; + use_count: number | null; + user: number; +} + +export interface WaccaOption { + id: number; + opt_id: number; + user: number; + value: number; +} + +export interface WaccaProfile { + always_vip: number | null; + dan_level: number | null; + dan_type: number | null; + friend_view_1: number | null; + friend_view_2: number | null; + friend_view_3: number | null; + gate_tutorial_flags: string | null; + id: number; + last_folder_id: number | null; + last_folder_order: number | null; + last_game_ver: string | null; + last_login_date: Date | null; + last_song_difficulty: number | null; + last_song_id: number | null; + last_song_order: number | null; + login_count: number | null; + login_count_consec: number | null; + login_count_days: number | null; + login_count_days_consec: number | null; + login_count_today: number | null; + playcount_multi_coop: number | null; + playcount_multi_vs: number | null; + playcount_single: number | null; + playcount_stageup: number | null; + playcount_time_free: number | null; + rating: number | null; + title_0: number | null; + title_1: number | null; + title_2: number | null; + user: number; + username: string; + version: number | null; + vip_expire_time: Date | null; + wp: number | null; + wp_spent: number | null; + wp_total: number | null; + xp: number | null; +} + +export interface WaccaScoreBest { + allmarv_ct: number | null; + best_combo: number | null; + chart_id: number | null; + clear_ct: number | null; + fullcombo_ct: number | null; + grade_a_ct: number | null; + grade_aa_ct: number | null; + grade_aaa_ct: number | null; + grade_b_ct: number | null; + grade_c_ct: number | null; + grade_d_ct: number | null; + grade_master_ct: number | null; + grade_s_ct: number | null; + grade_sp_ct: number | null; + grade_ss_ct: number | null; + grade_ssp_ct: number | null; + grade_sss_ct: number | null; + grade_sssp_ct: number | null; + id: number; + lowest_miss_ct: number | null; + missless_ct: number | null; + play_ct: number | null; + rating: number | null; + score: number | null; + song_id: number | null; + user: number; +} + +export interface WaccaScorePlaylog { + chart_id: number | null; + clear: number | null; + date_scored: Date | null; + fast_ct: number | null; + good_ct: number | null; + grade: number | null; + great_ct: number | null; + id: number; + late_ct: number | null; + marv_ct: number | null; + max_combo: number | null; + miss_ct: number | null; + score: number | null; + season: number | null; + song_id: number | null; + user: number; +} + +export interface WaccaScoreStageup { + clear_song_ct: number | null; + clear_status: number | null; + id: number; + play_ct: number | null; + song1_score: number | null; + song2_score: number | null; + song3_score: number | null; + stage_id: number | null; + user: number; + version: number | null; +} + +export interface WaccaSongUnlock { + acquire_date: Date; + highest_difficulty: number; + id: number; + song_id: number; + user: number; +} + +export interface WaccaStaticMusic { + artist: string | null; + bpm: string | null; + chartDesigner: string | null; + chartId: number | null; + difficulty: number | null; + id: number; + jacketFile: string | null; + songId: number | null; + title: string | null; + version: number; +} + +export interface WaccaTicket { + acquire_date: Date; + expire_date: Date | null; + id: number; + ticket_id: number; + user: number; +} + +export interface WaccaTrophy { + badge_type: number; + id: number; + progress: number; + season: number; + trophy_id: number; + user: number; +} + +export interface DB { + actaeon_chuni_static_map_icon: ActaeonChuniStaticMapIcon; + actaeon_chuni_static_name_plate: ActaeonChuniStaticNamePlate; + actaeon_chuni_static_system_voice: ActaeonChuniStaticSystemVoice; + actaeon_chuni_static_trophies: ActaeonChuniStaticTrophies; + aime_card: AimeCard; + aime_user: AimeUser; + arcade: Arcade; + arcade_owner: ArcadeOwner; + chuni_item_character: ChuniItemCharacter; + chuni_item_duel: ChuniItemDuel; + chuni_item_favorite: ChuniItemFavorite; + chuni_item_gacha: ChuniItemGacha; + chuni_item_item: ChuniItemItem; + chuni_item_login_bonus: ChuniItemLoginBonus; + chuni_item_map: ChuniItemMap; + chuni_item_map_area: ChuniItemMapArea; + chuni_item_matching: ChuniItemMatching; + chuni_item_print_detail: ChuniItemPrintDetail; + chuni_item_print_state: ChuniItemPrintState; + chuni_profile_activity: ChuniProfileActivity; + chuni_profile_charge: ChuniProfileCharge; + chuni_profile_data: ChuniProfileData; + chuni_profile_data_ex: ChuniProfileDataEx; + chuni_profile_emoney: ChuniProfileEmoney; + chuni_profile_option: ChuniProfileOption; + chuni_profile_option_ex: ChuniProfileOptionEx; + chuni_profile_overpower: ChuniProfileOverpower; + chuni_profile_recent_rating: ChuniProfileRecentRating; + chuni_profile_region: ChuniProfileRegion; + chuni_profile_team: ChuniProfileTeam; + chuni_score_best: ChuniScoreBest; + chuni_score_course: ChuniScoreCourse; + chuni_score_playlog: ChuniScorePlaylog; + chuni_static_avatar: ChuniStaticAvatar; + chuni_static_cards: ChuniStaticCards; + chuni_static_charge: ChuniStaticCharge; + chuni_static_events: ChuniStaticEvents; + chuni_static_gacha_cards: ChuniStaticGachaCards; + chuni_static_gachas: ChuniStaticGachas; + chuni_static_login_bonus: ChuniStaticLoginBonus; + chuni_static_login_bonus_preset: ChuniStaticLoginBonusPreset; + chuni_static_music: ChuniStaticMusic; + cxb_playlog: CxbPlaylog; + cxb_profile: CxbProfile; + cxb_ranking: CxbRanking; + cxb_rev_energy: CxbRevEnergy; + cxb_score: CxbScore; + cxb_static_music: CxbStaticMusic; + diva_playlog: DivaPlaylog; + diva_profile: DivaProfile; + diva_profile_customize_item: DivaProfileCustomizeItem; + diva_profile_module: DivaProfileModule; + diva_profile_pv_customize: DivaProfilePvCustomize; + diva_profile_shop: DivaProfileShop; + diva_score: DivaScore; + diva_static_items: DivaStaticItems; + diva_static_music: DivaStaticMusic; + diva_static_quests: DivaStaticQuests; + diva_static_shop: DivaStaticShop; + event_log: EventLog; + idac_profile: IdacProfile; + idac_profile_avatar: IdacProfileAvatar; + idac_profile_config: IdacProfileConfig; + idac_profile_rank: IdacProfileRank; + idac_profile_stock: IdacProfileStock; + idac_profile_theory: IdacProfileTheory; + idac_user_car: IdacUserCar; + idac_user_challenge: IdacUserChallenge; + idac_user_course: IdacUserCourse; + idac_user_stamp: IdacUserStamp; + idac_user_story: IdacUserStory; + idac_user_story_episode: IdacUserStoryEpisode; + idac_user_story_episode_difficulty: IdacUserStoryEpisodeDifficulty; + idac_user_theory_course: IdacUserTheoryCourse; + idac_user_theory_partner: IdacUserTheoryPartner; + idac_user_theory_running: IdacUserTheoryRunning; + idac_user_ticket: IdacUserTicket; + idac_user_time_trial: IdacUserTimeTrial; + idac_user_timetrial_event: IdacUserTimetrialEvent; + idac_user_vs_info: IdacUserVsInfo; + machine: Machine; + mai2_item_card: Mai2ItemCard; + mai2_item_character: Mai2ItemCharacter; + mai2_item_charge: Mai2ItemCharge; + mai2_item_favorite: Mai2ItemFavorite; + mai2_item_friend_season_ranking: Mai2ItemFriendSeasonRanking; + mai2_item_item: Mai2ItemItem; + mai2_item_login_bonus: Mai2ItemLoginBonus; + mai2_item_map: Mai2ItemMap; + mai2_item_print_detail: Mai2ItemPrintDetail; + mai2_playlog: Mai2Playlog; + mai2_playlog_2p: Mai2Playlog2p; + mai2_profile_activity: Mai2ProfileActivity; + mai2_profile_consec_logins: Mai2ProfileConsecLogins; + mai2_profile_detail: Mai2ProfileDetail; + mai2_profile_extend: Mai2ProfileExtend; + mai2_profile_ghost: Mai2ProfileGhost; + mai2_profile_option: Mai2ProfileOption; + mai2_profile_rating: Mai2ProfileRating; + mai2_profile_region: Mai2ProfileRegion; + mai2_score_best: Mai2ScoreBest; + mai2_score_course: Mai2ScoreCourse; + mai2_static_cards: Mai2StaticCards; + mai2_static_event: Mai2StaticEvent; + mai2_static_music: Mai2StaticMusic; + mai2_static_ticket: Mai2StaticTicket; + maimai_playlog: MaimaiPlaylog; + maimai_profile_boss: MaimaiProfileBoss; + maimai_profile_detail: MaimaiProfileDetail; + maimai_profile_grade_status: MaimaiProfileGradeStatus; + maimai_profile_option: MaimaiProfileOption; + maimai_profile_recent_rating: MaimaiProfileRecentRating; + maimai_profile_web_option: MaimaiProfileWebOption; + maimai_score_best: MaimaiScoreBest; + ongeki_gp_log: OngekiGpLog; + ongeki_profile_activity: OngekiProfileActivity; + ongeki_profile_data: OngekiProfileData; + ongeki_profile_kop: OngekiProfileKop; + ongeki_profile_option: OngekiProfileOption; + ongeki_profile_rating_log: OngekiProfileRatingLog; + ongeki_profile_recent_rating: OngekiProfileRecentRating; + ongeki_profile_region: OngekiProfileRegion; + ongeki_profile_rival: OngekiProfileRival; + ongeki_profile_training_room: OngekiProfileTrainingRoom; + ongeki_score_best: OngekiScoreBest; + ongeki_score_playlog: OngekiScorePlaylog; + ongeki_score_tech_count: OngekiScoreTechCount; + ongeki_session_log: OngekiSessionLog; + ongeki_static_cards: OngekiStaticCards; + ongeki_static_client_testmode: OngekiStaticClientTestmode; + ongeki_static_events: OngekiStaticEvents; + ongeki_static_gacha_cards: OngekiStaticGachaCards; + ongeki_static_gachas: OngekiStaticGachas; + ongeki_static_game_point: OngekiStaticGamePoint; + ongeki_static_music: OngekiStaticMusic; + ongeki_static_music_ranking_list: OngekiStaticMusicRankingList; + ongeki_static_present_list: OngekiStaticPresentList; + ongeki_static_rewards: OngekiStaticRewards; + ongeki_static_tech_music: OngekiStaticTechMusic; + ongeki_tech_event_ranking: OngekiTechEventRanking; + ongeki_user_boss: OngekiUserBoss; + ongeki_user_card: OngekiUserCard; + ongeki_user_chapter: OngekiUserChapter; + ongeki_user_character: OngekiUserCharacter; + ongeki_user_deck: OngekiUserDeck; + ongeki_user_event_music: OngekiUserEventMusic; + ongeki_user_event_point: OngekiUserEventPoint; + ongeki_user_gacha: OngekiUserGacha; + ongeki_user_gacha_supply: OngekiUserGachaSupply; + ongeki_user_item: OngekiUserItem; + ongeki_user_login_bonus: OngekiUserLoginBonus; + ongeki_user_memorychapter: OngekiUserMemorychapter; + ongeki_user_mission_point: OngekiUserMissionPoint; + ongeki_user_music_item: OngekiUserMusicItem; + ongeki_user_print_detail: OngekiUserPrintDetail; + ongeki_user_scenerio: OngekiUserScenerio; + ongeki_user_story: OngekiUserStory; + ongeki_user_tech_event: OngekiUserTechEvent; + ongeki_user_trade_item: OngekiUserTradeItem; + pokken_item: PokkenItem; + pokken_match_data: PokkenMatchData; + pokken_pokemon_data: PokkenPokemonData; + pokken_profile: PokkenProfile; + sao_end_sessions: SaoEndSessions; + sao_equipment_data: SaoEquipmentData; + sao_hero_log_data: SaoHeroLogData; + sao_hero_party: SaoHeroParty; + sao_item_data: SaoItemData; + sao_play_sessions: SaoPlaySessions; + sao_player_quest: SaoPlayerQuest; + sao_profile: SaoProfile; + sao_static_equipment_list: SaoStaticEquipmentList; + sao_static_hero_list: SaoStaticHeroList; + sao_static_item_list: SaoStaticItemList; + sao_static_quest: SaoStaticQuest; + sao_static_rare_drop_list: SaoStaticRareDropList; + sao_static_support_log_list: SaoStaticSupportLogList; + sao_static_title_list: SaoStaticTitleList; + schema_versions: SchemaVersions; + wacca_bingo: WaccaBingo; + wacca_favorite_song: WaccaFavoriteSong; + wacca_friend: WaccaFriend; + wacca_gate: WaccaGate; + wacca_item: WaccaItem; + wacca_option: WaccaOption; + wacca_profile: WaccaProfile; + wacca_score_best: WaccaScoreBest; + wacca_score_playlog: WaccaScorePlaylog; + wacca_score_stageup: WaccaScoreStageup; + wacca_song_unlock: WaccaSongUnlock; + wacca_static_music: WaccaStaticMusic; + wacca_ticket: WaccaTicket; + wacca_trophy: WaccaTrophy; +} diff --git a/src/types/deep-is/index.ts b/src/types/deep-is/index.ts new file mode 100644 index 0000000..2022154 --- /dev/null +++ b/src/types/deep-is/index.ts @@ -0,0 +1,3 @@ +declare module 'deep-is' { + export default function (a: any, b: any): boolean; +} diff --git a/src/types/next-auth/index.d.ts b/src/types/next-auth/index.d.ts new file mode 100644 index 0000000..59d09fe --- /dev/null +++ b/src/types/next-auth/index.d.ts @@ -0,0 +1,16 @@ +import NextAuth from 'next-auth'; +import { UserPayload } from '@/types/user'; + +declare module 'next-auth' { + interface Session { + user: { + [T in keyof UserPayload]: UserPayload[T] + }, + } + + interface JWT { + user: { + [T in keyof UserPayload]: UserPayload[T] + } + } +} diff --git a/src/types/user.ts b/src/types/user.ts new file mode 100644 index 0000000..0845f1a --- /dev/null +++ b/src/types/user.ts @@ -0,0 +1,13 @@ +import { AimeUser } from '@/types/db'; + +export type DBUserPayload = Omit & { + chuni: boolean +}; + +export type UserPayload = { + [T in keyof DBUserPayload]: DBUserPayload[T] extends (Date | null) ? (string | null) : + DBUserPayload[T] +} & { + iat: number, + exp: number, +};