import { randomUUID } from "crypto";
import { slugify, randomSlugSuffix } from "@/lib/utils/slugify";
import { initDb } from "@/lib/db";

export async function generateUniqueElectionSlug(title: string): Promise<string> {
  const { Election } = initDb();
  const base = slugify(title) || "election";

  for (let attempt = 0; attempt < 8; attempt++) {
    const slug = `${base}-${randomSlugSuffix()}`;
    const existing = await Election.findOne({ where: { slug } });
    if (!existing) return slug;
  }

  return `${base}-${randomUUID().slice(0, 8)}`;
}
