import { UserChallengeState, UserChallengeSuccess } from 'enums' import { DateTime } from 'luxon' import { Dataload, Relation, UserAction, UserActionEntity, UserDuel, UserDuelEntity, UserExploration, UserQuiz, } from 'models' export interface ChallengeState { userChallengeList: UserChallenge[] currentChallenge: UserChallenge | null currentDataload: Dataload[] } export interface ChallengeEntity { id: string title: string description: string target: number relationships: { quiz: { data: Relation } duel: { data: Relation } exploration: { data: Relation[] } } } export interface UserChallengeEntity { id: string title: string title_line_return?: string description: string state: UserChallengeState target: number progress: { quizProgress: number explorationProgress: number actionProgress: number } duel: UserDuelEntity success: UserChallengeSuccess startDate: string | null endingDate: string | null quiz: UserQuiz exploration: UserExploration action: UserActionEntity } export interface UserChallenge extends Omit< UserChallengeEntity, 'startDate' | 'endingDate' | 'duel' | 'action' > { startDate: DateTime | null endingDate: DateTime | null duel: UserDuel action: UserAction }