diff --git a/src/controllers/customer-branch-controller.ts b/src/controllers/customer-branch-controller.ts index a510808..9dfa0a6 100644 --- a/src/controllers/customer-branch-controller.ts +++ b/src/controllers/customer-branch-controller.ts @@ -224,18 +224,33 @@ export class CustomerBranchController extends Controller { async listEmployee( @Path() branchId: string, @Query() zipCode?: string, + @Query() gender?: string, + @Query() status?: Status, @Query() query: string = "", @Query() page: number = 1, @Query() pageSize: number = 30, ) { + const filterStatus = (val?: Status) => { + if (!val) return {}; + + return val !== Status.CREATED && val !== Status.ACTIVE + ? { status: val } + : { OR: [{ status: Status.CREATED }, { status: Status.ACTIVE }] }; + }; + const where = { - AND: { customerBranchId: branchId }, OR: [ - { firstName: { contains: query }, zipCode }, - { firstNameEN: { contains: query }, zipCode }, - { lastName: { contains: query }, zipCode }, - { lastNameEN: { contains: query }, zipCode }, + { firstName: { contains: query } }, + { firstNameEN: { contains: query } }, + { lastName: { contains: query } }, + { lastNameEN: { contains: query } }, ], + AND: { + ...filterStatus(status), + customerBranchId: branchId, + subDistrict: zipCode ? { zipCode } : undefined, + gender, + }, } satisfies Prisma.EmployeeWhereInput; const [result, total] = await prisma.$transaction([