import { env } from "@/lib/runtime-env";
import { SIGN_PROFILE_SPECS } from "@/app/sign-profile-specs";

const content: Record<string, [string, string, string]> = {
  P01: ["Métal rétro-éclairé", "Halo arrière", "/products/channel_letter_2826359_4310755.png"],
  P02: ["Face acrylique + listel", "Face lumineuse", "/products/channel_letter_1065601_7372183.png"],
  P03: ["Acrylique 10 mm double LED", "Avant + arrière", "/products/channel_letter_6330282_7322710.png"],
  P04: ["Double éclairage opale", "Face + halo", "/products/channel_letter_7116139_7913799.png"],
  P05: ["Acrylique massif 10 mm", "Face épaisse", "/products/channel_letter_1860132_5406903.png"],
  P06: ["Acrylique intégral", "Face + chants", "/products/channel_letter_5398420_9198734.png"],
  P07: ["Face opale 6 mm", "Face lumineuse", "/products/channel_letter_6274080_6898813.png"],
  P08: ["Face opale 18 mm", "Relief lumineux", "/products/channel_letter_7450385_6916113.png"],
  P09: ["Métal éclairage latéral", "Halo latéral", "/products/channel_letter_1982289_8165246.png"],
  P10: ["Lettre sandwich", "Lumière latérale", "/products/channel_letter_9650763_2066861.png"],
  P11: ["Métal à ampoules", "Style marquee", "/products/channel_letter_6829509_1185587.png"],
  P12: ["Bloc LED 30 mm", "Acrylique compact", "/products/channel_letter_2332640_6370338.png"],
  P13: ["Mousse végétale", "Non lumineuse", "/products/channel_letter_5191899_2438624.png"],
  P14: ["Aluminium rétro-éclairé", "Halo premium", "/products/channel_letter_6231405_8175981.png"],
  P15: ["Acrylique peint 18 mm", "Halo compact", "/products/channel_letter_4361285_4259298.png"],
  P16: ["Ligne LED intégrée", "Trait lumineux", "/products/channel_letter_8991922_5400120.png"],
  P17: ["Caisson lettres traversantes", "Caisson ajouré", "/products/channel_letter_7347137_3461357.png"],
  P18: ["Caisson acrylique incrusté", "Caisson plat", "/products/channel_letter_2692248_3438175.png"],
  P19: ["Angel Deluxe", "Éclairage latéral", "/products/channel_letter_1063475_5034714.png"],
  P20: ["Acrylique 18 mm bordé", "Face luxe", "/products/channel_letter_7279500_1093348.png"],
};

let seeded: Promise<void> | null = null;

export function ensureSignProfileCatalog() {
  seeded ??= seed();
  return seeded;
}

async function seed() {
  const now = Date.now();
  await env.DB.batch(Object.entries(SIGN_PROFILE_SPECS).map(([code, profile]) => {
    const [name, short, imageUrl] = content[code];
    return env.DB.prepare(`INSERT OR IGNORE INTO sign_profile_catalog
      (code, name, short, image_url, description, ideal, spec_json, active, approved, updated_at)
      VALUES (?, ?, ?, ?, '', '', ?, 1, 0, ?)`)
      .bind(code, name, short, imageUrl, JSON.stringify(profile), now);
  }));
}
