- 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
13 KiB
JSON
1 line
13 KiB
JSON
{"nodes": [{"id": "users_hamed_pj_my_pj_clinic_pro_clinicpro_docs_phase2_taskes_task_12_secretary_completion_task_md", "label": "task.md", "file_type": "document", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L1"}, {"id": "task_12_secretary_completion_task_\u062a\u0633\u06a9_\u06f1\u06f2_\u062a\u06a9\u0645\u06cc\u0644_\u0645\u0646\u0634\u06cc_\u0645\u062d\u062f\u0648\u062f\u06cc\u062a_\u067e\u0646\u0644_ui_permissions", "label": "\u062a\u0633\u06a9 \u06f1\u06f2: \u062a\u06a9\u0645\u06cc\u0644 \u0645\u0646\u0634\u06cc \u2014 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u067e\u0646\u0644 + UI Permissions", "file_type": "document", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L1"}, {"id": "task_12_secretary_completion_task_\u062a\u0648\u0636\u06cc\u062d", "label": "\u062a\u0648\u0636\u06cc\u062d", "file_type": "document", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L3"}, {"id": "task_12_secretary_completion_task_\u0641\u0627\u06cc\u0644_\u0647\u0627\u06cc_\u0645\u0648\u062c\u0648\u062f_\u06a9\u0647_\u062a\u063a\u06cc\u06cc\u0631_\u0645\u06cc_\u06a9\u0646\u0646\u062f", "label": "\u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u06a9\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f", "file_type": "document", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L12"}, {"id": "task_12_secretary_completion_task_api_\u0645\u0648\u062c\u0648\u062f_\u0628\u062f\u0648\u0646_\u062a\u063a\u06cc\u06cc\u0631", "label": "API \u0645\u0648\u062c\u0648\u062f (\u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631)", "file_type": "document", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L19"}, {"id": "task_12_secretary_completion_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-12-secretary-completion/task.md", "source_location": "L28"}, {"id": "task_12_secretary_completion_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-12-secretary-completion/task.md", "source_location": "L33"}, {"id": "task_12_secretary_completion_task_\u062a\u063a\u06cc\u06cc\u0631_backend_secretarycontroller_create", "label": "\u062a\u063a\u06cc\u06cc\u0631 Backend \u2014 SecretaryController::create()", "file_type": "document", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L37"}, {"id": "task_12_secretary_completion_task_\u0648\u0636\u0639\u06cc\u062a_\u0641\u0639\u0644\u06cc_\u0642\u0628\u0644", "label": "\u0648\u0636\u0639\u06cc\u062a \u0641\u0639\u0644\u06cc (\u0642\u0628\u0644):", "file_type": "document", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L39"}, {"id": "task_12_secretary_completion_task_\u0648\u0636\u0639\u06cc\u062a_\u062c\u062f\u06cc\u062f_\u0628\u0639\u062f", "label": "\u0648\u0636\u0639\u06cc\u062a \u062c\u062f\u06cc\u062f (\u0628\u0639\u062f):", "file_type": "document", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L51"}, {"id": "task_12_secretary_completion_task_\u062e\u0637\u0627\u06cc_\u062c\u062f\u06cc\u062f_\u06a9\u0647_\u0628\u0627\u06cc\u062f_\u062f\u0631_errorcodes_php_\u0627\u0636\u0627\u0641\u0647_\u0634\u0648\u062f", "label": "\u062e\u0637\u0627\u06cc \u062c\u062f\u06cc\u062f \u06a9\u0647 \u0628\u0627\u06cc\u062f \u062f\u0631 ErrorCodes.php \u0627\u0636\u0627\u0641\u0647 \u0634\u0648\u062f:", "file_type": "document", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L76"}, {"id": "task_12_secretary_completion_task_\u062a\u063a\u06cc\u06cc\u0631_frontend_secretariespage_tsx", "label": "\u062a\u063a\u06cc\u06cc\u0631 Frontend \u2014 SecretariesPage.tsx", "file_type": "document", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L84"}, {"id": "task_12_secretary_completion_task_\u0633\u0627\u062e\u062a\u0627\u0631_default_permissions_\u0627\u0632_doctorsecretary_default_permissions", "label": "\u0633\u0627\u062e\u062a\u0627\u0631 DEFAULT_PERMISSIONS (\u0627\u0632 DoctorSecretary::DEFAULT_PERMISSIONS):", "file_type": "document", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L86"}, {"id": "task_12_secretary_completion_task_\u0646\u0645\u0648\u0646\u0647_ui_permissions_checkbox_matrix_\u062f\u0631_modal", "label": "\u0646\u0645\u0648\u0646\u0647 UI Permissions checkbox matrix \u062f\u0631 Modal:", "file_type": "document", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L100"}, {"id": "task_12_secretary_completion_task_patch_api_v1_secretary_uuid_\u0628\u0627_permissions", "label": "PATCH /api/v1/secretary/{uuid} \u0628\u0627 permissions:", "file_type": "document", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L115"}, {"id": "task_12_secretary_completion_task_\u06a9\u062f\u0647\u0627\u06cc_\u062e\u0637\u0627\u06cc_\u062c\u062f\u06cc\u062f", "label": "\u06a9\u062f\u0647\u0627\u06cc \u062e\u0637\u0627\u06cc \u062c\u062f\u06cc\u062f", "file_type": "document", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L139"}, {"id": "task_12_secretary_completion_task_response_\u062e\u0637\u0627_403", "label": "Response \u062e\u0637\u0627 (403)", "file_type": "document", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L145"}], "edges": [{"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_docs_phase2_taskes_task_12_secretary_completion_task_md", "target": "task_12_secretary_completion_task_\u062a\u0633\u06a9_\u06f1\u06f2_\u062a\u06a9\u0645\u06cc\u0644_\u0645\u0646\u0634\u06cc_\u0645\u062d\u062f\u0648\u062f\u06cc\u062a_\u067e\u0646\u0644_ui_permissions", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L1", "weight": 1.0}, {"source": "task_12_secretary_completion_task_\u062a\u0633\u06a9_\u06f1\u06f2_\u062a\u06a9\u0645\u06cc\u0644_\u0645\u0646\u0634\u06cc_\u0645\u062d\u062f\u0648\u062f\u06cc\u062a_\u067e\u0646\u0644_ui_permissions", "target": "task_12_secretary_completion_task_\u062a\u0648\u0636\u06cc\u062d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L3", "weight": 1.0}, {"source": "task_12_secretary_completion_task_\u062a\u0633\u06a9_\u06f1\u06f2_\u062a\u06a9\u0645\u06cc\u0644_\u0645\u0646\u0634\u06cc_\u0645\u062d\u062f\u0648\u062f\u06cc\u062a_\u067e\u0646\u0644_ui_permissions", "target": "task_12_secretary_completion_task_\u0641\u0627\u06cc\u0644_\u0647\u0627\u06cc_\u0645\u0648\u062c\u0648\u062f_\u06a9\u0647_\u062a\u063a\u06cc\u06cc\u0631_\u0645\u06cc_\u06a9\u0646\u0646\u062f", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L12", "weight": 1.0}, {"source": "task_12_secretary_completion_task_\u062a\u0633\u06a9_\u06f1\u06f2_\u062a\u06a9\u0645\u06cc\u0644_\u0645\u0646\u0634\u06cc_\u0645\u062d\u062f\u0648\u062f\u06cc\u062a_\u067e\u0646\u0644_ui_permissions", "target": "task_12_secretary_completion_task_api_\u0645\u0648\u062c\u0648\u062f_\u0628\u062f\u0648\u0646_\u062a\u063a\u06cc\u06cc\u0631", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L19", "weight": 1.0}, {"source": "task_12_secretary_completion_task_\u062a\u0633\u06a9_\u06f1\u06f2_\u062a\u06a9\u0645\u06cc\u0644_\u0645\u0646\u0634\u06cc_\u0645\u062d\u062f\u0648\u062f\u06cc\u062a_\u067e\u0646\u0644_ui_permissions", "target": "task_12_secretary_completion_task_\u067e\u06cc\u0634_\u0646\u06cc\u0627\u0632\u0647\u0627", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L28", "weight": 1.0}, {"source": "task_12_secretary_completion_task_\u062a\u0633\u06a9_\u06f1\u06f2_\u062a\u06a9\u0645\u06cc\u0644_\u0645\u0646\u0634\u06cc_\u0645\u062d\u062f\u0648\u062f\u06cc\u062a_\u067e\u0646\u0644_ui_permissions", "target": "task_12_secretary_completion_task_\u0632\u0645\u0627\u0646_\u062a\u062e\u0645\u06cc\u0646\u06cc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L33", "weight": 1.0}, {"source": "task_12_secretary_completion_task_\u062a\u0633\u06a9_\u06f1\u06f2_\u062a\u06a9\u0645\u06cc\u0644_\u0645\u0646\u0634\u06cc_\u0645\u062d\u062f\u0648\u062f\u06cc\u062a_\u067e\u0646\u0644_ui_permissions", "target": "task_12_secretary_completion_task_\u062a\u063a\u06cc\u06cc\u0631_backend_secretarycontroller_create", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L37", "weight": 1.0}, {"source": "task_12_secretary_completion_task_\u062a\u063a\u06cc\u06cc\u0631_backend_secretarycontroller_create", "target": "task_12_secretary_completion_task_\u0648\u0636\u0639\u06cc\u062a_\u0641\u0639\u0644\u06cc_\u0642\u0628\u0644", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L39", "weight": 1.0}, {"source": "task_12_secretary_completion_task_\u062a\u063a\u06cc\u06cc\u0631_backend_secretarycontroller_create", "target": "task_12_secretary_completion_task_\u0648\u0636\u0639\u06cc\u062a_\u062c\u062f\u06cc\u062f_\u0628\u0639\u062f", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L51", "weight": 1.0}, {"source": "task_12_secretary_completion_task_\u062a\u063a\u06cc\u06cc\u0631_backend_secretarycontroller_create", "target": "task_12_secretary_completion_task_\u062e\u0637\u0627\u06cc_\u062c\u062f\u06cc\u062f_\u06a9\u0647_\u0628\u0627\u06cc\u062f_\u062f\u0631_errorcodes_php_\u0627\u0636\u0627\u0641\u0647_\u0634\u0648\u062f", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L76", "weight": 1.0}, {"source": "task_12_secretary_completion_task_\u062a\u0633\u06a9_\u06f1\u06f2_\u062a\u06a9\u0645\u06cc\u0644_\u0645\u0646\u0634\u06cc_\u0645\u062d\u062f\u0648\u062f\u06cc\u062a_\u067e\u0646\u0644_ui_permissions", "target": "task_12_secretary_completion_task_\u062a\u063a\u06cc\u06cc\u0631_frontend_secretariespage_tsx", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L84", "weight": 1.0}, {"source": "task_12_secretary_completion_task_\u062a\u063a\u06cc\u06cc\u0631_frontend_secretariespage_tsx", "target": "task_12_secretary_completion_task_\u0633\u0627\u062e\u062a\u0627\u0631_default_permissions_\u0627\u0632_doctorsecretary_default_permissions", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L86", "weight": 1.0}, {"source": "task_12_secretary_completion_task_\u062a\u063a\u06cc\u06cc\u0631_frontend_secretariespage_tsx", "target": "task_12_secretary_completion_task_\u0646\u0645\u0648\u0646\u0647_ui_permissions_checkbox_matrix_\u062f\u0631_modal", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L100", "weight": 1.0}, {"source": "task_12_secretary_completion_task_\u062a\u063a\u06cc\u06cc\u0631_frontend_secretariespage_tsx", "target": "task_12_secretary_completion_task_patch_api_v1_secretary_uuid_\u0628\u0627_permissions", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L115", "weight": 1.0}, {"source": "task_12_secretary_completion_task_\u062a\u0633\u06a9_\u06f1\u06f2_\u062a\u06a9\u0645\u06cc\u0644_\u0645\u0646\u0634\u06cc_\u0645\u062d\u062f\u0648\u062f\u06cc\u062a_\u067e\u0646\u0644_ui_permissions", "target": "task_12_secretary_completion_task_\u06a9\u062f\u0647\u0627\u06cc_\u062e\u0637\u0627\u06cc_\u062c\u062f\u06cc\u062f", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L139", "weight": 1.0}, {"source": "task_12_secretary_completion_task_\u062a\u0633\u06a9_\u06f1\u06f2_\u062a\u06a9\u0645\u06cc\u0644_\u0645\u0646\u0634\u06cc_\u0645\u062d\u062f\u0648\u062f\u06cc\u062a_\u067e\u0646\u0644_ui_permissions", "target": "task_12_secretary_completion_task_response_\u062e\u0637\u0627_403", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/phase2_taskes/task-12-secretary-completion/task.md", "source_location": "L145", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} |