Index: database/drizzle/queries/users.ts
===================================================================
--- database/drizzle/queries/users.ts	(revision b69759dc4c8f1a000afc0d0c5c5afcc6868641fb)
+++ database/drizzle/queries/users.ts	(revision c4dd17daab63f38e850e1d550d0b89c90e9485cc)
@@ -1,5 +1,5 @@
 import type { Database } from "../db";
-import {adminsTable, usersTable } from "../schema";
-import { eq } from "drizzle-orm";
+import {adminsTable, suggestionsTable, usersTable} from "../schema";
+import {desc, eq} from "drizzle-orm";
 
 export async function createUser(db: Database, username: string, email: string, passwordHash: string) {
@@ -14,5 +14,5 @@
 
 export async function getUserProfile(db: Database, userId: number) {
-    const user = await db
+    const [user] = await db
         .select({
             username: usersTable.username,
@@ -25,5 +25,5 @@
         .limit(1);
 
-    return user[0] ?? null;
+    return user ?? null;
 }
 
@@ -39,2 +39,45 @@
     return admin.length > 0;
 }
+
+export async function getComponentSuggestions(db: Database) {
+    const suggestionsList = await db
+        .select()
+        .from(suggestionsTable)
+        .where(
+            eq(suggestionsTable.status, 'pending')
+        )
+        .orderBy(
+            desc(suggestionsTable.id)
+        )
+
+    return suggestionsList;
+}
+
+export async function setComponentSuggestionStatus(db: Database, suggestionId: number, adminId: number, status: string, adminComment: string) {
+    const result = await db
+        .update(suggestionsTable)
+        .set({
+            adminId: adminId,
+            status: status,
+            adminComment: adminComment
+        })
+        .where(
+            eq(suggestionsTable.id, suggestionId)
+        );
+
+    return result.rowCount;
+}
+
+export async function addComponentSuggestion(db: Database, userId: number, link: string, description: string, componentType: string) {
+    const [newSuggestion] = await db
+        .insert(suggestionsTable)
+        .values({
+            userId: userId,
+            link: link,
+            description: description,
+            componentType: componentType
+        })
+        .returning({ id: suggestionsTable.id });
+
+    return newSuggestion.id ?? null;
+}
