Index: database/drizzle/schema/components.ts
===================================================================
--- database/drizzle/schema/components.ts	(revision fdd776b4ca5fc651b66cb07a78a265c132fb9deb)
+++ database/drizzle/schema/components.ts	(revision 1ebac59c4e102e653ac1aa7c4322403d97397ecc)
@@ -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;
+
