import type { CV as PrismaCV, CVTemplate as PrismaCVTemplate, } from "@prisma/client"; import { cvTemplateMapper } from "./cv-template.mapper"; import { CV } from "./graphql/cv.type"; export type PrismaCVWithTemplate = PrismaCV & { template: PrismaCVTemplate; }; export const cvMapper = { toDomain: (cv: PrismaCVWithTemplate): CV => { return new CV( cv.id, cv.userId, cv.title, cv.createdAt, cv.updatedAt, cvTemplateMapper.toDomain(cv.template), cv.introduction ?? null, ); }, mapToDomain: (cvs: PrismaCVWithTemplate[]): CV[] => { return cvs.map((cv) => cvMapper.toDomain(cv)); }, };