2025SELab2-project-Dwengo/backend/src/interfaces/question.ts
2025-03-13 15:30:07 +01:00

43 lines
1.2 KiB
TypeScript

import { Question } from '../entities/questions/question.entity.js';
import {UserDTO} from "./user.js";
import {LearningObjectIdentifier} from "../entities/content/learning-object-identifier.js";
export interface QuestionDTO {
learningObjectIdentifier: LearningObjectIdentifier;
sequenceNumber?: number;
author: UserDTO;
timestamp?: string;
content: string;
}
/**
* Convert a Question entity to a DTO format.
*/
export function mapToQuestionDTO(question: Question): QuestionDTO {
const learningObjectIdentifier = {
hruid: question.learningObjectHruid,
language: question.learningObjectLanguage,
version: question.learningObjectVersion
}
return {
learningObjectIdentifier,
sequenceNumber: question.sequenceNumber!,
author: question.author,
timestamp: question.timestamp.toISOString(),
content: question.content,
};
}
export interface QuestionId {
learningObjectIdentifier: LearningObjectIdentifier;
sequenceNumber: number;
}
export function mapToQuestionId(question: QuestionDTO): QuestionId {
return {
learningObjectIdentifier: question.learningObjectIdentifier,
sequenceNumber: question.sequenceNumber!,
};
}