import { getCategories, syncCategoriesFromProducts } from '@/api/category' import type { Category } from '@/model/category' import { PRODUCT_CATEGORY_ABSHODE } from '@/utils/productCategories' export type CategorySelectItem = { key: string; value: string } export function mapCategoriesToSelectItems( rows: Category[], metalHint = 'طلا، نقره، مس' ): CategorySelectItem[] { return rows.map((category) => ({ key: category.name, value: category.name === PRODUCT_CATEGORY_ABSHODE ? `${category.name} (${metalHint})` : category.name })) } /** همان منبع جدول دسته‌بندی‌ها — دسته‌های جدید از محصولات اضافه می‌شوند؛ ترتیب دستی حفظ می‌شود */ export async function syncAndLoadCategories(options?: { selectOnly?: boolean metalHint?: string }): Promise { await syncCategoriesFromProducts() const rows = await getCategories( options?.selectOnly ? { select_only: true } : undefined ) return mapCategoriesToSelectItems(rows, options?.metalHint) }