feat(migrations): add national_code_verified flag to users and normalize bank_account representation

- Added a new column `national_code_verified` to the `users` table.
- Normalized the `bank_account` field in the `representations` table from a single object to an array of IBANs with a default `verified` status of false.

feat(ApiIrService): implement identity verification client for api.ir

- Created `ApiIrService` to handle identity verification via api.ir.
- Implemented methods for matching national code with mobile and IBAN with national code and birth date.
- Added error handling and logging for external API requests.
This commit is contained in:
hamed
2026-06-25 19:38:47 +03:30
parent 9b608aaeac
commit c2c6ae4d02
515 changed files with 194899 additions and 55 deletions
+10 -11
View File
@@ -38,13 +38,15 @@ REFRESH_TOKEN_TTL=2592000
OTP_TTL=1200
###< Auth ###
###> SMS ###
KAVENEGAR_API_KEY=CHANGE_ME
KAVENEGAR_SENDER=CHANGE_ME
RANGINEH_API_KEY=CHANGE_ME
RANGINEH_SENDER=CHANGE_ME
SMS_PROVIDER=kavenegar
###< SMS ###
# SMS keys (kavenegar/rangineh) از پنل «تنظیمات سایت» (DB) خوانده می‌شوند، نه env.
# env فقط fallback اختیاری است؛ نیازی به تعریف اینجا نیست.
###> api.ir Identity Inquiry (Shahkar + IbanMatch) ###
# استعلام هویت نماینده: تطبیق کد ملی با موبایل (شاهکار) و تطبیق شبا با کد ملی.
# توکن خالی = سرویس fail-closed (استعلام انجام نمی‌شود و تأیید رد می‌شود).
API_IR_BASE_URL=https://s.api.ir
API_IR_TOKEN=CHANGE_ME
###< api.ir Identity Inquiry ###
###> File Upload ###
MAX_FILE_SIZE_BYTES=5242880
@@ -54,8 +56,5 @@ UPLOAD_DIR=var/uploads
###> Payment ###
ALLOWED_FRONTEND_HOSTS=your-domain.com
APP_BASE_URL=https://your-domain.com
MELLAT_TERMINAL_ID=CHANGE_ME
MELLAT_USERNAME=CHANGE_ME
MELLAT_PASSWORD=CHANGE_ME
SEP_TERMINAL_ID=CHANGE_ME
# کلیدهای درگاه (mellat/sep) از پنل «تنظیمات سایت» (DB) خوانده می‌شوند؛ env فقط fallback اختیاری است.
###< Payment ###