# دليل API — جميع الـ Endpoints مع الوصف

**Base URL:** `{{BASE_URL}}` (مثلاً `https://api.bilgiagaci.com/api`)

---

## 1. المصادقة (Authentication)

| # | الاسم في Postman | الطريقة | المسار | الوظيفة |
|:-:|-----------------|:-------:|--------|---------|
| 1 | POST Login | POST | `/auth/login` | تسجيل الدخول وإرجاع Sanctum token + بيانات المستخدم |
| 2 | GET Me | GET | `/auth/me` | جلب بيانات المستخدم الحالي مع الأدوار والصلاحيات والأطفال |
| 3 | POST Logout | POST | `/auth/logout` | تسجيل الخروج وإلغاء الـ token |
| 4 | PUT Update Profile | PUT | `/auth/profile` | تحديث بيانات الملف الشخصي (الاسم، الهاتف، اللغة، FCM token) |
| 5 | PUT Change Password | PUT | `/auth/password` | تغيير كلمة المرور |

---

## 2. الطلاب (Students)

| # | الاسم في Postman | الطريقة | المسار | الوظيفة |
|:-:|-----------------|:-------:|--------|---------|
| 6 | GET Students List | GET | `/students` | جلب قائمة الطلاب مع pagination (ولي أمر: أطفاله فقط، معلم: صفه، إدارة: الكل) |
| 7 | GET Student Detail | GET | `/students/{id}` | جلب تفاصيل طالب مع الحساسيات وخطط الدفع وملخص الحضور |
| 8 | POST Create Student | POST | `/admin/students` | إنشاء طالب جديد (إدارة فقط) |
| 9 | PUT Update Student | PUT | `/admin/students/{id}` | تعديل بيانات طالب (إدارة فقط) |
| 10 | DELETE Student | DELETE | `/admin/students/{id}` | حذف طالب (إدارة فقط) |

---

## 3. الحضور والغياب (Attendance)

| # | الاسم في Postman | الطريقة | المسار | الوظيفة |
|:-:|-----------------|:-------:|--------|---------|
| 11 | GET Student Attendance | GET | `/students/{id}/attendance` | جلب سجل الحضور لطالب مع فلترة تاريخ |
| 12 | POST Record Attendance | POST | `/attendance` | تسجيل حضور طالب واحد (معلم فقط) |
| 13 | POST Record Attendance Bulk | POST | `/attendance/bulk` | تسجيل حضور الصف كامل دفعة واحدة (معلم فقط) |

---

## 4. الوجبات (Meals)

| # | الاسم في Postman | الطريقة | المسار | الوظيفة |
|:-:|-----------------|:-------:|--------|---------|
| 14 | GET Meal Plans | GET | `/meal-plans` | جلب قائمة الوجبات المجدولة لصف في تاريخ معين |
| 15 | GET Student Meal Records | GET | `/students/{id}/meal-records` | جلب سجل وجبات طالب في تاريخ معين |
| 16 | POST Record Meal | POST | `/meal-records` | تسجيل حالة وجبة لطالب واحد (معلم فقط) |
| 17 | POST Record Meals Bulk | POST | `/meal-records/bulk` | تسجيل وجبات الصف كامل دفعة واحدة (معلم فقط) |

---

## 5. النوم (Sleep)

| # | الاسم في Postman | الطريقة | المسار | الوظيفة |
|:-:|-----------------|:-------:|--------|---------|
| 18 | GET Student Sleep Records | GET | `/students/{id}/sleep-records` | جلب سجل النوم لطالب |
| 19 | POST Record Sleep | POST | `/sleep-records` | تسجيل حالة نوم طالب واحد (معلم فقط) |
| 20 | POST Record Sleep Bulk | POST | `/sleep-records/bulk` | تسجيل نوم الصف كامل دفعة واحدة (معلم فقط) |

---

## 6. الأنشطة (Activities)

| # | الاسم في Postman | الطريقة | المسار | الوظيفة |
|:-:|-----------------|:-------:|--------|---------|
| 21 | GET Student Activities | GET | `/students/{id}/activities` | جلب أنشطة صف الطالب مع الوسائط |
| 22 | GET Class Schedules | GET | `/classes/{id}/schedules` | جلب جدول الأنشطة الأسبوعي للصف |
| 23 | POST Create Activity | POST | `/activities` | نشر نشاط جديد (معلم فقط) |

---

## 7. الصور والفيديو (Media)

