Skip to content

Commit

Permalink
feat: updated schema file
Browse files Browse the repository at this point in the history
  • Loading branch information
kujo205 committed Feb 5, 2024
1 parent 3d13787 commit 58e4fc5
Showing 1 changed file with 33 additions and 30 deletions.
63 changes: 33 additions & 30 deletions src/server/db/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,23 @@ import { type AdapterAccount } from "next-auth/adapters";

export const mysqlTable = mysqlTableCreator((name) => `kujo205-blog_${name}`);

export const postTags = mysqlTable("postTag", {
id: bigint("id", { mode: "number" }).primaryKey().autoincrement(),
export const users = mysqlTable("user", {
id: varchar("id", { length: 255 }).notNull().primaryKey(),
name: varchar("name", { length: 255 }),
email: varchar("email", { length: 255 }).notNull(),
emailVerified: timestamp("emailVerified", {
mode: "date",
fsp: 3,
}).defaultNow(),
image: varchar("image", { length: 255 }),
role: mysqlEnum("role", ["ADMIN", "COMMENTATOR"]).default("COMMENTATOR"),
});

export const blogPoTagsRelations = relations(postTags, ({ many }) => ({
blogPost: many(blogPosts),
export const usersRelations = relations(users, ({ many }) => ({
blogPosts: many(blogPosts),
comments: many(comments),
sessions: many(sessions),
verificationTokens: many(verificationTokens),
}));

export const blogPosts = mysqlTable("blogPost", {
Expand All @@ -35,21 +45,33 @@ export const blogPosts = mysqlTable("blogPost", {
});

export const blogPostsRelations = relations(blogPosts, ({ one, many }) => ({
user: one(users),
user: many(users),
comments: many(comments),
tags: many(postTags),
tags: many(blogPostTags),
}));

export const blogPostTags = mysqlTable("postTag", {
id: bigint("id", { mode: "number" }).primaryKey().autoincrement(),
name: varchar("name", { length: 255 }),
});

export const blogPoTagsRelations = relations(blogPostTags, ({ many }) => ({
blogPost: many(blogPosts),
}));

export const blogPostsTags = mysqlTable("blogPostTag", {
export const tagsToBlogPosts = mysqlTable("tagsToBlogPosts", {
id: bigint("id", { mode: "number" }).primaryKey().autoincrement(),
blogPostId: bigint("blogPostId", { mode: "number" }).notNull(),
tagId: bigint("tagId", { mode: "number" }).notNull(),
});

export const blogPostsTagsRelations = relations(blogPostsTags, ({ one }) => ({
blogPost: one(blogPosts),
tag: one(blogPostsTags),
}));
export const tagsToBlogPostsRelations = relations(
tagsToBlogPosts,
({ one }) => ({
blogPost: one(blogPosts),
tag: one(blogPostTags),
}),
);

export const comments = mysqlTable("comment", {
id: bigint("id", { mode: "number" }).primaryKey().autoincrement(),
Expand All @@ -62,25 +84,6 @@ export const commentsRelations = relations(comments, ({ one, many }) => ({
replyTo: one(comments),
}));

export const users = mysqlTable("user", {
id: varchar("id", { length: 255 }).notNull().primaryKey(),
name: varchar("name", { length: 255 }),
email: varchar("email", { length: 255 }).notNull(),
emailVerified: timestamp("emailVerified", {
mode: "date",
fsp: 3,
}).defaultNow(),
image: varchar("image", { length: 255 }),
role: mysqlEnum("role", ["ADMIN", "COMMENTATOR"]).default("COMMENTATOR"),
});

export const usersRelations = relations(users, ({ many }) => ({
blogPosts: many(blogPosts),
comments: many(comments),
sessions: many(sessions),
verificationTokens: many(verificationTokens),
}));

export const accounts = mysqlTable(
"account",
{
Expand Down

0 comments on commit 58e4fc5

Please sign in to comment.