package apollostruct

type QuestionMapCfg struct {
	Map       map[int64]*RavenIQTestQuestion `json:"map"`
	ClassList []int64                        `json:"class_list"`
}

type RavenIQTestQuestion struct {
	QuestionId    int64 `json:"question_id" bson:"question_id"`       // 问题Id
	ClassId       int64 `json:"class_id" bson:"class_id"`             // 大类id
	CorrectOption int64 `json:"correct_option" bson:"correct_option"` // 正确选项
}

type IQResult struct {
	IQBlockId    int64    `json:"IQ_Block_Id"`    // IQ分段id
	IQGrade      string   `json:"IQ_grade"`       // 智商等级
	Percentile   int64    `json:"percentile"`     // 百分位
	IQLowerBound int64    `json:"IQ_lower_bound"` // IQ下界
	IQUpperBound int64    `json:"IQ_upper_bound"` // IQ上界
	Description  string   `json:"description"`    // 描述
	Suggestions  []string `json:"suggestions"`    // 建议
}

type AgeScore2IQResultMapCfg struct {
	AgeBlockIndex2ScoreBlockListMap map[int][]float64 `json:"age_block_index_2_score_block_list_map"` // 年龄分段到分数分布区域的映射map
	AgeBlockList                    []int64           `json:"age_block_list"`                         // 年龄段区域,以年龄在该年龄段中第一次出现或最后一个比他小的位置作为年龄段索引
	ScoreBlockIndex2IQBlockIdMap    map[int]int64     `json:"score_block_index_2_IQ_block_id_map"`    // 分数分段到IQ范围id的映射map
}

type ClassScore2ClassResultMapCfg struct {
	Map map[int64][]int64 `json:"map" bson:"map"` // 大类Id到大类分数分布区域的映射map
}

type IQResultMapCfg struct {
	Map map[int64]*IQResult `json:"map"`
}

type ClassResult struct {
	Description string        `json:"description"` // 描述
	Analysis    string        `json:"analysis"`    // 成绩分析
	Suggestions []*Suggestion `json:"suggestions"` // 建议
}

type ClassInfo struct {
	ClassId        int64  `json:"class_id"`         // 大类id
	ClassName      string `json:"class_name"`       // 大类名称
	ClassFullScore int64  `json:"class_full_score"` // 大类满分
}

type Suggestion struct {
	Title string `json:"title"`
	Tips  []*Tip `json:"tips"`
}

type Tip struct {
	Summary string `json:"summary"` // 概括
	Content string `json:"content"` // 内容
}

type ClassResultMapCfg struct {
	Map          map[int64]*ClassResult `json:"map"`
	ClassInfoMap map[int64]*ClassInfo   `json:"class_info_map"`
	FullScore    int64                  `json:"full_score"`  // 满分
	TotalScore   int64                  `json:"total_score"` // 总分
}