- 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.
1 line
10 KiB
JSON
1 line
10 KiB
JSON
{"nodes": [{"id": "users_hamed_pj_my_pj_clinic_pro_clinicpro_docs_phase2_taskes_task_14_sms_panel_task_md", "label": "task.md", "file_type": "document", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L1"}, {"id": "task_14_sms_panel_task_\u062a\u0633\u06a9_\u06f1\u06f4_\u067e\u0646\u0644_\u067e\u06cc\u0627\u0645\u06a9\u06cc_\u06a9\u06cc\u0641_\u067e\u0648\u0644_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_sms_panel", "label": "\u062a\u0633\u06a9 \u06f1\u06f4: \u067e\u0646\u0644 \u067e\u06cc\u0627\u0645\u06a9\u06cc \u2014 \u06a9\u06cc\u0641 \u067e\u0648\u0644 + \u062a\u0646\u0638\u06cc\u0645\u0627\u062a (SMS Panel)", "file_type": "document", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L1"}, {"id": "task_14_sms_panel_task_\u062a\u0648\u0636\u06cc\u062d", "label": "\u062a\u0648\u0636\u06cc\u062d", "file_type": "document", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L3"}, {"id": "task_14_sms_panel_task_endpoint_\u0647\u0627_\u0647\u0645\u0647_\u062c\u062f\u06cc\u062f", "label": "Endpoint \u0647\u0627 (\u0647\u0645\u0647 \u062c\u062f\u06cc\u062f)", "file_type": "document", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L8"}, {"id": "task_14_sms_panel_task_\u067e\u06cc\u0634_\u0646\u06cc\u0627\u0632\u0647\u0627", "label": "\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627", "file_type": "document", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L19"}, {"id": "task_14_sms_panel_task_\u0632\u0645\u0627\u0646_\u062a\u062e\u0645\u06cc\u0646\u06cc", "label": "\u0632\u0645\u0627\u0646 \u062a\u062e\u0645\u06cc\u0646\u06cc", "file_type": "document", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L23"}, {"id": "task_14_sms_panel_task_\u0646\u0645\u0648\u0646\u0647_request", "label": "\u0646\u0645\u0648\u0646\u0647 Request", "file_type": "document", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L26"}, {"id": "task_14_sms_panel_task_post_api_v1_sms_wallet_charge", "label": "POST /api/v1/sms/wallet/charge", "file_type": "document", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L28"}, {"id": "task_14_sms_panel_task_patch_api_v1_sms_settings", "label": "PATCH /api/v1/sms/settings", "file_type": "document", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L37"}, {"id": "task_14_sms_panel_task_\u0646\u0645\u0648\u0646\u0647_response", "label": "\u0646\u0645\u0648\u0646\u0647 Response", "file_type": "document", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L47"}, {"id": "task_14_sms_panel_task_get_api_v1_sms_wallet_balance", "label": "GET /api/v1/sms/wallet/balance", "file_type": "document", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L49"}, {"id": "task_14_sms_panel_task_get_api_v1_sms_wallet_logs", "label": "GET /api/v1/sms/wallet/logs", "file_type": "document", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L61"}, {"id": "task_14_sms_panel_task_get_api_v1_sms_settings", "label": "GET /api/v1/sms/settings", "file_type": "document", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L85"}, {"id": "task_14_sms_panel_task_get_api_v1_admin_sms_wallet_report", "label": "GET /api/v1/admin/sms/wallet-report", "file_type": "document", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L98"}, {"id": "task_14_sms_panel_task_siteconfig_key_\u0647\u0627\u06cc_\u0645\u0631\u062a\u0628\u0637", "label": "SiteConfig key \u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637", "file_type": "document", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L114"}, {"id": "task_14_sms_panel_task_\u06a9\u0633\u0631_\u062e\u0648\u062f\u06a9\u0627\u0631_\u0647\u0646\u06af\u0627\u0645_\u0627\u0631\u0633\u0627\u0644_\u067e\u06cc\u0627\u0645\u06a9", "label": "\u06a9\u0633\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0647\u0646\u06af\u0627\u0645 \u0627\u0631\u0633\u0627\u0644 \u067e\u06cc\u0627\u0645\u06a9", "file_type": "document", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L120"}], "edges": [{"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_docs_phase2_taskes_task_14_sms_panel_task_md", "target": "task_14_sms_panel_task_\u062a\u0633\u06a9_\u06f1\u06f4_\u067e\u0646\u0644_\u067e\u06cc\u0627\u0645\u06a9\u06cc_\u06a9\u06cc\u0641_\u067e\u0648\u0644_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_sms_panel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L1", "weight": 1.0}, {"source": "task_14_sms_panel_task_\u062a\u0633\u06a9_\u06f1\u06f4_\u067e\u0646\u0644_\u067e\u06cc\u0627\u0645\u06a9\u06cc_\u06a9\u06cc\u0641_\u067e\u0648\u0644_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_sms_panel", "target": "task_14_sms_panel_task_\u062a\u0648\u0636\u06cc\u062d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L3", "weight": 1.0}, {"source": "task_14_sms_panel_task_\u062a\u0633\u06a9_\u06f1\u06f4_\u067e\u0646\u0644_\u067e\u06cc\u0627\u0645\u06a9\u06cc_\u06a9\u06cc\u0641_\u067e\u0648\u0644_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_sms_panel", "target": "task_14_sms_panel_task_endpoint_\u0647\u0627_\u0647\u0645\u0647_\u062c\u062f\u06cc\u062f", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L8", "weight": 1.0}, {"source": "task_14_sms_panel_task_\u062a\u0633\u06a9_\u06f1\u06f4_\u067e\u0646\u0644_\u067e\u06cc\u0627\u0645\u06a9\u06cc_\u06a9\u06cc\u0641_\u067e\u0648\u0644_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_sms_panel", "target": "task_14_sms_panel_task_\u067e\u06cc\u0634_\u0646\u06cc\u0627\u0632\u0647\u0627", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L19", "weight": 1.0}, {"source": "task_14_sms_panel_task_\u062a\u0633\u06a9_\u06f1\u06f4_\u067e\u0646\u0644_\u067e\u06cc\u0627\u0645\u06a9\u06cc_\u06a9\u06cc\u0641_\u067e\u0648\u0644_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_sms_panel", "target": "task_14_sms_panel_task_\u0632\u0645\u0627\u0646_\u062a\u062e\u0645\u06cc\u0646\u06cc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L23", "weight": 1.0}, {"source": "task_14_sms_panel_task_\u062a\u0633\u06a9_\u06f1\u06f4_\u067e\u0646\u0644_\u067e\u06cc\u0627\u0645\u06a9\u06cc_\u06a9\u06cc\u0641_\u067e\u0648\u0644_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_sms_panel", "target": "task_14_sms_panel_task_\u0646\u0645\u0648\u0646\u0647_request", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L26", "weight": 1.0}, {"source": "task_14_sms_panel_task_\u0646\u0645\u0648\u0646\u0647_request", "target": "task_14_sms_panel_task_post_api_v1_sms_wallet_charge", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L28", "weight": 1.0}, {"source": "task_14_sms_panel_task_\u0646\u0645\u0648\u0646\u0647_request", "target": "task_14_sms_panel_task_patch_api_v1_sms_settings", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L37", "weight": 1.0}, {"source": "task_14_sms_panel_task_\u062a\u0633\u06a9_\u06f1\u06f4_\u067e\u0646\u0644_\u067e\u06cc\u0627\u0645\u06a9\u06cc_\u06a9\u06cc\u0641_\u067e\u0648\u0644_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_sms_panel", "target": "task_14_sms_panel_task_\u0646\u0645\u0648\u0646\u0647_response", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L47", "weight": 1.0}, {"source": "task_14_sms_panel_task_\u0646\u0645\u0648\u0646\u0647_response", "target": "task_14_sms_panel_task_get_api_v1_sms_wallet_balance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L49", "weight": 1.0}, {"source": "task_14_sms_panel_task_\u0646\u0645\u0648\u0646\u0647_response", "target": "task_14_sms_panel_task_get_api_v1_sms_wallet_logs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L61", "weight": 1.0}, {"source": "task_14_sms_panel_task_\u0646\u0645\u0648\u0646\u0647_response", "target": "task_14_sms_panel_task_get_api_v1_sms_settings", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L85", "weight": 1.0}, {"source": "task_14_sms_panel_task_\u0646\u0645\u0648\u0646\u0647_response", "target": "task_14_sms_panel_task_get_api_v1_admin_sms_wallet_report", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L98", "weight": 1.0}, {"source": "task_14_sms_panel_task_\u062a\u0633\u06a9_\u06f1\u06f4_\u067e\u0646\u0644_\u067e\u06cc\u0627\u0645\u06a9\u06cc_\u06a9\u06cc\u0641_\u067e\u0648\u0644_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_sms_panel", "target": "task_14_sms_panel_task_siteconfig_key_\u0647\u0627\u06cc_\u0645\u0631\u062a\u0628\u0637", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L114", "weight": 1.0}, {"source": "task_14_sms_panel_task_\u062a\u0633\u06a9_\u06f1\u06f4_\u067e\u0646\u0644_\u067e\u06cc\u0627\u0645\u06a9\u06cc_\u06a9\u06cc\u0641_\u067e\u0648\u0644_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_sms_panel", "target": "task_14_sms_panel_task_\u06a9\u0633\u0631_\u062e\u0648\u062f\u06a9\u0627\u0631_\u0647\u0646\u06af\u0627\u0645_\u0627\u0631\u0633\u0627\u0644_\u067e\u06cc\u0627\u0645\u06a9", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-14-sms-panel/task.md", "source_location": "L120", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} |