| # | الاسم في Postman | الطريقة | المسار | الوظيفة |
|:-:|-----------------|:-------:|--------|---------|
| 24 | POST Request Upload URL | POST | `/media/request-upload` | طلب Presigned URL للرفع المباشر إلى R2 |
| 25 | POST Register Uploaded Media | POST | `/media/register` | تسجيل الملف بعد رفعه لـ R2 وبدء المعالجة |
| 26 | GET Student Media | GET | `/students/{id}/media` | جلب صور وفيديو الطالب مع روابط مؤقتة |
| 27 | GET Media Status | GET | `/media/{id}/status` | متابعة حالة معالجة الملف (processing/ready/failed) |
| 28 | GET Pending Media | GET | `/admin/media/pending` | جلب الصور المنتظرة موافقة الإدارة |
| 29 | POST Approve Media | POST | `/admin/media/{id}/approve` | موافقة/رفض صورة (إدارة فقط) |
| 30 | DELETE Media | DELETE | `/media/{id}` | حذف ملف وسائط |

---

## 8. الإعلانات (Announcements)

| # | الاسم في Postman | الطريقة | المسار | الوظيفة |
|:-:|-----------------|:-------:|--------|---------|
| 31 | GET Announcements | GET | `/announcements` | جلب الإعلانات حسب نطاق المستخدم |
| 32 | POST Publish Announcement | POST | `/admin/announcements` | نشر إعلان جديد (إدارة فقط) |
| 33 | POST Mark Announcement as Read | POST | `/announcements/{id}/read` | تمييز إعلان كمقروء |
| 34 | DELETE Announcement | DELETE | `/admin/announcements/{id}` | حذف إعلان (إدارة فقط) |

---

## 9. الإشعارات (Notifications)

| # | الاسم في Postman | الطريقة | المسار | الوظيفة |
|:-:|-----------------|:-------:|--------|---------|
| 35 | GET Notifications | GET | `/notifications` | جلب قائمة الإشعارات مع pagination |
| 36 | POST Mark Notification as Read | POST | `/notifications/{id}/read` | تمييز إشعار كمقروء |
| 37 | GET Unread Count | GET | `/notifications/unread-count` | جلب عدد الإشعارات غير المقروءة |

---

## 10. "أنا قادم" (Pickup Alert)

| # | الاسم في Postman | الطريقة | المسار | الوظيفة |
|:-:|-----------------|:-------:|--------|---------|
| 38 | POST Send Pickup Alert | POST | `/pickup/notify` | إرسال إشعار "أنا قادم" لمعلمي الصف (ولي أمر) |
| 39 | POST Cancel Pickup Alert | POST | `/pickup/{id}/cancel` | إلغاء تنبيه "أنا قادم" |
| 40 | GET Pickup Alerts | GET | `/pickup/alerts` | جلب تنبيهات "أنا قادم" النشطة للصف (معلم) |

---

## 11. الإعدادات (Settings)

| # | الاسم في Postman | الطريقة | المسار | الوظيفة |
|:-:|-----------------|:-------:|--------|---------|
| 41 | GET Settings | GET | `/admin/settings` | جلب إعدادات النظام |
| 42 | PUT Update Settings | PUT | `/admin/settings` | تحديث إعدادات النظام (Super Admin) |

---

## 12. تقارير الإدارة (Reports)

| # | الاسم في Postman | الطريقة | المسار | الوظيفة |
|:-:|-----------------|:-------:|--------|---------|
| 43 | GET Attendance Report | GET | `/admin/reports/attendance` | تقرير الحضور مع فلترة صف/تاريخ/مجموعة (إدارة) |

---

## 13. الصفوف (Classes)

| # | الاسم في Postman | الطريقة | المسار | الوظيفة |
|:-:|-----------------|:-------:|--------|---------|
| 44 | GET Classes | GET | `/admin/classes` | جلب قائمة الصفوف مع إحصائياتها (إدارة) |
| 45 | POST Create Class | POST | `/admin/classes` | إنشاء صف دراسي جديد (إدارة) |

---

## 14. المستخدمين (Users)

| # | الاسم في Postman | الطريقة | المسار | الوظيفة |
|:-:|-----------------|:-------:|--------|---------|
| 46 | GET Users | GET | `/admin/users` | جلب قائمة المستخدمين مع فلترة دور/حالة (إدارة) |

---

**الإجمالي: 46 endpoint عبر 14 مجموعة**
