import { type TopicRegistry } from "../../types/lesson";
import {
  LINEAR_EQ_ONE_VAR_EASY,
  LINEAR_EQ_ONE_VAR_MEDIUM,
  LINEAR_EQ_ONE_VAR_HARD,
} from "./linear-equations-one-var";
import {
  LINEAR_EQ_TWO_VAR_EASY,
  LINEAR_EQ_TWO_VAR_MEDIUM,
  LINEAR_EQ_TWO_VAR_HARD,
} from "./linear-equations-two-var";
import {
  LINEAR_FUNC_EASY,
  LINEAR_FUNC_MEDIUM,
  LINEAR_FUNC_HARD,
} from "./linear-functions";
import {
  LINEAR_INEQ_EASY,
  LINEAR_INEQ_MEDIUM,
  LINEAR_INEQ_HARD,
} from "./linear-inequalities";
import {
  SYSTEMS_EASY,
  SYSTEMS_MEDIUM,
  SYSTEMS_HARD,
} from "./systems-linear-equations";
import {
  NONLINEAR_EQ_EASY,
  NONLINEAR_EQ_MEDIUM,
  NONLINEAR_EQ_HARD,
} from "./nonlinear-equations";
import {
  NONLINEAR_FUNC_EASY,
  NONLINEAR_FUNC_MEDIUM,
  NONLINEAR_FUNC_HARD,
} from "./nonlinear-functions";
import {
  EQUIV_EXPR_EASY,
  EQUIV_EXPR_MEDIUM,
  EQUIV_EXPR_HARD,
} from "./equivalent-expressions";
import { CIRCLES_EASY, CIRCLES_MEDIUM, CIRCLES_HARD } from "./circles";
import {
  RIGHT_TRI_TRIG_EASY,
  RIGHT_TRI_TRIG_MEDIUM,
  RIGHT_TRI_TRIG_HARD,
} from "./right-triangles-trig";
import {
  LINES_ANGLES_EASY,
  LINES_ANGLES_MEDIUM,
  LINES_ANGLES_HARD,
} from "./lines-angles-triangles";
import { AREA_VOL_EASY, AREA_VOL_MEDIUM, AREA_VOL_HARD } from "./area-volume";
import {
  RATIOS_EASY,
  RATIOS_MEDIUM,
  RATIOS_HARD,
} from "./ratios-rates-proportions";
import {
  PERCENTAGES_EASY,
  PERCENTAGES_MEDIUM,
  PERCENTAGES_HARD,
} from "./percentages";
import {
  ONE_VAR_DATA_EASY,
  ONE_VAR_DATA_MEDIUM,
  ONE_VAR_DATA_HARD,
} from "./one-variable-data";
import {
  TWO_VAR_DATA_EASY,
  TWO_VAR_DATA_MEDIUM,
  TWO_VAR_DATA_HARD,
} from "./two-variable-data";
import {
  PROBABILITY_EASY,
  PROBABILITY_MEDIUM,
  PROBABILITY_HARD,
} from "./probability";
import {
  EVAL_STATS_EASY,
  EVAL_STATS_MEDIUM,
  EVAL_STATS_HARD,
} from "./evaluating-statistical-claims";
import {
  SAMPLE_STATS_EASY,
  SAMPLE_STATS_MEDIUM,
  SAMPLE_STATS_HARD,
} from "./sample-statistics-moe";

