import { db } from '@db/index'; import { bb_products, 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 getSuppressors(page = 1) { const limit = 40; const offset = (page - 1) * limit; return await db.select() .from(bb_products) .limit(limit) .where(and(eq(bb_products.category, "Muzzle Devices"), eq(bb_products.subcategory, 'Suppressors'))) .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 getOptics(page = 1) { const limit = 40; const offset = (page - 1) * limit; return await db.select() .from(psa) .limit(limit) .where(and(like(psa.fineline, "%Optics%"))) .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); }