import { City } from "@/db/models";
import { escapeRegex } from "@/data/tunisiaCities";
import { isCitiesMysql } from "@/db/activeDatabase";
import { cityRowToApi, findCitiesByQueryMysql } from "@/db/mysql/cities";

export async function findCitiesByQuery(query: string) {
  const trimmed = query.trim();
  if (!trimmed) return [];

  if (isCitiesMysql()) {
    const rows = await findCitiesByQueryMysql(trimmed);
    return rows.map(cityRowToApi);
  }

  const rx = new RegExp(escapeRegex(trimmed), "i");
  return City.find({
    deletedAt: null,
    $or: [{ nameEn: rx }, { nameAr: rx }, { slug: rx }, { aliases: rx }],
  }).lean();
}
