diff --git a/apps/api/src/schema/ap-exams.ts b/apps/api/src/schema/ap-exams.ts index aeec236b..62dd0df4 100644 --- a/apps/api/src/schema/ap-exams.ts +++ b/apps/api/src/schema/ap-exams.ts @@ -1,7 +1,7 @@ import { z } from "@hono/zod-openapi"; import type { APCoursesGrantedTree } from "@packages/db/schema"; -import { geCategories } from "./lib"; +import { inputGECategories } from "./lib"; export const apExamsQuerySchema = z.object({ fullName: z.string().optional().openapi({ @@ -55,7 +55,7 @@ export const apExamsRewardSchema = z.object({ description: "The number of units granted as generic elective credit (but not from any course) for this reward", }), - geGranted: z.record(z.enum(geCategories), z.number().int().nonnegative()).openapi({ + geGranted: z.record(z.enum(inputGECategories), z.number().int().nonnegative()).openapi({ description: "Courses in GE categories granted directly by this reward and not through any course", }), diff --git a/apps/api/src/schema/courses.ts b/apps/api/src/schema/courses.ts index 8c6191ab..41f8e5dc 100644 --- a/apps/api/src/schema/courses.ts +++ b/apps/api/src/schema/courses.ts @@ -1,6 +1,7 @@ import { z } from "@hono/zod-openapi"; import type { PrerequisiteTree } from "@packages/db/schema"; import { instructorPreviewSchema } from "./instructors"; +import { inputGECategories } from "./lib"; export const inputCourseLevels = ["LowerDiv", "UpperDiv", "Graduate"] as const; @@ -8,19 +9,6 @@ export const inputCourseLevelSchema = z.enum(inputCourseLevels, { message: "If provided, 'courseLevel' must be 'LowerDiv', 'UpperDiv', or 'Graduate'", }); -export const inputGECategories = [ - "GE-1A", - "GE-1B", - "GE-2", - "GE-3", - "GE-4", - "GE-5A", - "GE-5B", - "GE-6", - "GE-7", - "GE-8", -] as const; - export const outputCourseLevels = [ "Lower Division (1-99)", "Upper Division (100-199)", diff --git a/apps/api/src/schema/grades.ts b/apps/api/src/schema/grades.ts index 56f9cc50..47ef41fd 100644 --- a/apps/api/src/schema/grades.ts +++ b/apps/api/src/schema/grades.ts @@ -1,6 +1,6 @@ import { z } from "@hono/zod-openapi"; import { courseLevels, terms } from "@packages/db/schema"; -import { geCategories, yearSchema } from "./lib"; +import { inputGECategories, yearSchema } from "./lib"; export const gradesQuerySchema = z.object({ year: yearSchema.optional(), @@ -28,7 +28,7 @@ export const gradesQuerySchema = z.object({ .optional() .transform((x) => (x === "ANY" ? undefined : x)), ge: z - .enum(geCategories) + .enum(inputGECategories) .optional() .or(z.literal("ANY")) .transform((x) => (x === "ANY" ? undefined : x)), @@ -49,7 +49,7 @@ export const rawGradeSchema = z.object({ department: z.string(), courseNumber: z.string(), courseNumeric: z.number(), - geCategories: z.enum(geCategories).array(), + geCategories: z.enum(inputGECategories).array(), instructors: z.string().array(), gradeACount: z.number(), gradeBCount: z.number(), @@ -78,7 +78,7 @@ export const aggregateGradesSchema = z.object({ department: z.string(), courseNumber: z.string(), courseNumeric: z.number(), - geCategories: z.enum(geCategories).array(), + geCategories: z.enum(inputGECategories).array(), instructors: z.string().array(), }) .array(), diff --git a/apps/api/src/schema/index.ts b/apps/api/src/schema/index.ts index c53af078..11571eac 100644 --- a/apps/api/src/schema/index.ts +++ b/apps/api/src/schema/index.ts @@ -12,4 +12,4 @@ export * from "./search"; export * from "./study-rooms"; export * from "./websoc"; export * from "./week"; -export { geCategories } from "./lib"; +export { inputGECategories } from "./lib"; diff --git a/apps/api/src/schema/lib/course.ts b/apps/api/src/schema/lib/course.ts index a2447c58..82ed9c65 100644 --- a/apps/api/src/schema/lib/course.ts +++ b/apps/api/src/schema/lib/course.ts @@ -52,7 +52,7 @@ export const courseNumberSchema = z.string().transform(courseNumberTransform).op example: "46,6B,51-53", }); -export const geCategories = [ +export const inputGECategories = [ "GE-1A", "GE-1B", "GE-2", diff --git a/apps/api/src/schema/search.ts b/apps/api/src/schema/search.ts index d23628b0..5ba61642 100644 --- a/apps/api/src/schema/search.ts +++ b/apps/api/src/schema/search.ts @@ -1,6 +1,7 @@ import { z } from "@hono/zod-openapi"; -import { courseSchema, inputCourseLevelSchema, inputGECategories } from "./courses.ts"; +import { courseSchema, inputCourseLevelSchema } from "./courses.ts"; import { instructorSchema } from "./instructors.ts"; +import { inputGECategories } from "./lib"; export const searchQuerySchema = z.object({ query: z.string({ message: "Parameter 'query' is required" }),