import { makeHelpersForOptions } from '../lib/makeHelpersForOptions' import { transformCase } from '../lib/strings' import type { AttributeCategory } from '@prisma/client' type AttributeCategoryInfo = { value: T slug: string label: string icon: string classNames: { icon: string } order: number } export const { dataArray: attributeCategories, dataObject: attributeCategoriesById, getFn: getAttributeCategoryInfo, getFnSlug: getAttributeCategoryInfoBySlug, zodEnumBySlug: attributeCategoriesZodEnumBySlug, zodEnumById: attributeCategoriesZodEnumById, keyToSlug: attributeCategoryIdToSlug, slugToKey: attributeCategorySlugToId, } = makeHelpersForOptions( 'value', (value): AttributeCategoryInfo => ({ value, slug: value ? value.toLowerCase() : '', label: value ? transformCase(value, 'title') : String(value), icon: 'ri:shield-fill', classNames: { icon: 'text-current/60', }, order: Infinity, }), [ { value: 'PRIVACY', slug: 'privacy', label: 'Privacy', icon: 'ri:shield-user-fill', classNames: { icon: 'text-blue-500', }, order: 1, }, { value: 'TRUST', slug: 'trust', label: 'Trust', icon: 'ri:shield-check-fill', classNames: { icon: 'text-green-500', }, order: 2, }, ] as const satisfies AttributeCategoryInfo[] )