Files
clinicpro/graphify-out/cache/ast/v0.8.44/505938967d29a4e337e18cb22f2a299f97e5e452e05c9b94a9e409c86107f23c.json
T
hamed c2c6ae4d02 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.
2026-06-25 19:38:47 +03:30

1 line
16 KiB
JSON

{"nodes": [{"id": "users_hamed_pj_my_pj_clinic_pro_clinicpro_claude_prompt_doctor_booking_window_and_month_availability_md", "label": "doctor-booking-window-and-month-availability.md", "file_type": "document", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L1"}, {"id": "prompt_doctor_booking_window_and_month_availability_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_\u0646\u0648\u0628\u062a_\u062f\u0647\u06cc_\u0622\u0646\u0644\u0627\u06cc\u0646_\u062f\u06a9\u062a\u0631_\u0628\u0627\u0632\u0647_\u06cc_\u0631\u0632\u0631\u0648_booking_window_endpoint_\u062f\u0631_\u062f\u0633\u062a\u0631\u0633_\u0628\u0648\u062f\u0646_\u0645\u0627\u0647\u0627\u0646\u0647", "label": "\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0646\u0648\u0628\u062a\u200c\u062f\u0647\u06cc \u0622\u0646\u0644\u0627\u06cc\u0646 \u062f\u06a9\u062a\u0631: \u0628\u0627\u0632\u0647\u200c\u06cc \u0631\u0632\u0631\u0648 (booking window) + endpoint \u062f\u0631\u200c\u062f\u0633\u062a\u0631\u0633\u200c\u0628\u0648\u062f\u0646 \u0645\u0627\u0647\u0627\u0646\u0647", "file_type": "document", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L1"}, {"id": "prompt_doctor_booking_window_and_month_availability_\u067e\u0631\u0648\u0698\u0647", "label": "\u067e\u0631\u0648\u0698\u0647", "file_type": "document", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L3"}, {"id": "prompt_doctor_booking_window_and_month_availability_\u0632\u0645\u06cc\u0646\u0647", "label": "\u0632\u0645\u06cc\u0646\u0647", "file_type": "document", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L10"}, {"id": "prompt_doctor_booking_window_and_month_availability_\u0645\u0634\u06a9\u0644_\u0647\u062f\u0641", "label": "\u0645\u0634\u06a9\u0644 / \u0647\u062f\u0641", "file_type": "document", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L19"}, {"id": "prompt_doctor_booking_window_and_month_availability_\u0641\u0627\u06cc\u0644_\u0647\u0627\u06cc_\u0645\u0631\u062a\u0628\u0637", "label": "\u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637", "file_type": "document", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L26"}, {"id": "prompt_doctor_booking_window_and_month_availability_\u0648\u0636\u0639\u06cc\u062a_\u0641\u0639\u0644\u06cc_\u06a9\u062f_\u0648\u0627\u0642\u0639\u06cc", "label": "\u0648\u0636\u0639\u06cc\u062a \u0641\u0639\u0644\u06cc (\u06a9\u062f \u0648\u0627\u0642\u0639\u06cc)", "file_type": "document", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L39"}, {"id": "prompt_doctor_booking_window_and_month_availability_weeklyschedule_php_\u0630\u062e\u06cc\u0631\u0647_\u0633\u0627\u0632\u06cc_\u062f\u0631_json", "label": "`WeeklySchedule.php` \u2014 \u0630\u062e\u06cc\u0631\u0647\u200c\u0633\u0627\u0632\u06cc \u062f\u0631 JSON", "file_type": "document", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L41"}, {"id": "prompt_doctor_booking_window_and_month_availability_slotcalculatorservice_buildallsessions_\u062a\u0631\u062a\u06cc\u0628_\u0627\u0648\u0644\u0648\u06cc\u062a_\u0641\u0639\u0644\u06cc", "label": "`SlotCalculatorService::buildAllSessions()` \u2014 \u062a\u0631\u062a\u06cc\u0628 \u0627\u0648\u0644\u0648\u06cc\u062a \u0641\u0639\u0644\u06cc", "file_type": "document", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L50"}, {"id": "prompt_doctor_booking_window_and_month_availability_appointment_slots_controller_\u0628\u062f\u0648\u0646_\u0686\u06a9_window", "label": "`appointment-slots` controller \u2014 \u0628\u062f\u0648\u0646 \u0686\u06a9 window", "file_type": "document", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L76"}, {"id": "prompt_doctor_booking_window_and_month_availability_doctordetailpage_tsx_schedule_\u0627\u0632_\u0642\u0628\u0644_\u0630\u062e\u06cc\u0631\u0647_\u0645\u06cc_\u0634\u0648\u062f", "label": "`DoctorDetailPage.tsx` \u2014 schedule \u0627\u0632 \u0642\u0628\u0644 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f", "file_type": "document", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L91"}, {"id": "prompt_doctor_booking_window_and_month_availability_\u0648\u0638\u0627\u06cc\u0641", "label": "\u0648\u0638\u0627\u06cc\u0641", "file_type": "document", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L101"}, {"id": "prompt_doctor_booking_window_and_month_availability_\u06f1_\u0645\u062f\u0644_booking_window_\u062f\u0631_weeklyschedule_setting", "label": "\u06f1. \u0645\u062f\u0644 booking window \u062f\u0631 `WeeklySchedule.setting`", "file_type": "document", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L105"}, {"id": "prompt_doctor_booking_window_and_month_availability_\u06f2_\u0627\u0639\u0645\u0627\u0644_window_\u062f\u0631_slotcalculatorservice", "label": "\u06f2. \u0627\u0639\u0645\u0627\u0644 window \u062f\u0631 `SlotCalculatorService`", "file_type": "document", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L125"}, {"id": "prompt_doctor_booking_window_and_month_availability_\u06f3_endpoint_\u0639\u0645\u0648\u0645\u06cc_month_availability", "label": "\u06f3. endpoint \u0639\u0645\u0648\u0645\u06cc month-availability", "file_type": "document", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L134"}, {"id": "prompt_doctor_booking_window_and_month_availability_\u06f4_ui_\u062f\u0631_\u067e\u0646\u0644_\u0627\u062f\u0645\u06cc\u0646_doctordetailpage_tsx", "label": "\u06f4. UI \u062f\u0631 \u067e\u0646\u0644 \u0627\u062f\u0645\u06cc\u0646 (`DoctorDetailPage.tsx`)", "file_type": "document", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L158"}, {"id": "prompt_doctor_booking_window_and_month_availability_\u0646\u06a9\u0627\u062a_\u0645\u0647\u0645", "label": "\u0646\u06a9\u0627\u062a \u0645\u0647\u0645", "file_type": "document", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L167"}], "edges": [{"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_claude_prompt_doctor_booking_window_and_month_availability_md", "target": "prompt_doctor_booking_window_and_month_availability_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_\u0646\u0648\u0628\u062a_\u062f\u0647\u06cc_\u0622\u0646\u0644\u0627\u06cc\u0646_\u062f\u06a9\u062a\u0631_\u0628\u0627\u0632\u0647_\u06cc_\u0631\u0632\u0631\u0648_booking_window_endpoint_\u062f\u0631_\u062f\u0633\u062a\u0631\u0633_\u0628\u0648\u062f\u0646_\u0645\u0627\u0647\u0627\u0646\u0647", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L1", "weight": 1.0}, {"source": "prompt_doctor_booking_window_and_month_availability_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_\u0646\u0648\u0628\u062a_\u062f\u0647\u06cc_\u0622\u0646\u0644\u0627\u06cc\u0646_\u062f\u06a9\u062a\u0631_\u0628\u0627\u0632\u0647_\u06cc_\u0631\u0632\u0631\u0648_booking_window_endpoint_\u062f\u0631_\u062f\u0633\u062a\u0631\u0633_\u0628\u0648\u062f\u0646_\u0645\u0627\u0647\u0627\u0646\u0647", "target": "prompt_doctor_booking_window_and_month_availability_\u067e\u0631\u0648\u0698\u0647", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L3", "weight": 1.0}, {"source": "prompt_doctor_booking_window_and_month_availability_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_\u0646\u0648\u0628\u062a_\u062f\u0647\u06cc_\u0622\u0646\u0644\u0627\u06cc\u0646_\u062f\u06a9\u062a\u0631_\u0628\u0627\u0632\u0647_\u06cc_\u0631\u0632\u0631\u0648_booking_window_endpoint_\u062f\u0631_\u062f\u0633\u062a\u0631\u0633_\u0628\u0648\u062f\u0646_\u0645\u0627\u0647\u0627\u0646\u0647", "target": "prompt_doctor_booking_window_and_month_availability_\u0632\u0645\u06cc\u0646\u0647", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L10", "weight": 1.0}, {"source": "prompt_doctor_booking_window_and_month_availability_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_\u0646\u0648\u0628\u062a_\u062f\u0647\u06cc_\u0622\u0646\u0644\u0627\u06cc\u0646_\u062f\u06a9\u062a\u0631_\u0628\u0627\u0632\u0647_\u06cc_\u0631\u0632\u0631\u0648_booking_window_endpoint_\u062f\u0631_\u062f\u0633\u062a\u0631\u0633_\u0628\u0648\u062f\u0646_\u0645\u0627\u0647\u0627\u0646\u0647", "target": "prompt_doctor_booking_window_and_month_availability_\u0645\u0634\u06a9\u0644_\u0647\u062f\u0641", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L19", "weight": 1.0}, {"source": "prompt_doctor_booking_window_and_month_availability_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_\u0646\u0648\u0628\u062a_\u062f\u0647\u06cc_\u0622\u0646\u0644\u0627\u06cc\u0646_\u062f\u06a9\u062a\u0631_\u0628\u0627\u0632\u0647_\u06cc_\u0631\u0632\u0631\u0648_booking_window_endpoint_\u062f\u0631_\u062f\u0633\u062a\u0631\u0633_\u0628\u0648\u062f\u0646_\u0645\u0627\u0647\u0627\u0646\u0647", "target": "prompt_doctor_booking_window_and_month_availability_\u0641\u0627\u06cc\u0644_\u0647\u0627\u06cc_\u0645\u0631\u062a\u0628\u0637", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L26", "weight": 1.0}, {"source": "prompt_doctor_booking_window_and_month_availability_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_\u0646\u0648\u0628\u062a_\u062f\u0647\u06cc_\u0622\u0646\u0644\u0627\u06cc\u0646_\u062f\u06a9\u062a\u0631_\u0628\u0627\u0632\u0647_\u06cc_\u0631\u0632\u0631\u0648_booking_window_endpoint_\u062f\u0631_\u062f\u0633\u062a\u0631\u0633_\u0628\u0648\u062f\u0646_\u0645\u0627\u0647\u0627\u0646\u0647", "target": "prompt_doctor_booking_window_and_month_availability_\u0648\u0636\u0639\u06cc\u062a_\u0641\u0639\u0644\u06cc_\u06a9\u062f_\u0648\u0627\u0642\u0639\u06cc", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L39", "weight": 1.0}, {"source": "prompt_doctor_booking_window_and_month_availability_\u0648\u0636\u0639\u06cc\u062a_\u0641\u0639\u0644\u06cc_\u06a9\u062f_\u0648\u0627\u0642\u0639\u06cc", "target": "prompt_doctor_booking_window_and_month_availability_weeklyschedule_php_\u0630\u062e\u06cc\u0631\u0647_\u0633\u0627\u0632\u06cc_\u062f\u0631_json", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L41", "weight": 1.0}, {"source": "prompt_doctor_booking_window_and_month_availability_\u0648\u0636\u0639\u06cc\u062a_\u0641\u0639\u0644\u06cc_\u06a9\u062f_\u0648\u0627\u0642\u0639\u06cc", "target": "prompt_doctor_booking_window_and_month_availability_slotcalculatorservice_buildallsessions_\u062a\u0631\u062a\u06cc\u0628_\u0627\u0648\u0644\u0648\u06cc\u062a_\u0641\u0639\u0644\u06cc", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L50", "weight": 1.0}, {"source": "prompt_doctor_booking_window_and_month_availability_\u0648\u0636\u0639\u06cc\u062a_\u0641\u0639\u0644\u06cc_\u06a9\u062f_\u0648\u0627\u0642\u0639\u06cc", "target": "prompt_doctor_booking_window_and_month_availability_appointment_slots_controller_\u0628\u062f\u0648\u0646_\u0686\u06a9_window", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L76", "weight": 1.0}, {"source": "prompt_doctor_booking_window_and_month_availability_\u0648\u0636\u0639\u06cc\u062a_\u0641\u0639\u0644\u06cc_\u06a9\u062f_\u0648\u0627\u0642\u0639\u06cc", "target": "prompt_doctor_booking_window_and_month_availability_doctordetailpage_tsx_schedule_\u0627\u0632_\u0642\u0628\u0644_\u0630\u062e\u06cc\u0631\u0647_\u0645\u06cc_\u0634\u0648\u062f", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L91", "weight": 1.0}, {"source": "prompt_doctor_booking_window_and_month_availability_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_\u0646\u0648\u0628\u062a_\u062f\u0647\u06cc_\u0622\u0646\u0644\u0627\u06cc\u0646_\u062f\u06a9\u062a\u0631_\u0628\u0627\u0632\u0647_\u06cc_\u0631\u0632\u0631\u0648_booking_window_endpoint_\u062f\u0631_\u062f\u0633\u062a\u0631\u0633_\u0628\u0648\u062f\u0646_\u0645\u0627\u0647\u0627\u0646\u0647", "target": "prompt_doctor_booking_window_and_month_availability_\u0648\u0638\u0627\u06cc\u0641", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L101", "weight": 1.0}, {"source": "prompt_doctor_booking_window_and_month_availability_\u0648\u0638\u0627\u06cc\u0641", "target": "prompt_doctor_booking_window_and_month_availability_\u06f1_\u0645\u062f\u0644_booking_window_\u062f\u0631_weeklyschedule_setting", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L105", "weight": 1.0}, {"source": "prompt_doctor_booking_window_and_month_availability_\u0648\u0638\u0627\u06cc\u0641", "target": "prompt_doctor_booking_window_and_month_availability_\u06f2_\u0627\u0639\u0645\u0627\u0644_window_\u062f\u0631_slotcalculatorservice", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L125", "weight": 1.0}, {"source": "prompt_doctor_booking_window_and_month_availability_\u0648\u0638\u0627\u06cc\u0641", "target": "prompt_doctor_booking_window_and_month_availability_\u06f3_endpoint_\u0639\u0645\u0648\u0645\u06cc_month_availability", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L134", "weight": 1.0}, {"source": "prompt_doctor_booking_window_and_month_availability_\u0648\u0638\u0627\u06cc\u0641", "target": "prompt_doctor_booking_window_and_month_availability_\u06f4_ui_\u062f\u0631_\u067e\u0646\u0644_\u0627\u062f\u0645\u06cc\u0646_doctordetailpage_tsx", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L158", "weight": 1.0}, {"source": "prompt_doctor_booking_window_and_month_availability_\u062a\u0646\u0638\u06cc\u0645\u0627\u062a_\u0646\u0648\u0628\u062a_\u062f\u0647\u06cc_\u0622\u0646\u0644\u0627\u06cc\u0646_\u062f\u06a9\u062a\u0631_\u0628\u0627\u0632\u0647_\u06cc_\u0631\u0632\u0631\u0648_booking_window_endpoint_\u062f\u0631_\u062f\u0633\u062a\u0631\u0633_\u0628\u0648\u062f\u0646_\u0645\u0627\u0647\u0627\u0646\u0647", "target": "prompt_doctor_booking_window_and_month_availability_\u0646\u06a9\u0627\u062a_\u0645\u0647\u0645", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/doctor-booking-window-and-month-availability.md", "source_location": "L167", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}