feat: update representation management to use city_id instead of city and add city filtering

This commit is contained in:
hamed
2026-06-10 10:03:46 +03:30
parent d33d67b921
commit c7ae591e49
7 changed files with 148 additions and 42 deletions
+12 -3
View File
@@ -4,6 +4,7 @@ namespace App\Admin\Controller;
use App\Appointment\Entity\Appointment;
use App\Auth\Entity\User;
use App\Category\Entity\Category;
use App\Clinic\Entity\Clinic;
use App\Doctor\Entity\Doctor;
use App\Payment\Entity\Payment;
@@ -169,17 +170,24 @@ class AdminApiController extends BaseController
$page = max(1, (int) $request->query->get('page', 1));
$limit = min(100, max(1, (int) $request->query->get('limit', 15)));
$search = trim((string) $request->query->get('search', ''));
$cityId = $request->query->get('city_id');
$qb = $this->em->createQueryBuilder()
->select('r.uuid, r.fullName, r.mobileNumber, r.city, r.commissionPercent, r.active, r.createdAt')
->select('r.uuid, r.fullName, r.mobileNumber, r.cityId, r.commissionPercent, r.active, r.createdAt, c.label as city_name')
->from(Representation::class, 'r')
->leftJoin(Category::class, 'c', 'WITH', 'c.id = r.cityId')
->orderBy('r.createdAt', 'DESC');
if ($search !== '') {
$qb->andWhere('r.fullName LIKE :s OR r.city LIKE :s')
$qb->andWhere('r.fullName LIKE :s OR r.mobileNumber LIKE :s')
->setParameter('s', '%' . $search . '%');
}
if ($cityId !== null && $cityId !== '') {
$qb->andWhere('r.cityId = :cityId')
->setParameter('cityId', (int) $cityId);
}
$total = (clone $qb)->select('COUNT(r.id)')->getQuery()->getSingleScalarResult();
$rows = $qb->setFirstResult(($page - 1) * $limit)->setMaxResults($limit)
@@ -190,7 +198,8 @@ class AdminApiController extends BaseController
'domain' => $r['fullName'],
'full_name' => $r['fullName'],
'mobile_number' => $r['mobileNumber'],
'city' => $r['city'] ?? '',
'city_id' => $r['cityId'],
'city' => $r['city_name'] ?? null,
'commission_percent' => (float) $r['commissionPercent'],
'wallet_balance' => 0,
'is_active' => (bool) $r['active'],