export const MATH_TOPICS: TopicRegistry = {
  "linear-equations-one-var": {
    id: "linear-equations-one-var",
    name: "Linear Equations in One Variable",
    section: "math",
    category: "Algebra",
    color: "blue",
    questions: {
      easy: LINEAR_EQ_ONE_VAR_EASY,
      medium: LINEAR_EQ_ONE_VAR_MEDIUM,
      hard: LINEAR_EQ_ONE_VAR_HARD,
    },
  },
  "linear-equations-two-var": {
    id: "linear-equations-two-var",
    name: "Linear Equations in Two Variables",
    section: "math",
    category: "Algebra",
    color: "blue",
    questions: {
      easy: LINEAR_EQ_TWO_VAR_EASY,
      medium: LINEAR_EQ_TWO_VAR_MEDIUM,
      hard: LINEAR_EQ_TWO_VAR_HARD,
    },
  },
  "linear-functions": {
    id: "linear-functions",
    name: "Linear Functions",
    section: "math",
    category: "Algebra",
    color: "blue",
    questions: {
      easy: LINEAR_FUNC_EASY,
      medium: LINEAR_FUNC_MEDIUM,
      hard: LINEAR_FUNC_HARD,
    },
  },
  "linear-inequalities": {
    id: "linear-inequalities",
    name: "Linear Inequalities",
    section: "math",
    category: "Algebra",
    color: "blue",
    questions: {
      easy: LINEAR_INEQ_EASY,
      medium: LINEAR_INEQ_MEDIUM,
      hard: LINEAR_INEQ_HARD,
    },
  },
  "systems-linear-equations": {
    id: "systems-linear-equations",
    name: "Systems of Linear Equations",
    section: "math",
    category: "Algebra",
    color: "blue",
    questions: {
      easy: SYSTEMS_EASY,
      medium: SYSTEMS_MEDIUM,
      hard: SYSTEMS_HARD,
    },
  },
  "nonlinear-equations": {
    id: "nonlinear-equations",
    name: "Nonlinear Equations & Systems",
    section: "math",
    category: "Advanced Math",
    color: "violet",
    questions: {
      easy: NONLINEAR_EQ_EASY,
      medium: NONLINEAR_EQ_MEDIUM,
      hard: NONLINEAR_EQ_HARD,
    },
  },
  "nonlinear-functions": {
    id: "nonlinear-functions",
    name: "Nonlinear Functions",
    section: "math",
    category: "Advanced Math",
    color: "violet",
    questions: {
      easy: NONLINEAR_FUNC_EASY,
      medium: NONLINEAR_FUNC_MEDIUM,
      hard: NONLINEAR_FUNC_HARD,
    },
  },
  "equivalent-expressions": {
    id: "equivalent-expressions",
    name: "Equivalent Expressions",
    section: "math",
    category: "Advanced Math",
    color: "violet",
    questions: {
      easy: EQUIV_EXPR_EASY,
      medium: EQUIV_EXPR_MEDIUM,
      hard: EQUIV_EXPR_HARD,
    },
  },
  circles: {
    id: "circles",
    name: "Circles",
    section: "math",
    category: "Geometry & Trigonometry",
    color: "emerald",
    questions: {
      easy: CIRCLES_EASY,
      medium: CIRCLES_MEDIUM,
      hard: CIRCLES_HARD,
    },
  },
  "right-triangles-trig": {
    id: "right-triangles-trig",
    name: "Right Triangles & Trigonometry",
    section: "math",
    category: "Geometry & Trigonometry",
    color: "emerald",
    questions: {
      easy: RIGHT_TRI_TRIG_EASY,
      medium: RIGHT_TRI_TRIG_MEDIUM,
      hard: RIGHT_TRI_TRIG_HARD,
    },
  },
  "lines-angles-triangles": {
    id: "lines-angles-triangles",
    name: "Lines, Angles & Triangles",
    section: "math",
    category: "Geometry & Trigonometry",
    color: "emerald",
    questions: {
      easy: LINES_ANGLES_EASY,
      medium: LINES_ANGLES_MEDIUM,
      hard: LINES_ANGLES_HARD,
    },
  },
  "area-volume": {
    id: "area-volume",
    name: "Area & Volume",
    section: "math",
    category: "Geometry & Trigonometry",
    color: "emerald",
    questions: {
      easy: AREA_VOL_EASY,
      medium: AREA_VOL_MEDIUM,
      hard: AREA_VOL_HARD,
    },
  },
  "ratios-rates-proportions": {
    id: "ratios-rates-proportions",
    name: "Ratios, Rates & Proportions",
    section: "math",
    category: "Data Analysis",
    color: "amber",
    questions: { easy: RATIOS_EASY, medium: RATIOS_MEDIUM, hard: RATIOS_HARD },
  },
  percentages: {
    id: "percentages",
    name: "Percentages",
    section: "math",
    category: "Data Analysis",
    color: "amber",
    questions: {
      easy: PERCENTAGES_EASY,
      medium: PERCENTAGES_MEDIUM,
      hard: PERCENTAGES_HARD,
    },
  },
  "one-variable-data": {
    id: "one-variable-data",
    name: "One-Variable Data",
    section: "math",
    category: "Data Analysis",
    color: "amber",
    questions: {
      easy: ONE_VAR_DATA_EASY,
      medium: ONE_VAR_DATA_MEDIUM,
      hard: ONE_VAR_DATA_HARD,
    },
  },
  "two-variable-data": {
    id: "two-variable-data",
    name: "Two-Variable Data",
    section: "math",
    category: "Data Analysis",
    color: "amber",
    questions: {
      easy: TWO_VAR_DATA_EASY,
      medium: TWO_VAR_DATA_MEDIUM,
      hard: TWO_VAR_DATA_HARD,
    },
  },
  probability: {
    id: "probability",
    name: "Probability",
    section: "math",
    category: "Data Analysis",
    color: "amber",
    questions: {
      easy: PROBABILITY_EASY,
      medium: PROBABILITY_MEDIUM,
      hard: PROBABILITY_HARD,
    },
  },
  "evaluating-statistical-claims": {
    id: "evaluating-statistical-claims",
    name: "Evaluating Statistical Claims",
    section: "math",
    category: "Data Analysis",
    color: "amber",
    questions: {
      easy: EVAL_STATS_EASY,
      medium: EVAL_STATS_MEDIUM,
      hard: EVAL_STATS_HARD,
    },
  },
  "sample-statistics-moe": {
    id: "sample-statistics-moe",
    name: "Sample Statistics & Margin of Error",
    section: "math",
    category: "Data Analysis",
    color: "amber",
    questions: {
      easy: SAMPLE_STATS_EASY,
      medium: SAMPLE_STATS_MEDIUM,
      hard: SAMPLE_STATS_HARD,
    },
  },
};
