feat(doctors): add city and province filters for doctor listing

This commit is contained in:
hamed
2026-07-12 14:59:02 +03:30
parent bb5884d6bd
commit d2372d4d21
3 changed files with 64 additions and 2 deletions
@@ -339,6 +339,8 @@ class AdminApiController extends BaseController
$status = $request->query->get('status', '');
$gender = trim((string) $request->query->get('gender', ''));
$specId = (int) $request->query->get('specialty_id', 0);
$cityId = (int) $request->query->get('city_id', 0);
$stateId = (int) $request->query->get('state_id', 0);
$sort = trim((string) $request->query->get('sort', 'newest'));
$conn = $this->em->getConnection();
@@ -370,6 +372,15 @@ class AdminApiController extends BaseController
if ($request->query->get('unassigned') === '1') {
$where[] = 'd.representation_id IS NULL';
}
// فیلتر شهر/استان بر اساس آدرسِ خودِ پزشک (doctor_addresses).
if ($cityId > 0) {
$where[] = 'EXISTS (SELECT 1 FROM doctor_addresses da WHERE da.doctor_id = d.id AND da.city_id = :cityId)';
$params['cityId'] = $cityId;
}
if ($stateId > 0) {
$where[] = 'EXISTS (SELECT 1 FROM doctor_addresses das WHERE das.doctor_id = d.id AND das.province_id = :stateId)';
$params['stateId'] = $stateId;
}
$whereStr = implode(' AND ', $where);
$orderBy = match ($sort) {