feat: Implement SMS sending functionality with KavehNegar and Rangineh providers

- Add SendSmsMessage class for encapsulating SMS message data.
- Create KavehNegarProvider and RanginehProvider classes implementing SmsProviderInterface for sending SMS.
- Implement SmsLogRepository and SmsTemplateRepository for managing SMS logs and templates.
- Develop SendSmsHandler for handling SMS sending messages.
- Create SmsService to manage SMS dispatching and logging.
- Add UserProfileController for managing user profiles with CRUD operations.
- Implement UserProfile entity and repository for user profile data management.
- Update symfony.lock and bootstrap.php for project dependencies and environment setup.
This commit is contained in:
hamed
2026-06-09 22:00:34 +03:30
commit de1a78a235
222 changed files with 36388 additions and 0 deletions
+52
View File
@@ -0,0 +1,52 @@
# تسک ۰۸: ماژول دسته‌بندی‌ها و Lookup ها
## توضیح
پیاده‌سازی لیست‌های ثابت (lookup) مثل استان‌ها، شهرها، تخصص‌های پزشکی،
بیمه‌ها، تگ‌ها و مدیریت دسته‌بندی‌ها.
## Endpoint ها
| متد | مسیر | توضیح | نیاز به Auth |
|-----|------|-------|-------------|
| GET | `/api/v1/categorys/tag` | لیست تگ‌ها | خیر |
| GET | `/api/v1/categorys/supplementary_insurance` | بیمه‌های تکمیلی | خیر |
| GET | `/api/v1/categorys/insurance_type` | نوع بیمه پایه | خیر |
| GET | `/api/v1/categorys/state` | لیست استان‌ها | خیر |
| GET | `/api/v1/categorys/city` | لیست شهرها | خیر |
| GET | `/api/v1/categorys/specially_doctor` | تخصص‌های پزشکی | خیر |
| GET | `/api/v1/categorys/doctor_services` | سرویس‌های پزشکی | خیر |
| POST | `/api/v1/category` | ایجاد دسته‌بندی | بله (Admin) |
| PATCH | `/api/v1/category/{id}` | ویرایش دسته‌بندی | بله (Admin) |
| DELETE | `/api/v1/category/{id}` | حذف دسته‌بندی | بله (Admin) |
## پیش‌نیازها
- تسک ۰۱ و ۰۲
## نکته مهم
این تسک باید **قبل از تسک‌های ۰۵، ۰۶** انجام شود چون
تسک‌های دکتر و کلینیک به categories وابسته‌اند.
## زمان تخمینی
۴ تا ۵ ساعت
## نمونه Response
### GET /api/v1/categorys/state
```json
{
"data": [
{ "id": 1, "name": "تهران", "code": "tehran" },
{ "id": 2, "name": "اصفهان", "code": "isfahan" }
]
}
```
### GET /api/v1/categorys/specially_doctor
```json
{
"data": [
{ "id": 1, "name": "قلب و عروق", "code": "cardiology" },
{ "id": 2, "name": "مغز و اعصاب", "code": "neurology" }
]
}
```