diff --git a/admin/sync/exercice_defines.go b/admin/sync/exercice_defines.go index ce210657..6be57b80 100644 --- a/admin/sync/exercice_defines.go +++ b/admin/sync/exercice_defines.go @@ -9,14 +9,61 @@ import ( // ExerciceHintParams holds EHint definition infomation. type ExerciceHintParams struct { Filename string + Content string Cost int64 Title string } +// ExerciceDependency holds dependency definitions information. +type ExerciceDependency struct { + Id int64 + Theme string `toml:",omitempty"` +} + +// ExerciceFlag holds informations about a "classic" flag. +type ExerciceFlag struct { + Label string `toml:",omitempty"` + Raw string + IgnoreCase bool `toml:",omitempty"` + Help string `toml:",omitempty"` +} + +// ExerciceFlagMCQChoice holds a choice for an MCQ flag. +type ExerciceFlagMCQChoice struct { + Label string + Value bool `toml:",omitempty"` +} + +// ExerciceFlagMCQ holds information about a MCQ flag. +type ExerciceFlagMCQ struct { + Label string `toml:",omitempty"` + Choice []ExerciceFlagMCQChoice +} + +// ExerciceFlagUCQChoice holds a choice for an UCQ flag. +type ExerciceFlagUCQChoice struct { + Label string `toml:",omitempty"` + Value string +} + +// ExerciceFlagUCQ holds information about a UCQ flag. +type ExerciceFlagUCQ struct { + Label string `toml:",omitempty"` + Raw string + Help string `toml:",omitempty"` + DisplayAs string `toml:",omitempty"` + Choices_Cost int64 `toml:",omitempty"` + Choice []ExerciceFlagUCQChoice +} + // ExerciceParams contains values parsed from defines.txt. type ExerciceParams struct { - Gain int64 - Hints []ExerciceHintParams `toml:"hint"` + Gain int64 + Hints []ExerciceHintParams `toml:"hint"` + Dependencies []ExerciceDependency `toml:"depend"` + Flags []ExerciceFlag `toml:"flag"` + FlagsMCQ []ExerciceFlagMCQ `toml:"flag_mcq"` + FlagsUCQ []ExerciceFlagUCQ `toml:"flag_ucq"` } // parseExerciceParams reads challenge definitions from defines.txt and extract usefull data to set up the challenge.