Files
ballistic-builder/src/db/queries/PSA/index.ts
2024-12-18 13:51:12 -05:00

158 lines
3.7 KiB
TypeScript

import { db } from '../../index';
import { psa } from '@schemas/schema';
import { eq, lt, gte, ne, and, like } from 'drizzle-orm';
import CATEGORY from '@src/data/parts_cats.json';
export async function getPSA(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 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 getARCompleteLowers(page = 1) {
const limit = 240;
const offset = (page - 1) * limit;
return await db.select()
.from(psa)
.limit(limit)
.where(eq(psa.fineline, "AR Complete Lowers"))
.offset(offset);
}
export async function getProductType(productType : any, page = 1) {
const limit = 40;
const offset = (page - 1) * limit;
await new Promise((resolve) => setTimeout(resolve,1000));
return await db.select()
.from(psa)
.limit(limit)
.where(eq(psa.fineline, (typeof(productType) !== 'string' ? productType.name : productType)))
.offset(offset);
}
export async function getGrips(page = 1) {
const limit = 40;
const offset = (page - 1) * limit;
return await db.select()
.from(psa)
.limit(limit)
.where(eq(psa.fineline, "Grips"))
.offset(offset);
}
export async function getARHandGuards(page = 1) {
const limit = 40;
const offset = (page - 1) * limit;
return await db.select()
.from(psa)
.limit(limit)
.where(and(eq(psa.fineline, "Handguards & Rail Systems"), eq(psa.category, 'Ar Parts')))
.offset(offset);
}
export async function getAKHandGuards(page = 1) {
const limit = 40;
const offset = (page - 1) * limit;
return await db.select()
.from(psa)
.limit(limit)
.where(and(eq(psa.fineline, "Handguards & Rail Systems"), eq(psa.category, 'Ak Parts')))
.offset(offset);
}
export async function getMuzzleDevices(page = 1) {
const limit = 40;
const offset = (page - 1) * limit;
return await db.select()
.from(psa)
.limit(limit)
.where(eq(psa.fineline, "Muzzle Brakes"))
.offset(offset);
}
export async function getStocks(page = 1) {
const limit = 40;
const offset = (page - 1) * limit;
return await db.select()
.from(psa)
.limit(limit)
.where(eq(psa.fineline, "Stocks"))
.offset(offset);
}
export async function getStocksParts(page = 1) {
const limit = 40;
const offset = (page - 1) * limit;
return await db.select()
.from(psa)
.limit(limit)
.where(eq(psa.fineline, "Stocks"))
.offset(offset);
}
export async function getUpperReciever(page = 1) {
const limit = 40;
const offset = (page - 1) * limit;
return await db.select()
.from(psa)
.limit(limit)
.where(like(psa.fineline, "%Upper Receivers"))
.offset(offset);
}
export async function getARTriggers(page = 1) {
const limit = 40;
const offset = (page - 1) * limit;
return await db.select()
.from(psa)
.limit(limit)
.where(and(like(psa.fineline, "%Trigger%"), like(psa.category, "Ar Parts")))
.offset(offset);
}
export async function getARParts(page = 1) {
const limit = 40;
const offset = (page - 1) * limit;
return await db.select()
.from(psa)
.limit(limit)
.where(and(like(psa.fineline, "%Trigger%"), like(psa.category, "Ar Parts")))
.offset(offset);
}
export async function getMags(page = 1) {
const limit = 40;
const offset = (page - 1) * limit;
return await db.select()
.from(psa)
.limit(limit)
.where(like(psa.superfineline, "%AR Magazines%"))
.offset(offset);
}