Skip to content

Commit 69a714c

Browse files
committed
Update database naming to snake casing
1 parent 39b3403 commit 69a714c

File tree

3 files changed

+25
-22
lines changed

3 files changed

+25
-22
lines changed

packages/nextjs/services/database/config/postgresClient.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ if (process.env.POSTGRES_URL?.includes(VERCEL_DB_STRING)) {
1414
connectionString: process.env.POSTGRES_URL,
1515
});
1616

17-
db = drizzle(pool, { schema });
17+
db = drizzle(pool, {
18+
schema,
19+
casing: "snake_case",
20+
});
1821

1922
pool.on("error", err => {
2023
console.error("Unexpected error on idle client", err);

packages/nextjs/services/database/config/schema.ts

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ export const eventTypeEnum = pgEnum("event_type_enum", ["challenge.submit", "cha
66
export const userRoleEnum = pgEnum("user_role_enum", ["user", "admin"]);
77

88
export const users = pgTable("users", {
9-
userAddress: varchar("userAddress", { length: 42 }).primaryKey(), // Ethereum wallet address
9+
userAddress: varchar("user_address", { length: 42 }).primaryKey(), // Ethereum wallet address
1010
role: userRoleEnum("role").default("user"), // Using the enum and setting default
11-
creationTimestamp: timestamp("creationTimestamp").defaultNow(),
11+
createdAt: timestamp("created_at").defaultNow(),
1212
email: varchar("email", { length: 255 }),
1313
telegram: varchar("telegram", { length: 255 }),
1414
twitter: varchar("twitter", { length: 255 }),
@@ -17,39 +17,39 @@ export const users = pgTable("users", {
1717

1818
export const challenges = pgTable("challenges", {
1919
id: varchar("id", { length: 255 }).primaryKey(), // Unique identifier for the challenge
20-
challengeName: varchar("challengeName", { length: 255 }).notNull(),
20+
challengeName: varchar("challenge_name", { length: 255 }).notNull(),
2121
github: varchar("github", { length: 255 }), // Repository reference for the challenge
2222
autograding: boolean("autograding").default(false), // Whether the challenge supports automatic grading
2323
});
2424

2525
export const userChallenges = pgTable("user_challenges", {
26-
userChallengeId: serial("userChallengeId").primaryKey(),
27-
userAddress: varchar("userAddress", { length: 42 })
26+
userChallengeId: serial("user_challenge_id").primaryKey(),
27+
userAddress: varchar("user_address", { length: 42 })
2828
.notNull()
2929
.references(() => users.userAddress),
30-
challengeId: varchar("challengeId", { length: 255 })
30+
challengeId: varchar("challenge_id", { length: 255 })
3131
.notNull()
3232
.references(() => challenges.id),
33-
frontendUrl: varchar("frontendUrl", { length: 255 }),
34-
contractUrl: varchar("contractUrl", { length: 255 }),
35-
reviewComment: text("reviewComment"), // Feedback provided during from the autograder
36-
submittedTimestamp: timestamp("submittedTimestamp").defaultNow(),
37-
reviewAction: reviewActionEnum("reviewAction"), // Final review decision from autograder (REJECTED or ACCEPTED)
33+
frontendUrl: varchar("frontend_url", { length: 255 }),
34+
contractUrl: varchar("contract_url", { length: 255 }),
35+
reviewComment: text("review_comment"), // Feedback provided during from the autograder
36+
submittedTimestamp: timestamp("submitted_at").defaultNow(),
37+
reviewAction: reviewActionEnum("review_action"), // Final review decision from autograder (REJECTED or ACCEPTED)
3838
});
3939

4040
export const events = pgTable("events", {
41-
eventId: serial("eventId").primaryKey(),
42-
eventType: eventTypeEnum("eventType").notNull(), // Type of event (challenge.submission, challenge.autograding, user.create)
43-
eventTimestamp: timestamp("eventTimestamp").defaultNow(), // Renamed for clarity
41+
eventId: serial("event_id").primaryKey(),
42+
eventType: eventTypeEnum("event_type").notNull(), // Type of event (challenge.submission, challenge.autograding, user.create)
43+
eventTimestamp: timestamp("event_at").defaultNow(), // Renamed for clarity
4444
signature: varchar("signature", { length: 255 }), // Cryptographic signature of the event
45-
userAddress: varchar("userAddress", { length: 42 })
45+
userAddress: varchar("user_address", { length: 42 })
4646
.notNull()
4747
.references(() => users.userAddress),
48-
challengeId: varchar("challengeId", { length: 255 }).references(() => challenges.id),
49-
frontendUrl: varchar("frontendUrl", { length: 255 }),
50-
contractUrl: varchar("contractUrl", { length: 255 }),
51-
reviewAction: reviewActionEnum("reviewAction"),
52-
reviewMessage: text("reviewMessage"),
48+
challengeId: varchar("challenge_id", { length: 255 }).references(() => challenges.id),
49+
frontendUrl: varchar("frontend_url", { length: 255 }),
50+
contractUrl: varchar("contract_url", { length: 255 }),
51+
reviewAction: reviewActionEnum("review_action"),
52+
reviewMessage: text("review_message"),
5353
});
5454

5555
export const usersRelations = relations(users, ({ many }) => ({

packages/nextjs/services/database/seed.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ async function seed() {
9595
.values({
9696
userAddress,
9797
role: "user", // Set everyone as user by default
98-
creationTimestamp: createValidDate(userData.creationTimestamp),
98+
createdAt: createValidDate(userData.creationTimestamp),
9999
email: userData.socialLinks?.email,
100100
telegram: userData.socialLinks?.telegram,
101101
twitter: userData.socialLinks?.twitter,

0 commit comments

Comments
 (0)