export interface HollandRecord {
    "createBy": string | null;
    "createTime": string;
    "updateBy": string | null;
    "updateTime": string | null;
    "remark": string | null;
    "id": number;
    "customerCode": string;
    "code": string;
    "wants1": string | null;
    "wants2": string | null;
    "wants3": string | null;
    "ruleCode": string;
    "scorer": number;
    "scorei": number;
    "scorea": number;
    "scores": number;
    "scoree": number;
    "scorec": number;
    "status": number;
}

export interface HollandRule {
    "createBy": string | null;
    "createTime": string | null;
    "updateBy": string | null;
    "updateTime": string | null;
    "remark": string | null;
    "id": number;
    "code": string;
    "jobs": string;
    "marjors": string;  // '多个用、号分隔'
    "status": number;
}

export interface HollandDetail {
    "createBy": string | null;
    "createTime": string | null;
    "updateBy": string | null;
    "updateTime": string | null;
    "remark": string | null;
    "id": number;
    "customerCode": string;
    "recordCode": string;
    "stepId": number;
    "stepTitle": string;
    "questionId": number;
    "ruleCode": string;
    "questionTitle": string;
    "answer": string;
    "options": string[];
    "status": number;
}

export interface HollandEntity extends HollandRecord {
    rule: HollandRule;
    details: HollandDetail[];
}

export interface MbtiRecord {
    "createBy": string | null;
    "createTime": string;
    "updateBy": string | null;
    "updateTime": string | null;
    "remark": string | null;
    "id": number;
    "customerCode": string;
    "code": string;
    "ruleCode": string;
    "scoreE": number;
    "scoreI": number;
    "scoreS": number;
    "scoreN": number;
    "scoreT": number;
    "scoreF": number;
    "scoreJ": number;
    "scoreP": number;
    "status": number;
}

export interface MbtiRule {
    "createBy": string | null;
    "createTime": string | null;
    "updateBy": string | null;
    "updateTime": string | null;
    "remark": string | null;
    "id": number;
    "code": string;
    "name": string | null;
    "title": string;
    "status": number;
}

export interface MbtiDetail {
    "createBy": string | null;
    "createTime": string | null;
    "updateBy": string | null;
    "updateTime": string | null;
    "remark": string | null;
    "id": number;
    "customerCode": string;
    "recordCode": string;
    "stepId": number;
    "stepTitle": string;
    "questionId": number;
    "questionTitle": string;
    "optionA": string;
    "optionB": string;
    "valueA": string;
    "valueB": string;
    "answer": string;
    "status": number;
}

export interface MbtiEntity extends MbtiRecord {
    "rule": MbtiRule;
    "details": MbtiDetail[]
}

export interface MbtiRecommendMajor {
    "createBy": string | null;
    "createTime": string | null;
    "updateBy": string | null;
    "updateTime": string | null;
    "remark": string | null;
    "id": number;
    "code": string | null;
    "category": string | null;
    "major": string | null;
    "majors": string | null;
}

export interface MbtiRecommendMajorCategory {
    "createBy": string | null;
    "createTime": string | null;
    "updateBy": string | null;
    "updateTime": string | null;
    "remark": string | null;
    "id": number;
    "code": string | null;
    "category": string;
    "major": string | null;
    "majors": MbtiRecommendMajor[];
}

export interface TestStep {
  createBy: string | null;
  createTime: string | null;
  updateBy: string | null;
  updateTime: string | null;
  remark: string | null;
  id: number;
  no: number;
  title: string;
  status: number;
}

export interface MbtiTestQuestion {
  createBy: string | null;
  createTime: string | null;
  id: number;
  no: number;
  optionA: string;
  optionB: string;
  percent: number;
  remark: string | null;
  status: number;
  stepId: number;
  title: string;
  updateBy: string | null;
  updateTime: string | null;
  valueA: string;
  valueB: string;
}

export interface HollandTestQuestion {
  createBy: string | null;
  createTime: string | null;
  id: number;
  no: number;
  options: HollandTestQuestionOption[];
  percent: number;
  remark: string | null;
  ruleCode: string;
  status: number;
  stepId: number;
  title: string;
  updateBy: string | null;
  updateTime: string | null;
}

export interface HollandTestQuestionOption {
  createBy: string | null;
  createTime: string | null;
  id: number;
  label: string;
  no: number;
  questionId: number;
  remark: string | null;
  status: number;
  updateBy: string | null;
  updateTime: string | null;
}

export interface TestStepVO {
  id: number;
  no: number;
  title: string;
  questions: TestQuestionVO[];
}
export interface TestQuestionVO {
  id: number;
  no: string;
  title: string;
  options: TestOptionVO[];
  answer?: string | number;
  multiple: boolean
}

export interface TestOptionVO {
  no: string;
  title: string;
  answer: string | number;
}