protected async paginateWhere<
S extends TSelect<ModelName> | undefined = undefined,
I extends TInclude<ModelName> | undefined = undefined,
>(
where: Parameters<PrismaDelegates[ModelName]['findMany']>[0]['where'],
elementPerPage: number,
pageNumber: number,
choose?: { select?: S; include?: I },
args?: TArgs<ModelName>,
): Promise<{
items: Prisma.Result<
typeof this.model,
OnlyDefined<{ select: S; include: I }>,
'findMany'
>;
total: number;
}> {
const take = elementPerPage;
const skip = (pageNumber - 1) * take;
const [items, total] = await Promise.all([
(this.model as any).findMany({
where,
skip,
take,
...choose,
...args,
}),
(this.model as any).count({ where }),
]);
return { items, total };
}
protected async paginateWhere<
S extends TSelect<ModelName> | undefined = undefined,
I extends TInclude<ModelName> | undefined = undefined,
>(
where: Parameters<PrismaDelegates[ModelName]['findMany']>[0]['where'],
elementPerPage: number,
pageNumber: number,
choose?: { select?: S; include?: I },
args?: TArgs<ModelName>,
): Promise<{
items: Prisma.Result<
typeof this.model,
OnlyDefined<{ select: S; include: I }>,
'findMany'
>;
total: number;
}> {
const take = elementPerPage;
const skip = (pageNumber - 1) * take;
const [items, total] = await Promise.all([
(this.model as any).findMany({
where,
skip,
take,
...choose,
...args,
}),
(this.model as any).count({ where }),
]);
return { items, total };
}