# پایگاه داده — تسک ۱۱: ماژول بیمه ## توضیح در Drupal، بیمه‌ها به عنوان دسته‌بندی (`category` entity) ذخیره می‌شوند: - bundle=`insurance_type` → بیمه‌های پایه - bundle=`supplementary_insurance` → بیمه‌های تکمیلی رابطه doctor-insurance از طریق `field_insurance` روی bundle=clinic در Drupal موجود است (نه مستقیم روی doctor). در profile کاربر: `field_basic_insurance` و `field_supplementary_insurance` (entity ref → category). ## جدول: doctor_insurances (رابطه doctor ↔ insurance) _(از endpoint واقعی: PATCH /api/v1/insurance/1 دارای field_price است)_ | ستون | نوع | نام Drupal | توضیح | |------|-----|-----------|-------| | id | INT AUTO_INCREMENT PK | id | | | doctor_id | INT FK → doctors.id CASCADE | field_doctor | دکتر | | category_id | INT FK → categories.id | field_insurance_type | نوع بیمه (bundle=insurance_type یا supplementary_insurance) | | price | INT NULL | field_price | مبلغ ویزیت با این بیمه (تومان — اختیاری) | ## ایندکس‌ها ```sql CREATE UNIQUE INDEX idx_doctor_insurance ON doctor_insurances(doctor_id, category_id); CREATE INDEX idx_doctor_insurance_cat ON doctor_insurances(category_id); ``` ## نکات مهم - داده‌های بیمه در جدول `categories` ذخیره می‌شوند — نه جدول جداگانه - `clinic_insurances` هم وجود دارد: رابطه clinic ↔ insurance (تسک ۰۶) - بیمه کاربر در `profiles` ذخیره می‌شود: field_basic_insurance, field_supplementary_insurance (تسک ۰۳) - هیچ timestamp در این pivot table لازم نیست