/** * Теги вебкам-моделей у провайдера служат сразу двум целям: описывают модель и * помечают её новизну. Отдельного поля «новая модель» в ответе нет — есть тег * `new` и производные от него (`new-teens`, `new-asian`, …). */ const NEW_TAG = 'new'; /** Новая модель — если провайдер поставил тег `new`. */ export function isNewModel(tags?: string[]): boolean { return (tags || []).some(tag => tag.toLowerCase() === NEW_TAG); } /** * Теги для карточки без служебных: сам `new` уехал в плашку, а `new-<тема>` * дублируют обычные темы (`new-asian` при наличии `asian`) и только съедают * строку чипсов. */ export function visibleTags(tags?: string[]): string[] { return (tags || []).filter((tag) => { const value = tag.toLowerCase(); return value !== NEW_TAG && !value.startsWith(`${NEW_TAG}-`); }); }