/** * Per-language translation content for a category or subcategory. * Stored under `translations['ru']`, `translations['en']`, etc. */ export interface CategoryTranslation { name?: string; } export interface Category { id: string; name: string; visible: boolean; priority: number; img?: string; projectId: string; subcategories?: Subcategory[]; /** Optional translations keyed by language code: { ru: { name: '...' } } */ translations?: { [lang: string]: CategoryTranslation }; } export interface Subcategory { id: string; name: string; visible: boolean; priority: number; img?: string; /** Root-level category this subcategory belongs to */ categoryId: string; /** Direct parent ID — could be a category ID or a parent subcategory ID */ parentId?: string; itemCount?: number; subcategories?: Subcategory[]; hasItems?: boolean; /** Optional translations keyed by language code: { ru: { name: '...' } } */ translations?: { [lang: string]: CategoryTranslation }; }