export type TCG_CARD_TYPE = 'CardTypeCharacter' | 'CardTypeModify' | 'CardTypeUnknown'; export type TCG_COST_TYPE = 'CostTypeHydro' | 'CostTypeEnergy' | 'CostTypePyro' | 'CostTypeElectro' | 'CostTypeAnemo' | 'CostTypeCryo'; export interface IGenshinTCGAccount { name: string; linups: string[]; is_overflow: boolean; } export interface IGenshinTCGTime { year: number; month: number; day: number; hour: number; minute: number; second: number; } export interface IGesnhinTCGReplay { game_id: string; self: IGenshinTCGAccount; opposite: IGenshinTCGAccount; match_type: string; match_time: IGenshinTCGTime; is_win: boolean; } export interface IGenshinTCGScheduleBasic { id: number; name: string; begin: IGenshinTCGTime; end: IGenshinTCGTime; } export interface IGenshinTCGChallangeBasic { schedule: IGenshinTCGScheduleBasic; nickname: string; uid: string; win_cnt: number; medal: string; has_data: boolean; } export interface IGenshinTCGStat { level: number; nickname: string; avatar_card_num_gained: number; avatar_card_num_total: number; action_card_num_gained: number; action_card_num_total: number; } export interface IGenshinTCGBasicInfo extends IGenshinTCGStat { covers: any[]; replays: IGesnhinTCGReplay[]; hornor_character: any; challenge_basic: IGenshinTCGChallangeBasic; } export interface IGenshinTCGCardSkill { id: number; name: string; desc: string; tag: string; } export interface IGenshinTCGActionCost { cost_type: TCG_COST_TYPE; cost_value: number; } export interface IGenshinTCGCard { id: number; name: string; image: string; desc: string; card_type: TCG_CARD_TYPE; num: number; tags: string[]; proficiency: number; use_count: number; hp: number; card_skills: IGenshinTCGCardSkill[]; action_cost: IGenshinTCGActionCost[]; card_sources: string[]; rank_id: number; deck_recommend: string; card_wiki: string; icon: string; } export interface IGenshinTCGCards { card_list: IGenshinTCGCard[]; is_last: boolean; next_offset: number; stats: IGenshinTCGStat | null; } export interface IGenshinTCGMatch extends IGesnhinTCGReplay { } export interface IGenshinTCGMatchs { recent_matches: IGenshinTCGMatch[]; favourite_matches: any[]; } export interface IGenshinTCGDeckDetail { id: number; name: string; is_valid: boolean; avatar_cards: IGenshinTCGCard[]; action_cards: IGenshinTCGCard[]; } export interface IGenshinTCGDeckList { deck: IGenshinTCGDeckDetail; win_cnt: number; } export interface IGenshinTCGRecord { basic: { schedule: IGenshinTCGScheduleBasic | null; nickname: string; uid: string; win_cnt: number; medal: string; has_data: boolean; }; honor_character: any[]; deck_list: IGenshinTCGDeckList[]; recommend_url: string; } export interface IGenshinTCGSchedule { schedule_list: IGenshinTCGScheduleBasic[]; } export interface IGenshinTCGDeck { basic: IGenshinTCGChallangeBasic; deck_detail: IGenshinTCGDeckList; }