SalesService.ts 881 B

1234567891011121314151617181920212223242526272829303132
  1. import { SearchFilter } from '../../utils/SearchFilter';
  2. import { Prisma } from '@prisma/client';
  3. import SalesRepository from '../../repository/admin/SalesRepository';
  4. interface GetAllSalesParams {
  5. page: number;
  6. limit: number;
  7. search?: string;
  8. sortBy: string;
  9. orderBy: 'asc' | 'desc';
  10. }
  11. export const getAllSalesService = async ({ page, limit, search = '', sortBy, orderBy }: GetAllSalesParams) => {
  12. const skip = (page - 1) * limit;
  13. const where: Prisma.UserWhereInput = {
  14. ...SearchFilter(search, ['id', 'firstname', 'lastname']),
  15. deletedAt: null,
  16. };
  17. const [sales, total] = await Promise.all([
  18. SalesRepository.findAll({
  19. skip,
  20. take: limit,
  21. where,
  22. orderBy: { [sortBy]: orderBy },
  23. }),
  24. SalesRepository.countAll(where),
  25. ]);
  26. return { sales, total };
  27. };