diff --git a/backend/src/professionals/professionals.controller.ts b/backend/src/professionals/professionals.controller.ts index 43f8e07..d662349 100644 --- a/backend/src/professionals/professionals.controller.ts +++ b/backend/src/professionals/professionals.controller.ts @@ -17,7 +17,8 @@ export class ProfessionalsController { findAllActive(@Req() req) { const page = +(req.query.page || 1); const limit = +(req.query.limit || 20); - return this.pros.findAllActive(page, limit); + const city = req.query.city as string | undefined; + return this.pros.findAllActive(page, limit, city); } @Get('pending') diff --git a/backend/src/professionals/professionals.service.ts b/backend/src/professionals/professionals.service.ts index 4958fa1..cc31842 100644 --- a/backend/src/professionals/professionals.service.ts +++ b/backend/src/professionals/professionals.service.ts @@ -5,11 +5,13 @@ import { PrismaService } from '../prisma/prisma.service'; export class ProfessionalsService { constructor(private prisma: PrismaService) {} - async findAllActive(page = 1, limit = 20) { + async findAllActive(page = 1, limit = 20, city?: string) { const skip = (page - 1) * limit; + const where: any = { is_active: true }; + if (city) where.users = { city: { contains: city, mode: 'insensitive' } }; const [data, total] = await Promise.all([ this.prisma.professionals.findMany({ - where: { is_active: true }, + where, skip, take: limit, include: { @@ -19,7 +21,7 @@ export class ProfessionalsService { payment_methods: true, }, }), - this.prisma.professionals.count({ where: { is_active: true } }), + this.prisma.professionals.count({ where }), ]); return { data, meta: { total, page, limit, totalPages: Math.ceil(total / limit) || 1 } }; }