feat: implement doctor invitation acceptance logic to add doctors to clinic_doctors

This commit is contained in:
hamed
2026-06-13 17:53:27 +03:30
parent 5c167b5d39
commit aa15addcb9
5 changed files with 310 additions and 6 deletions
@@ -75,8 +75,25 @@ class ClinicInvitationService
if (!$inv->isUsable()) {
throw new AppException('ERR_NOT_FOUND_001', 'دعوتنامه منقضی یا غیرمعتبر است', 410);
}
$inv->setStatus(ClinicDoctorInvitation::STATUS_ACCEPTED);
$inv->markUsed();
$doctor = $inv->getDoctor();
if ($doctor === null) {
$doctor = $this->doctorRepo->findOneByMobile($inv->getMobile());
if ($doctor !== null) {
$inv->setDoctor($doctor);
}
}
if ($doctor !== null) {
$clinic = $inv->getClinic();
if (!$clinic->getDoctors()->contains($doctor)) {
$clinic->getDoctors()->add($doctor);
}
}
$this->em->flush();
}