import type { IRawModelCard, IModelCard, IModelParameter } from '../../../types'; import { ThumbSize } from '../../constants/thumb-size'; const parameterNames = ['guy_type', 'ethnicity']; const age = (card: IRawModelCard) => card.parameters?.find(item => item.name === 'age')?.values?.[0]?.title; /** Нормализует сырую карточку модели к типу IModelCard, включая параметры (возраст, рост, вес) и страну. */ export const cleanModelCard = (card: IRawModelCard): IModelCard => ({ title: card.title || '', videosCount: card.videos_count || 0, thumbUrl: card.video_thumb_urls?.webp?.[ThumbSize.Small] || '', primaryImageUrl: card.primary_image_url || '', guid: card.guid || '', country: { title: card.parameters?.find(item => item.name === 'birthplace_country')?.values?.[0]?.title || '', name: card.parameters?.find(item => item.name === 'birthplace_country')?.values?.[0]?.name || '', }, parameters: [ ...(card.parameters?.filter(item => parameterNames.includes(item.name) && item.values?.length).map((item: IModelParameter) => ({ title: item.name, value: item.values?.[0]?.title, })) ?? []), ...(age(card) ? [{ title: 'age', value: age(card), }] : []), ], lastVideoAddedAt: card.last_video_added_at, });