Project

General

Profile

ClientProject #2811

Updated by Md.Sajib Ahmed 8 months ago

### Tasks: 

 #### 1. **Set Minimum Page Height in Layout** 

 #### 2. **Implement All Truck Stock APIs** 

 * Set up API routes and fetch logic for all required endpoints. 

 * Implement both: 

   * **Next.js API Routes** (under `/app/api/v1/truck-stock...`) 
   * **Fetch Functions** (server-side use) 

 * **API List to Integrate:** 

   * [x] `/makers-and-bodytypes` 
   * [x] `/models/?makerId=''` 
   * [x] `/products` 
   * [x] `/sitemap` 
   * [x] `/products/:id` 


 #### 3. **Testing Purposes Only – No UI Design** 

 * Do **not** implement or style any design components. 
 * The purpose of this task is to ensure that: 

   * API endpoints are reachable 
   * Data is correctly fetched 
   * Fetch functions return typed responses 

 --- 

 #### 4. **Create Truck Stock API Service Functions** 

 * Set up reusable fetcher functions inside `services/truck-stock.ts` 
 * Write type-safe wrappers for each API with proper TypeScript interfaces or types 
 * Examples: 

   * `getTruckStockProducts()` 
   * `getTruckStockProductDetail(id: string)` 
   * etc. 

 #### 5. Redis integration 

 * Maintian contastaint file using key value pair. (/lib.constants.ts) 
 ``` javascript 
   MODELS: { 
     KEY: (id: string) => `getTruckModelCount-${id}`, 
     EXPIRE_TIME_IN_SECONDS: 60 * 60, // 1 hour 
   }, 
   PRODUCTS: { 
     KEY: (searchParams: Record<string, string | number | string[]>) => 
       `getTruckStockList-${JSON.stringify(searchParams)}`, 
     EXPIRE_TIME_IN_SECONDS: 60 * 60, // 1 hour 
   }, 
   PRODUCT_DETAIL: { 
     KEY: (id: string) => `getTruckProductDetails-${id}`, 
     EXPIRE_TIME_IN_SECONDS: 60 * 60, // 1 hour 
   }, 
   SITEMAP: { 
     KEY: "getAllTruckStockListForSeo", 
     EXPIRE_TIME_IN_SECONDS: 60 * 60 * 24, // 24 hours 
   }, 
 ``` 


 --- 

 ### Notes: 

 * Ensure all API calls are async and handle error states gracefully. 
 * Keep console logs or JSON previews for now (for verification). 
 * This issue is **preparatory** — future issues will focus on UI rendering and interactivity. 

Back