Index: database/drizzle/schema/builds.ts
===================================================================
--- database/drizzle/schema/builds.ts	(revision c30935a5f027dac0916111525d007c79078ea267)
+++ database/drizzle/schema/builds.ts	(revision b69759dc4c8f1a000afc0d0c5c5afcc6868641fb)
@@ -3,5 +3,5 @@
 import { componentsTable } from "./components";
 
-export const buildTable = pgTable("build", {
+export const buildsTable = pgTable("build", {
     id: serial("id").primaryKey(),
     userId: integer("user_id")
@@ -15,8 +15,8 @@
 });
 
-export const buildComponentTable = pgTable("build_component", {
+export const buildComponentsTable = pgTable("build_component", {
         buildId: integer("build_id")
             .notNull()
-            .references(() => buildTable.id, { onDelete: "cascade", onUpdate: "cascade" }),
+            .references(() => buildsTable.id, { onDelete: "cascade", onUpdate: "cascade" }),
         componentId: integer("component_id")
             .notNull()
@@ -28,8 +28,8 @@
 );
 
-export const favoriteBuildTable = pgTable("favorite_build", {
+export const favoriteBuildsTable = pgTable("favorite_build", {
         buildId: integer("build_id")
             .notNull()
-            .references(() => buildTable.id, { onDelete: "cascade", onUpdate: "cascade" }),
+            .references(() => buildsTable.id, { onDelete: "cascade", onUpdate: "cascade" }),
         userId: integer("user_id")
             .notNull()
@@ -41,8 +41,8 @@
 );
 
-export const ratingBuildTable = pgTable("rating_build", {
+export const ratingBuildsTable = pgTable("rating_build", {
         buildId: integer("build_id")
             .notNull()
-            .references(() => buildTable.id, { onDelete: "cascade", onUpdate: "cascade" }),
+            .references(() => buildsTable.id, { onDelete: "cascade", onUpdate: "cascade" }),
         userId: integer("user_id")
             .notNull()
@@ -55,10 +55,10 @@
 );
 
-export const reviewTable = pgTable("review", {
+export const reviewsTable = pgTable("review", {
     id: serial("id").primaryKey(),
 
     buildId: integer("build_id")
         .notNull()
-        .references(() => buildTable.id, { onDelete: "cascade", onUpdate: "cascade" }),
+        .references(() => buildsTable.id, { onDelete: "cascade", onUpdate: "cascade" }),
     userId: integer("user_id")
         .notNull()
@@ -68,16 +68,16 @@
 });
 
-export type buildItem = typeof buildTable.$inferSelect;
-export type buildInsert = typeof buildTable.$inferInsert;
+export type buildItem = typeof buildsTable.$inferSelect;
+export type buildInsert = typeof buildsTable.$inferInsert;
 
-export type buildComponentItem = typeof buildComponentTable.$inferSelect;
-export type buildComponentInsert = typeof buildComponentTable.$inferInsert;
+export type buildComponentItem = typeof buildComponentsTable.$inferSelect;
+export type buildComponentInsert = typeof buildComponentsTable.$inferInsert;
 
-export type favoriteBuildItem = typeof favoriteBuildTable.$inferSelect;
-export type favoriteBuildInsert = typeof favoriteBuildTable.$inferInsert;
+export type favoriteBuildItem = typeof favoriteBuildsTable.$inferSelect;
+export type favoriteBuildInsert = typeof favoriteBuildsTable.$inferInsert;
 
-export type ratingBuildItem = typeof ratingBuildTable.$inferSelect;
-export type ratingBuildInsert = typeof ratingBuildTable.$inferInsert;
+export type ratingBuildItem = typeof ratingBuildsTable.$inferSelect;
+export type ratingBuildInsert = typeof ratingBuildsTable.$inferInsert;
 
-export type reviewItem = typeof reviewTable.$inferSelect;
-export type reviewInsert = typeof reviewTable.$inferInsert;
+export type reviewItem = typeof reviewsTable.$inferSelect;
+export type reviewInsert = typeof reviewsTable.$inferInsert;
Index: database/drizzle/schema/components.ts
===================================================================
--- database/drizzle/schema/components.ts	(revision c30935a5f027dac0916111525d007c79078ea267)
+++ database/drizzle/schema/components.ts	(revision b69759dc4c8f1a000afc0d0c5c5afcc6868641fb)
@@ -53,5 +53,5 @@
 });
 
-export const pcCaseTable = pgTable("pc_case", {
+export const pcCasesTable = pgTable("pc_case", {
     componentId: integer("component_id")
         .primaryKey()
@@ -65,6 +65,7 @@
         caseId: integer("case_id")
             .notNull()
-            .references(() => pcCaseTable.componentId, {onDelete: "cascade", onUpdate: "cascade" }),
+            .references(() => pcCasesTable.componentId, {onDelete: "cascade", onUpdate: "cascade" }),
         formFactor: text("form_factor").notNull(),
+        num_slots: integer("num_slots").notNull(),
     },
     (t) => ({
@@ -76,5 +77,5 @@
         caseId: integer("case_id")
             .notNull()
-            .references(() => pcCaseTable.componentId, { onDelete: "cascade", onUpdate: "cascade"}),
+            .references(() => pcCasesTable.componentId, { onDelete: "cascade", onUpdate: "cascade"}),
         formFactor: text("form_factor").notNull(),
     },
@@ -87,5 +88,5 @@
         caseId: integer("case_id")
             .notNull()
-            .references(() => pcCaseTable.componentId, { onDelete: "cascade", onUpdate: "cascade"}),
+            .references(() => pcCasesTable.componentId, { onDelete: "cascade", onUpdate: "cascade"}),
         formFactor: text("form_factor").notNull(),
     },
@@ -95,5 +96,5 @@
 );
 
-export const coolerTable = pgTable("cooler", {
+export const coolersTable = pgTable("cooler", {
     componentId: integer("component_id")
         .primaryKey()
@@ -108,5 +109,5 @@
         cooler_id: integer("cooler_id")
             .notNull()
-            .references(() => coolerTable.componentId, { onDelete: "cascade", onUpdate: "cascade" }),
+            .references(() => coolersTable.componentId, { onDelete: "cascade", onUpdate: "cascade" }),
         socket: text("socket").notNull(),
     },
@@ -116,5 +117,5 @@
 );
 
-export const motherboardTable = pgTable("motherboard", {
+export const motherboardsTable = pgTable("motherboard", {
     componentId: integer("component_id")
         .primaryKey()
@@ -139,5 +140,5 @@
 
 // Other Components
-export const memoryCardTable = pgTable("memory_card", {
+export const memoryCardsTable = pgTable("memory_card", {
     componentId: integer("component_id")
         .primaryKey()
@@ -147,5 +148,5 @@
 });
 
-export const opticalDriveTable = pgTable("optical_drive", {
+export const opticalDrivesTable = pgTable("optical_drive", {
     componentId: integer("component_id")
         .primaryKey()
@@ -158,5 +159,5 @@
 });
 
-export const soundCardTable = pgTable("sound_card", {
+export const soundCardsTable = pgTable("sound_card", {
     componentId: integer("component_id")
         .primaryKey()
@@ -166,17 +167,6 @@
     chipset: text("chipset").notNull(),
     interface: text("interface").notNull(),
-});
-
-// SoundCard multi-values
-export const soundCardChannelsTable = pgTable("sound_card_channels", {
-        soundCardId: integer("sound_card_id")
-            .notNull()
-            .references(() => soundCardTable.componentId, { onDelete: "cascade", onUpdate: "cascade" }),
-        channel: text("channel").notNull(),
-    },
-    (t) => ({
-        pk: primaryKey({ columns: [t.soundCardId, t.channel] }),
-    })
-);
+    channel: text("channel").notNull(),
+});
 
 export const cablesTable = pgTable("cables", {
@@ -188,5 +178,5 @@
 });
 
-export const networkAdapterTable = pgTable("network_adapter", {
+export const networkAdaptersTable = pgTable("network_adapter", {
     componentId: integer("component_id")
         .primaryKey()
@@ -197,5 +187,5 @@
 });
 
-export const networkCardTable = pgTable("network_card", {
+export const networkCardsTable = pgTable("network_card", {
     componentId: integer("component_id")
         .primaryKey()
@@ -221,6 +211,6 @@
 export type powerSupplyInsert = typeof powerSupplyTable.$inferInsert;
 
-export type caseItem = typeof pcCaseTable.$inferSelect;
-export type caseInsert = typeof pcCaseTable.$inferInsert;
+export type caseItem = typeof pcCasesTable.$inferSelect;
+export type caseInsert = typeof pcCasesTable.$inferInsert;
 
 export type caseStorageFormFactorsItem = typeof caseStorageFormFactorsTable.$inferSelect;
@@ -233,35 +223,32 @@
 export type caseMoboFormFactorsInsert = typeof caseMoboFormFactorsTable.$inferInsert;
 
-export type coolerItem = typeof coolerTable.$inferSelect;
-export type coolerInsert = typeof coolerTable.$inferInsert;
+export type coolerItem = typeof coolersTable.$inferSelect;
+export type coolerInsert = typeof coolersTable.$inferInsert;
 
 export type coolerCPUSocketsItem = typeof coolerCPUSocketsTable.$inferSelect;
 export type coolerCPUSocketsInsert = typeof coolerCPUSocketsTable.$inferInsert;
 
-export type motherboardItem = typeof motherboardTable.$inferSelect;
-export type motherboardInsert = typeof motherboardTable.$inferInsert;
+export type motherboardItem = typeof motherboardsTable.$inferSelect;
+export type motherboardInsert = typeof motherboardsTable.$inferInsert;
 
 export type storageItem = typeof storageTable.$inferSelect;
 export type storageInsert = typeof storageTable.$inferInsert
 
-export type memoryCardItem = typeof memoryCardTable.$inferSelect;
-export type memoryCardInsert = typeof memoryCardTable.$inferInsert;
-
-export type opticalDriveItem = typeof opticalDriveTable.$inferSelect;
-export type opticalDriveInsert = typeof opticalDriveTable.$inferInsert;
-
-export type soundCardItem = typeof soundCardTable.$inferSelect;
-export type soundCardInsert = typeof soundCardTable.$inferInsert;
-
-export type soundCardChannelsItem = typeof soundCardChannelsTable.$inferSelect;
-export type soundCardChannelsInsert = typeof soundCardChannelsTable.$inferInsert;
+export type memoryCardItem = typeof memoryCardsTable.$inferSelect;
+export type memoryCardInsert = typeof memoryCardsTable.$inferInsert;
+
+export type opticalDriveItem = typeof opticalDrivesTable.$inferSelect;
+export type opticalDriveInsert = typeof opticalDrivesTable.$inferInsert;
+
+export type soundCardItem = typeof soundCardsTable.$inferSelect;
+export type soundCardInsert = typeof soundCardsTable.$inferInsert;
 
 export type cablesItem = typeof cablesTable.$inferSelect;
 export type cablesInsert = typeof cablesTable.$inferInsert;
 
-export type networkAdapterItem = typeof networkAdapterTable.$inferSelect;
-export type networkAdapterInsert = typeof networkAdapterTable.$inferInsert;
-
-export type networkCardItem = typeof networkCardTable.$inferSelect;
-export type networkCardInsert = typeof networkCardTable.$inferInsert;
-
+export type networkAdapterItem = typeof networkAdaptersTable.$inferSelect;
+export type networkAdapterInsert = typeof networkAdaptersTable.$inferInsert;
+
+export type networkCardItem = typeof networkCardsTable.$inferSelect;
+export type networkCardInsert = typeof networkCardsTable.$inferInsert;
+
Index: database/drizzle/schema/relations.ts
===================================================================
--- database/drizzle/schema/relations.ts	(revision c30935a5f027dac0916111525d007c79078ea267)
+++ database/drizzle/schema/relations.ts	(revision b69759dc4c8f1a000afc0d0c5c5afcc6868641fb)
@@ -7,28 +7,27 @@
     memoryTable,
     powerSupplyTable,
-    pcCaseTable,
+    pcCasesTable,
     caseStorageFormFactorsTable,
     casePsFormFactorsTable,
     caseMoboFormFactorsTable,
-    coolerTable,
+    coolersTable,
     coolerCPUSocketsTable,
-    motherboardTable,
+    motherboardsTable,
     storageTable,
-    memoryCardTable,
-    opticalDriveTable,
-    soundCardTable,
-    soundCardChannelsTable,
+    memoryCardsTable,
+    opticalDrivesTable,
+    soundCardsTable,
     cablesTable,
-    networkAdapterTable,
-    networkCardTable,
+    networkAdaptersTable,
+    networkCardsTable,
 
 } from "./components";
 
 import {
-    buildTable,
-    buildComponentTable,
-    favoriteBuildTable,
-    ratingBuildTable,
-    reviewTable
+    buildsTable,
+    buildComponentsTable,
+    favoriteBuildsTable,
+    ratingBuildsTable,
+    reviewsTable
 } from "./builds"
 
@@ -40,8 +39,8 @@
 
 export const usersRelations = relations(usersTable, ({ many, one }) => ({
-    builds: many(buildTable),
-    reviews: many(reviewTable),
-    favorites: many(favoriteBuildTable),
-    ratings: many(ratingBuildTable),
+    builds: many(buildsTable),
+    reviews: many(reviewsTable),
+    favorites: many(favoriteBuildsTable),
+    ratings: many(ratingBuildsTable),
     suggestions: many(suggestionsTable),
     adminProfile: one(adminsTable, {
@@ -70,61 +69,61 @@
 }));
 
-export const buildRelations = relations(buildTable, ({ one, many }) => ({
+export const buildRelations = relations(buildsTable, ({ one, many }) => ({
     owner: one(usersTable, {
-        fields: [buildTable.userId],
-        references: [usersTable.id],
-    }),
-    buildComponents: many(buildComponentTable),
-    favorites: many(favoriteBuildTable),
-    ratings: many(ratingBuildTable),
-    reviews: many(reviewTable),
-}));
-
-export const buildComponentRelations = relations(buildComponentTable, ({ one }) => ({
-    build: one(buildTable, {
-        fields: [buildComponentTable.buildId],
-        references: [buildTable.id],
-    }),
-    component: one(componentsTable, {
-        fields: [buildComponentTable.componentId],
-        references: [componentsTable.id],
-    }),
-}));
-
-export const favoriteBuildRelations = relations(favoriteBuildTable, ({ one }) => ({
+        fields: [buildsTable.userId],
+        references: [usersTable.id],
+    }),
+    buildComponents: many(buildComponentsTable),
+    favorites: many(favoriteBuildsTable),
+    ratings: many(ratingBuildsTable),
+    reviews: many(reviewsTable),
+}));
+
+export const buildComponentRelations = relations(buildComponentsTable, ({ one }) => ({
+    build: one(buildsTable, {
+        fields: [buildComponentsTable.buildId],
+        references: [buildsTable.id],
+    }),
+    component: one(componentsTable, {
+        fields: [buildComponentsTable.componentId],
+        references: [componentsTable.id],
+    }),
+}));
+
+export const favoriteBuildRelations = relations(favoriteBuildsTable, ({ one }) => ({
     user: one(usersTable, {
-        fields: [favoriteBuildTable.userId],
-        references: [usersTable.id],
-    }),
-    build: one(buildTable, {
-        fields: [favoriteBuildTable.buildId],
-        references: [buildTable.id],
-    }),
-}));
-
-export const ratingBuildRelations = relations(ratingBuildTable, ({ one }) => ({
+        fields: [favoriteBuildsTable.userId],
+        references: [usersTable.id],
+    }),
+    build: one(buildsTable, {
+        fields: [favoriteBuildsTable.buildId],
+        references: [buildsTable.id],
+    }),
+}));
+
+export const ratingBuildRelations = relations(ratingBuildsTable, ({ one }) => ({
     user: one(usersTable, {
-        fields: [ratingBuildTable.userId],
-        references: [usersTable.id],
-    }),
-    build: one(buildTable, {
-        fields: [ratingBuildTable.buildId],
-        references: [buildTable.id],
-    }),
-}));
-
-export const reviewRelations = relations(reviewTable, ({ one }) => ({
+        fields: [ratingBuildsTable.userId],
+        references: [usersTable.id],
+    }),
+    build: one(buildsTable, {
+        fields: [ratingBuildsTable.buildId],
+        references: [buildsTable.id],
+    }),
+}));
+
+export const reviewRelations = relations(reviewsTable, ({ one }) => ({
     author: one(usersTable, {
-        fields: [reviewTable.userId],
-        references: [usersTable.id],
-    }),
-    build: one(buildTable, {
-        fields: [reviewTable.buildId],
-        references: [buildTable.id],
+        fields: [reviewsTable.userId],
+        references: [usersTable.id],
+    }),
+    build: one(buildsTable, {
+        fields: [reviewsTable.buildId],
+        references: [buildsTable.id],
     }),
 }));
 
 export const componentsRelations = relations(componentsTable, ({ many, one }) => ({
-    buildComponents: many(buildComponentTable),
+    buildComponents: many(buildComponentsTable),
 
     cpu: one(CPUTable, {
@@ -144,15 +143,15 @@
         references: [powerSupplyTable.componentId]
     }),
-    pcCase: one(pcCaseTable, {
-        fields: [componentsTable.id],
-        references: [pcCaseTable.componentId]
-    }),
-    cooler: one(coolerTable, {
-        fields: [componentsTable.id],
-        references: [coolerTable.componentId]
-    }),
-    motherboard: one(motherboardTable, {
-        fields: [componentsTable.id],
-        references: [motherboardTable.componentId]
+    pcCase: one(pcCasesTable, {
+        fields: [componentsTable.id],
+        references: [pcCasesTable.componentId]
+    }),
+    cooler: one(coolersTable, {
+        fields: [componentsTable.id],
+        references: [coolersTable.componentId]
+    }),
+    motherboard: one(motherboardsTable, {
+        fields: [componentsTable.id],
+        references: [motherboardsTable.componentId]
     }),
     storage: one(storageTable, {
@@ -160,15 +159,15 @@
         references: [storageTable.componentId]
     }),
-    memoryCard: one(memoryCardTable, {
-        fields: [componentsTable.id],
-        references: [memoryCardTable.componentId]
-    }),
-    opticalDrive: one(opticalDriveTable, {
-        fields: [componentsTable.id],
-        references: [opticalDriveTable.componentId]
-    }),
-    soundCard: one(soundCardTable, {
-        fields: [componentsTable.id],
-        references: [soundCardTable.componentId]
+    memoryCard: one(memoryCardsTable, {
+        fields: [componentsTable.id],
+        references: [memoryCardsTable.componentId]
+    }),
+    opticalDrive: one(opticalDrivesTable, {
+        fields: [componentsTable.id],
+        references: [opticalDrivesTable.componentId]
+    }),
+    soundCard: one(soundCardsTable, {
+        fields: [componentsTable.id],
+        references: [soundCardsTable.componentId]
     }),
     cables: one(cablesTable, {
@@ -176,11 +175,11 @@
         references: [cablesTable.componentId]
     }),
-    networkAdapter: one(networkAdapterTable, {
-        fields: [componentsTable.id],
-        references: [networkAdapterTable.componentId]
-    }),
-    networkCard: one(networkCardTable, {
-        fields: [componentsTable.id],
-        references: [networkCardTable.componentId]
+    networkAdapter: one(networkAdaptersTable, {
+        fields: [componentsTable.id],
+        references: [networkAdaptersTable.componentId]
+    }),
+    networkCard: one(networkCardsTable, {
+        fields: [componentsTable.id],
+        references: [networkCardsTable.componentId]
     }),
 }));
@@ -214,7 +213,7 @@
 }));
 
-export const motherboardRelations = relations(motherboardTable, ({ one }) => ({
-    component: one(componentsTable, {
-        fields: [motherboardTable.componentId],
+export const motherboardRelations = relations(motherboardsTable, ({ one }) => ({
+    component: one(componentsTable, {
+        fields: [motherboardsTable.componentId],
         references: [componentsTable.id],
     }),
@@ -228,14 +227,14 @@
 }));
 
-export const memoryCardRelations = relations(memoryCardTable, ({ one }) => ({
-    component: one(componentsTable, {
-        fields: [memoryCardTable.componentId],
-        references: [componentsTable.id],
-    }),
-}));
-
-export const opticalDriveRelations = relations(opticalDriveTable, ({ one }) => ({
-    component: one(componentsTable, {
-        fields: [opticalDriveTable.componentId],
+export const memoryCardRelations = relations(memoryCardsTable, ({ one }) => ({
+    component: one(componentsTable, {
+        fields: [memoryCardsTable.componentId],
+        references: [componentsTable.id],
+    }),
+}));
+
+export const opticalDriveRelations = relations(opticalDrivesTable, ({ one }) => ({
+    component: one(componentsTable, {
+        fields: [opticalDrivesTable.componentId],
         references: [componentsTable.id],
     }),
@@ -249,21 +248,21 @@
 }));
 
-export const networkAdapterRelations = relations(networkAdapterTable, ({ one }) => ({
-    component: one(componentsTable, {
-        fields: [networkAdapterTable.componentId],
-        references: [componentsTable.id],
-    }),
-}));
-
-export const networkCardRelations = relations(networkCardTable, ({ one }) => ({
-    component: one(componentsTable, {
-        fields: [networkCardTable.componentId],
-        references: [componentsTable.id],
-    }),
-}));
-
-export const pcCaseRelations = relations(pcCaseTable, ({ one, many }) => ({
-    component: one(componentsTable, {
-        fields: [pcCaseTable.componentId],
+export const networkAdapterRelations = relations(networkAdaptersTable, ({ one }) => ({
+    component: one(componentsTable, {
+        fields: [networkAdaptersTable.componentId],
+        references: [componentsTable.id],
+    }),
+}));
+
+export const networkCardRelations = relations(networkCardsTable, ({ one }) => ({
+    component: one(componentsTable, {
+        fields: [networkCardsTable.componentId],
+        references: [componentsTable.id],
+    }),
+}));
+
+export const pcCaseRelations = relations(pcCasesTable, ({ one, many }) => ({
+    component: one(componentsTable, {
+        fields: [pcCasesTable.componentId],
         references: [componentsTable.id],
     }),
@@ -274,27 +273,27 @@
 
 export const caseStorageFormFactorsRelations = relations(caseStorageFormFactorsTable, ({ one }) => ({
-    pcCase: one(pcCaseTable, {
+    pcCase: one(pcCasesTable, {
         fields: [caseStorageFormFactorsTable.caseId],
-        references: [pcCaseTable.componentId],
+        references: [pcCasesTable.componentId],
     }),
 }));
 
 export const casePsFormFactorsRelations = relations(casePsFormFactorsTable, ({ one }) => ({
-    pcCase: one(pcCaseTable, {
+    pcCase: one(pcCasesTable, {
         fields: [casePsFormFactorsTable.caseId],
-        references: [pcCaseTable.componentId],
+        references: [pcCasesTable.componentId],
     }),
 }));
 
 export const caseMoboFormFactorsRelations = relations(caseMoboFormFactorsTable, ({ one }) => ({
-    pcCase: one(pcCaseTable, {
+    pcCase: one(pcCasesTable, {
         fields: [caseMoboFormFactorsTable.caseId],
-        references: [pcCaseTable.componentId],
-    }),
-}));
-
-export const coolerRelations = relations(coolerTable, ({ one, many }) => ({
-    component: one(componentsTable, {
-        fields: [coolerTable.componentId],
+        references: [pcCasesTable.componentId],
+    }),
+}));
+
+export const coolerRelations = relations(coolersTable, ({ one, many }) => ({
+    component: one(componentsTable, {
+        fields: [coolersTable.componentId],
         references: [componentsTable.id],
     }),
@@ -303,22 +302,14 @@
 
 export const coolerCpuSocketsRelations = relations(coolerCPUSocketsTable, ({ one }) => ({
-    cooler: one(coolerTable, {
+    cooler: one(coolersTable, {
         fields: [coolerCPUSocketsTable.cooler_id],
-        references: [coolerTable.componentId],
-    }),
-}));
-
-export const soundCardRelations = relations(soundCardTable, ({ one, many }) => ({
-    component: one(componentsTable, {
-        fields: [soundCardTable.componentId],
-        references: [componentsTable.id],
-    }),
-    channels: many(soundCardChannelsTable),
-}));
-
-export const soundCardChannelsRelations = relations(soundCardChannelsTable, ({ one }) => ({
-    soundCard: one(soundCardTable, {
-        fields: [soundCardChannelsTable.soundCardId],
-        references: [soundCardTable.componentId],
-    }),
-}));
+        references: [coolersTable.componentId],
+    }),
+}));
+
+export const soundCardRelations = relations(soundCardsTable, ({ one, many }) => ({
+    component: one(componentsTable, {
+        fields: [soundCardsTable.componentId],
+        references: [componentsTable.id],
+    }),
+}));
