55 lines
947 B
TypeScript
55 lines
947 B
TypeScript
![]() |
import {
|
||
|
db,
|
||
|
Post,
|
||
|
PostType,
|
||
|
UserProfile,
|
||
|
VisitType,
|
||
|
} from '@nice/common';
|
||
|
|
||
|
export async function setPostRelation(params: {
|
||
|
data: Post;
|
||
|
staff?: UserProfile;
|
||
|
}) {
|
||
|
const { data, staff } = params;
|
||
|
const limitedComments = await db.post.findMany({
|
||
|
where: {
|
||
|
parentId: data.id,
|
||
|
type: PostType.POST_COMMENT,
|
||
|
},
|
||
|
include: {
|
||
|
author: true,
|
||
|
},
|
||
|
take: 5,
|
||
|
});
|
||
|
const commentsCount = await db.post.count({
|
||
|
where: {
|
||
|
parentId: data.id,
|
||
|
type: PostType.POST_COMMENT,
|
||
|
},
|
||
|
});
|
||
|
const readed =
|
||
|
(await db.visit.count({
|
||
|
where: {
|
||
|
postId: data.id,
|
||
|
type: VisitType.READED,
|
||
|
visitorId: staff?.id,
|
||
|
},
|
||
|
})) > 0;
|
||
|
const readedCount = await db.visit.count({
|
||
|
where: {
|
||
|
postId: data.id,
|
||
|
type: VisitType.READED,
|
||
|
},
|
||
|
});
|
||
|
|
||
|
Object.assign(data, {
|
||
|
readed,
|
||
|
readedCount,
|
||
|
limitedComments,
|
||
|
commentsCount,
|
||
|
// trouble
|
||
|
});
|
||
|
}
|
||
|
|
||
|
|