feat: enhance DoctorFormPage with searchable specialties and improved UI components
- Refactored DoctorFormPage to use Controller from react-hook-form for better form handling. - Added a new Field component for consistent input styling and error handling. - Implemented a SpecialtyPicker component with improved selection logic for specialties. - Updated the layout and styling of the form sections for better user experience. - Integrated SearchableSelect for selecting specialties and roles in DoctorsPage and UsersPage. - Added createClinic API endpoint to handle clinic creation with validation for mobile and name fields.
This commit is contained in:
@@ -484,6 +484,38 @@ class AdminApiController extends BaseController
|
||||
return $this->paginated($items, $total, $page, $limit);
|
||||
}
|
||||
|
||||
#[Route('/api/v1/admin/clinic', methods: ['POST'])]
|
||||
public function createClinic(Request $request): JsonResponse
|
||||
{
|
||||
$data = json_decode($request->getContent(), true) ?? [];
|
||||
$mobile = trim((string) ($data['owner_mobile'] ?? ''));
|
||||
$name = trim((string) ($data['name'] ?? ''));
|
||||
|
||||
if ($mobile === '') {
|
||||
return $this->error('VALIDATION', 'شماره موبایل الزامی است', 422);
|
||||
}
|
||||
if ($name === '') {
|
||||
return $this->error('VALIDATION', 'نام کلینیک الزامی است', 422);
|
||||
}
|
||||
|
||||
$user = $this->em->getRepository(User::class)->findOneBy(['mobileNumber' => $mobile]);
|
||||
if (!$user) {
|
||||
$user = new User($mobile);
|
||||
$this->em->persist($user);
|
||||
}
|
||||
|
||||
$clinic = new Clinic($user);
|
||||
$clinic->setName($name);
|
||||
if (!empty($data['telephone'])) $clinic->setTelephone($data['telephone']);
|
||||
if (!empty($data['address'])) $clinic->setAddress($data['address']);
|
||||
if (!empty($data['info'])) $clinic->setInfo($data['info']);
|
||||
|
||||
$this->em->persist($clinic);
|
||||
$this->em->flush();
|
||||
|
||||
return $this->success(['uuid' => $clinic->getUuid(), 'name' => $clinic->getName(), 'is_active' => $clinic->isActive()]);
|
||||
}
|
||||
|
||||
#[Route('/api/v1/admin/clinic/{uuid}/status', methods: ['PATCH'])]
|
||||
public function toggleClinicStatus(string $uuid): JsonResponse
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user