import { Product, ProductDataSource } from "./types";
import products from "@/fixtures/products.json";

/**
 * Mock adatforrás: valós Power BI / DAX kapcsolat nélkül szolgál ki
 * terméket a fixtures/products.json fájlból. Ez teszi lehetővé, hogy
 * az oldal fejlesztés közben és teszteléskor élő adatkapcsolat nélkül
 * is használható legyen.
 */
export class MockProductDataSource implements ProductDataSource {
  // A mock adatforrás egynyelvű (fixtures/products.json), a `language`
  // paramétert figyelmen kívül hagyja - csak az interfész miatt szerepel.
  async getProductById(
    productId: string,
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    _language?: string
  ): Promise<Product | null> {
    // Mesterséges késleltetés, hogy a UI betöltő állapota is látható/tesztelhető legyen.
    await new Promise((resolve) => setTimeout(resolve, 400));

    const normalized = productId.trim().toLowerCase();
    const found = (products as Product[]).find(
      (p) => p.productId.toLowerCase() === normalized
    );

    return found ?? null;
  }
}
