ln/app/server/graphql/resolvers/mappers/bookChapterMapper.ts
2025-05-19 09:42:15 +03:00

24 lines
753 B
TypeScript

import { call } from '@app/common';
import { prisma } from '@app/server/prisma/client';
import { BookChapter as BookChapterSchema } from '@generated/types';
import { BookChapter } from '@prisma/client';
export async function toBookChapterSchema(model: BookChapter): Promise<BookChapterSchema> {
return {
id: model.id,
title: model.title,
createdAt: model.createdAt.toISOString(),
updatedAt: model.createdAt.toISOString(),
foreword: model.foreword,
footnote: model.footnote,
sequenceNumber: model.sequenceNumber,
reviewsTotal: await call(async () => {
const reviewsCount = await prisma.review.count({
where: {
bookChapterId: model.id
}
});
return reviewsCount;
})
};
}