# جریان کاربری — تسک ۱۰: نوبت‌دهی

## جریان کامل رزرو نوبت

```
کاربر دکتر را انتخاب می‌کند
          │
          ▼
GET /api/v1/appointment/not-available/{doctorId}
  → دریافت تاریخ‌های غیر قابل رزرو (برای کالندار)
          │
          ▼
کاربر تاریخ مورد نظر را انتخاب می‌کند
          │
          ▼
GET /api/v1/appointment-slots?doctor_uuid=...&date=...
  → دریافت اسلات‌های خالی آن روز
          │
          ▼
کاربر ساعت مورد نظر را انتخاب می‌کند
          │
          ▼
POST /api/v1/appointment
  { doctor_uuid, date, time, insurance_type, notes }
          │
          ├─► بررسی موجود بودن اسلات
          ├─► ایجاد appointment با status=pending
          └─► ایجاد payment با status=pending (تسک ۱۵)
          │
          ▼
کاربر به درگاه پرداخت هدایت می‌شود (تسک ۱۵)
          │
          ▼
بعد از پرداخت موفق:
  appointment.status = confirmed
  payment.status = paid
          │
          ▼
ارسال پیامک تأیید به کاربر و دکتر
```

## جریان مشاهده نوبت‌های من

```
GET /api/v1/appointment/my-appointments/{userId}
  → لیست همه نوبت‌ها (گذشته و آینده)
  → به صورت صعودی بر اساس تاریخ مرتب‌شده
```
