diff --git a/src/app/Products/lowers/page.tsx b/src/app/Products/lowers/page.tsx
new file mode 100644
index 0000000..403b0d2
--- /dev/null
+++ b/src/app/Products/lowers/page.tsx
@@ -0,0 +1,36 @@
+import { Button } from "src/components/ui/button";
+import { getPSA } from "@/db/queries/PSA";
+
+export default async function LowerReceiverPage() {
+ const psa = await getPSA();
+
+ return (
+
+
+
+
+ | Component |
+ Manufacturer |
+ Color |
+ Price |
+
+
+
+ {psa.map((psa) => (
+
+ |
+ {psa.category}
+ |
+ manufacturer |
+ color |
+
+ ${Number(psa.salePrice).toFixed(2)}
+
+ |
+
+ ))}
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/src/db/queries/PSA/index.ts b/src/db/queries/PSA/index.ts
new file mode 100644
index 0000000..115c918
--- /dev/null
+++ b/src/db/queries/PSA/index.ts
@@ -0,0 +1,12 @@
+import { db } from '../../index';
+import { psa } from '../../../drizzle/schema';
+
+export async function getPSA(page = 1) {
+ const limit = 10;
+ const offset = (page - 1) * limit;
+
+ return await db.select()
+ .from(psa)
+ .limit(limit)
+ .offset(offset);
+}
\ No newline at end of file
diff --git a/src/db/schema/Psa.ts b/src/db/schema/Psa.ts
new file mode 100644
index 0000000..6cd3f98
--- /dev/null
+++ b/src/db/schema/Psa.ts
@@ -0,0 +1,8 @@
+import { pgTable, text, decimal, serial, integer } from 'drizzle-orm/pg-core';
+
+export const psa = pgTable('psa', {
+ id: integer().primaryKey().generatedAlwaysAsIdentity({ name: "brands_id_seq", startWith: 1, increment: 1, minValue: 1, maxValue: 2147483647, cache: 1 }),
+ category: text('category').notNull(),
+ department: text('department').notNull(),
+ saleprice: decimal('saleprice', { precision: 10, scale: 2 }).notNull(),
+});
\ No newline at end of file