feat: Add tagging system for SMS logs and templates
- Introduced a `tag` field in the `SmsLog` entity to categorize SMS messages. - Updated the `SmsService` to handle the new `tag` parameter during SMS dispatch. - Implemented a `SmsTextResolver` service to resolve SMS message templates based on tags. - Created a new `SmsMessageTemplate` entity for editable SMS templates with placeholders. - Added endpoints for managing SMS message templates in the admin panel. - Enhanced existing SMS dispatching methods across various controllers to utilize the tagging system. - Migrated the database to include the new `tag` field and created a seeding command for default SMS templates. - Updated admin API to filter SMS logs by tag and include tag information in responses.
This commit is contained in:
@@ -33,6 +33,7 @@ class PreRegistrationController extends BaseController
|
||||
private readonly ClinicRepository $clinicRepo,
|
||||
private readonly UserPasswordHasherInterface $hasher,
|
||||
private readonly SmsService $sms,
|
||||
private readonly \App\Sms\Service\SmsTextResolver $smsText,
|
||||
private readonly LoggerInterface $logger,
|
||||
) {}
|
||||
|
||||
@@ -154,13 +155,15 @@ class PreRegistrationController extends BaseController
|
||||
$this->em->flush();
|
||||
|
||||
try {
|
||||
$message = $this->smsText->resolve(\App\Sms\Entity\SmsLog::TAG_PRE_REGISTRATION, [
|
||||
'username' => $preReg->getMobile(),
|
||||
'password' => $password,
|
||||
'link' => 'https://clinic-pro.ddev.site/admin',
|
||||
]);
|
||||
$this->sms->dispatchAsync(
|
||||
$preReg->getMobile(),
|
||||
sprintf(
|
||||
'به کلینیک پرو خوش آمدید! شمارهکاربری: %s | رمز عبور: %s | لینک ورود: https://clinic-pro.ddev.site/admin',
|
||||
$preReg->getMobile(),
|
||||
$password
|
||||
)
|
||||
$message,
|
||||
tag: \App\Sms\Entity\SmsLog::TAG_PRE_REGISTRATION,
|
||||
);
|
||||
} catch (\Throwable $e) {
|
||||
$this->logger->warning('PreRegistration SMS failed', ['uuid' => $uuid, 'error' => $e->getMessage()]);
|
||||
|
||||
Reference in New Issue
Block a user