From 80c23f1518731e3233d3f245475171de130b6f4e Mon Sep 17 00:00:00 2001 From: Sean S Date: Wed, 11 Dec 2024 06:38:50 -0500 Subject: [PATCH] added a products page and pulled psa data --- src/app/Products/lowers/page.tsx | 36 ++++++++++++++++++++++++++++++++ src/db/queries/PSA/index.ts | 12 +++++++++++ src/db/schema/Psa.ts | 8 +++++++ 3 files changed, 56 insertions(+) create mode 100644 src/app/Products/lowers/page.tsx create mode 100644 src/db/queries/PSA/index.ts create mode 100644 src/db/schema/Psa.ts 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 ( +
+ + + + + + + + + + + {psa.map((psa) => ( + + + + + + + ))} + +
ComponentManufacturerColorPrice
+ {psa.category} + manufacturercolor + ${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