This commit is contained in:
2024-12-12 00:04:14 -05:00
parent 1691c60d96
commit e36bbe1165
5 changed files with 85 additions and 11 deletions

View File

@@ -1,9 +1,10 @@
import { Button } from "@components/ui/button"; import { Button } from "@components/ui/button";
import { getPSA } from "@/db/queries/PSA"; import { getPSA, getLowerBuildKits, getAKBarreledReceivers } from "@queries/PSA";
import { psa } from '@/db/schema/Psa'; import { psa } from '@db/schema/Psa';
import styles from '../styles.module.css' import styles from '../styles.module.css';
export default async function LowerReceiverPage() { export default async function LowerReceiverPage() {
const psa = await getPSA(); const psa = await getLowerBuildKits();
return ( return (
<div className="container mx-auto"> <div className="container mx-auto">
@@ -19,9 +20,7 @@ export default async function LowerReceiverPage() {
<tbody> <tbody>
{psa.map((psa) => ( {psa.map((psa) => (
<tr key={psa.upc}> <tr key={psa.upc}>
<td> <td>{psa.category}</td>
{psa.category}
</td>
<td>{psa.brandName}</td> <td>{psa.brandName}</td>
<td>{psa.modelnumber}</td> <td>{psa.modelnumber}</td>
<td className="flex items-center gap-2"> <td className="flex items-center gap-2">

View File

@@ -0,0 +1,36 @@
import { Button } from "@components/ui/button";
import { getPSA, getLowerBuildKits, getAKBarreledReceivers } from "@queries/PSA";
import { psa } from '@db/schema/Psa';
import styles from '../styles.module.css';
export default async function LowerReceiverPage() {
const psa = await getLowerBuildKits();
return (
<div className="container mx-auto">
<table className={"table-auto border-separate border-spacing-4 border border-slate-500"}>
<thead>
<tr className={styles.tr}>
<th>Component</th>
<th>Manufacturer</th>
<th>Model #</th>
<th>Price</th>
</tr>
</thead>
<tbody>
{psa.map((psa) => (
<tr key={psa.upc}>
<td>{psa.category}</td>
<td>{psa.brandName}</td>
<td>{psa.modelnumber}</td>
<td className="flex items-center gap-2">
${Number(psa.salePrice).toFixed(2)}
<Button variant="outline">Buy</Button>
</td>
</tr>
))}
</tbody>
</table>
</div>
);
}

View File

@@ -1,12 +1,47 @@
import { db } from '../../index'; import { db } from '../../index';
import { psa } from '../../../drizzle/schema'; import { psa } from '../../../drizzle/schema';
import { eq, lt, gte, ne } from 'drizzle-orm';
export async function getPSA(page = 1) { export async function getPSA(page = 1) {
const limit = 10; const limit = 20;
const offset = (page - 1) * limit; const offset = (page - 1) * limit;
return await db.select() return await db.select()
.from(psa) .from(psa)
.limit(limit) .limit(limit)
.where(eq(psa.fineline, "Lower Build Kits"))
.offset(offset);
}
export async function getLowerBuildKits(page = 1) {
const limit = 20;
const offset = (page - 1) * limit;
return await db.select()
.from(psa)
.limit(limit)
.where(eq(psa.fineline, "Lower Build Kits"))
.offset(offset);
}
export async function getAKBarreledReceivers(page = 1) {
const limit = 20;
const offset = (page - 1) * limit;
return await db.select()
.from(psa)
.limit(limit)
.where(eq(psa.fineline, "AK Barreled Receivers"))
.offset(offset);
}
export async function getARCompleteLowers(page = 1) {
const limit = 20;
const offset = (page - 1) * limit;
return await db.select()
.from(psa)
.limit(limit)
.where(eq(psa.fineline, "AR Complete Lowers"))
.offset(offset); .offset(offset);
} }

View File

@@ -24,6 +24,10 @@
"./src/*"], "./src/*"],
"@/db/*": [ "@/db/*": [
"./src/db/*"], "./src/db/*"],
"@queries/*": [
"./src/db/queries/*"],
"@schemas/*": [
"./src/db/schema/*"],
"@db/*": [ "@db/*": [
"./src/db/*"], "./src/db/*"],
"@types/*": [ "@types/*": [