import { randomUUID } from 'crypto'; interface Answer { id?: string; text: string; points: number; } interface Question { id?: string; text?: string; question?: string; // Поддержка обоих вариантов названия поля answers: Answer[]; } /** * Добавляет UUID к вопросам и ответам, если их нет * @param questions - Массив вопросов * @returns Массив вопросов с добавленными UUID */ export function ensureQuestionIds(questions: Question[]): Question[] { return questions.map((question) => { const questionId = question.id || randomUUID(); const questionText = question.text || question.question || ''; const answersWithIds = question.answers.map((answer) => ({ ...answer, id: answer.id || randomUUID(), })); return { ...question, id: questionId, text: questionText, question: questionText, // Сохраняем оба поля для совместимости answers: answersWithIds, }; }); }