Skip to content

Commit 68fa0d8

Browse files
authored
fix(server)!: update convex schemas (#31)
1 parent a9f5aee commit 68fa0d8

7 files changed

Lines changed: 29 additions & 30 deletions

File tree

packages/server/convex/courseOfferings.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export const getCourseOfferingsByTerm = protectedQuery({
3232

3333
export const getCourseOfferingsByCourseTerm = protectedQuery({
3434
args: {
35-
courseId: v.id("courses"),
35+
courseCode: v.string(),
3636
term: v.union(
3737
v.literal("spring"),
3838
v.literal("summer"),
@@ -46,7 +46,7 @@ export const getCourseOfferingsByCourseTerm = protectedQuery({
4646
.query("courseOfferings")
4747
.withIndex("by_course_term_section", (q) =>
4848
q
49-
.eq("courseId", args.courseId)
49+
.eq("courseCode", args.courseCode)
5050
.eq("term", args.term)
5151
.eq("year", args.year),
5252
)
@@ -68,7 +68,7 @@ export const upsertCourseOfferingInternal = internalMutation({
6868
.query("courseOfferings")
6969
.withIndex("by_course_term_section", (q) =>
7070
q
71-
.eq("courseId", args.courseId)
71+
.eq("courseCode", args.courseCode)
7272
.eq("term", args.term)
7373
.eq("year", args.year)
7474
.eq("section", args.section),

packages/server/convex/http.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,7 @@ export const ZDeletePrerequisites = z.object({
114114
});
115115

116116
export const ZUpsertCourseOffering = z.object({
117-
courseId: z.pipe(
118-
z.string(),
119-
z.transform((val) => val as Id<"courses">),
120-
),
117+
courseCode: z.string(),
121118
title: z.string(),
122119
section: z.string(),
123120
year: z.number(),

packages/server/convex/schema.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ export default defineSchema({
1515
.index("by_program_level", ["program", "level"]),
1616
prerequisites: defineTable(prerequisites).index("by_course", ["courseId"]),
1717
courseOfferings: defineTable(courseOfferings)
18-
.index("by_course", ["courseId"])
18+
.index("by_course_code", ["courseCode"])
1919
.index("by_term_year", ["term", "year"])
20-
.index("by_course_term_section", ["courseId", "term", "year", "section"]),
20+
.index("by_course_term_section", ["courseCode", "term", "year", "section"]),
2121
userCourses: defineTable(userCourses).index("by_user", ["userId"]),
2222
userCourseOfferings: defineTable(userCourseOfferings).index("by_user", [
2323
"userId",

packages/server/convex/schemas/courseOfferings.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { v } from "convex/values";
22

33
const courseOfferings = {
4-
courseId: v.id("courses"),
4+
courseCode: v.string(), // course code
55
title: v.string(),
66
section: v.string(),
77
year: v.number(), // 2025
@@ -31,12 +31,12 @@ const courseOfferings = {
3131
v.literal("closed"),
3232
v.literal("waitlist"),
3333
),
34-
waitlistNum: v.number(),
34+
waitlistNum: v.optional(v.number()),
3535
};
3636

3737
const userCourseOfferings = {
3838
userId: v.string(),
39-
courseOffering: v.id("courseOfferings"),
39+
courseOfferingId: v.id("courseOfferings"),
4040
alternativeOf: v.optional(v.id("userCourseOfferings")),
4141
};
4242

packages/server/convex/schemas/courses.ts

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,22 @@ const userCourses = {
4040
v.literal("fall"),
4141
v.literal("j-term"),
4242
),
43-
grade: v.union(
44-
v.literal("a"),
45-
v.literal("a-"),
46-
v.literal("b+"),
47-
v.literal("b"),
48-
v.literal("b-"),
49-
v.literal("c+"),
50-
v.literal("c"),
51-
v.literal("c-"),
52-
v.literal("d+"),
53-
v.literal("d"),
54-
v.literal("p"),
55-
v.literal("f"),
56-
v.literal("w"),
43+
grade: v.optional(
44+
v.union(
45+
v.literal("a"),
46+
v.literal("a-"),
47+
v.literal("b+"),
48+
v.literal("b"),
49+
v.literal("b-"),
50+
v.literal("c+"),
51+
v.literal("c"),
52+
v.literal("c-"),
53+
v.literal("d+"),
54+
v.literal("d"),
55+
v.literal("p"),
56+
v.literal("f"),
57+
v.literal("w"),
58+
),
5759
),
5860
};
5961

packages/server/convex/schemas/programs.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ const requirements = v.union(
2626
courses: v.array(v.string()), // course code
2727
courseLevels: v.array(
2828
v.object({
29-
program: v.string(),
30-
level: v.number(),
29+
program: v.string(), // CSCI-UA
30+
level: v.number(), // 400
3131
}),
3232
), // course levels
3333
creditsRequired: v.number(),

packages/server/convex/userCourseOfferings.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export const addUserCourseOffering = protectedMutation({
1919
const existing = await ctx.db
2020
.query("userCourseOfferings")
2121
.withIndex("by_user", (q) => q.eq("userId", ctx.user.subject))
22-
.filter((q) => q.eq(q.field("courseOffering"), args.courseOffering))
22+
.filter((q) => q.eq(q.field("courseOfferingId"), args.courseOfferingId))
2323
.unique();
2424

2525
if (existing) {
@@ -28,7 +28,7 @@ export const addUserCourseOffering = protectedMutation({
2828

2929
return await ctx.db.insert("userCourseOfferings", {
3030
userId: ctx.user.subject,
31-
courseOffering: args.courseOffering,
31+
courseOfferingId: args.courseOfferingId,
3232
alternativeOf: args.alternativeOf,
3333
});
3434
},

0 commit comments

Comments
 (0)