23 lines
711 B
TypeScript
23 lines
711 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,
|
|
reviewsTotal: await call(async () => {
|
|
const reviewsCount = await prisma.review.count({
|
|
where: {
|
|
bookChapterId: model.id
|
|
}
|
|
});
|
|
return reviewsCount;
|
|
})
|
|
};
|
|
}
|