[
  {
    "id": "sess_0gbnohlxmp73742g",
    "title": "نظام إدارة عيادة",
    "scope": "نظام لإدارة عيادة طبية صغيرة، يتضمن إدارة المرضى والمواعيد والملفات الطبية والفواتير، مع إشعارات للمرضى.",
    "actors": [
      "المريض",
      "موظف الاستقبال",
      "الطبيب",
      "مسؤول النظام"
    ],
    "useCases": [
      {
        "id": "UC-01",
        "title": "حجز موعد جديد",
        "actor": "المريض",
        "preconditions": "المريض مسجل في النظام.",
        "mainFlow": [
          "المريض يختار حجز موعد جديد.",
          "النظام يعرض الأوقات المتاحة.",
          "المريض يختار الوقت المناسب.",
          "النظام يؤكد حجز الموعد."
        ],
        "alternateFlow": [
          "الوقت المختار غير متاح."
        ]
      },
      {
        "id": "UC-02",
        "title": "متابعة المواعيد",
        "actor": "المريض",
        "preconditions": "المريض مسجل في النظام.",
        "mainFlow": [
          "المريض يختار متابعة مواعيده.",
          "النظام يعرض قائمة المواعيد القادمة والسابقة.",
          "المريض يستعرض تفاصيل الموعد."
        ],
        "alternateFlow": []
      },
      {
        "id": "UC-03",
        "title": "تسجيل مريض جديد",
        "actor": "موظف الاستقبال",
        "preconditions": "موظف الاستقبال مسجل الدخول.",
        "mainFlow": [
          "موظف الاستقبال يختار تسجيل مريض جديد.",
          "موظف الاستقبال يدخل بيانات المريض.",
          "النظام يحفظ بيانات المريض."
        ],
        "alternateFlow": [
          "بيانات المريض غير مكتملة."
        ]
      },
      {
        "id": "UC-04",
        "title": "تحديث بيانات المريض",
        "actor": "موظف الاستقبال",
        "preconditions": "موظف الاستقبال مسجل الدخول.",
        "mainFlow": [
          "موظف الاستقبال يبحث عن المريض.",
          "موظف الاستقبال يعدل بيانات المريض.",
          "النظام يحدث بيانات المريض."
        ],
        "alternateFlow": [
          "المريض غير موجود في النظام."
        ]
      },
      {
        "id": "UC-05",
        "title": "إصدار فاتورة",
        "actor": "موظف الاستقبال",
        "preconditions": "موظف الاستقبال مسجل الدخول.",
        "mainFlow": [
          "موظف الاستقبال يختار إصدار فاتورة.",
          "موظف الاستقبال يحدد الخدمات المقدمة.",
          "النظام يحسب المبلغ الإجمالي.",
          "النظام يصدر الفاتورة."
        ],
        "alternateFlow": [
          "الخدمات غير محددة."
        ]
      },
      {
        "id": "UC-06",
        "title": "عرض الملف الطبي",
        "actor": "الطبيب",
        "preconditions": "الطبيب مسجل الدخول.",
        "mainFlow": [
          "الطبيب يبحث عن المريض.",
          "النظام يعرض الملف الطبي للمريض.",
          "الطبيب يستعرض تاريخ المريض الطبي."
        ],
        "alternateFlow": [
          "المريض غير موجود في النظام."
        ]
      },
      {
        "id": "UC-07",
        "title": "إضافة تشخيص ووصفة",
        "actor": "الطبيب",
        "preconditions": "الطبيب مسجل الدخول.",
        "mainFlow": [
          "الطبيب يختار إضافة تشخيص ووصفة.",
          "الطبيب يدخل التشخيص.",
          "الطبيب يضيف الوصفة الطبية.",
          "النظام يحفظ التشخيص والوصفة."
        ],
        "alternateFlow": [
          "التشخيص أو الوصفة غير مكتملة."
        ]
      },
      {
        "id": "UC-08",
        "title": "عرض تقرير يومي",
        "actor": "مسؤول النظام",
        "preconditions": "مسؤول النظام مسجل الدخول.",
        "mainFlow": [
          "مسؤول النظام يختار عرض تقرير يومي.",
          "النظام يعرض تقرير بالمواعيد والفواتير.",
          "مسؤول النظام يستعرض التقرير."
        ],
        "alternateFlow": []
      },
      {
        "id": "UC-09",
        "title": "إرسال إشعار تذكير بالموعد",
        "actor": "النظام",
        "preconditions": "يوجد موعد قادم للمريض.",
        "mainFlow": [
          "النظام يحدد المواعيد القادمة.",
          "النظام يرسل إشعار تذكير للمريض.",
          "المريض يستقبل الإشعار."
        ],
        "alternateFlow": [
          "المريض قام بإلغاء الموعد."
        ]
      },
      {
        "id": "UC-01",
        "title": "إرسال التذكير بالمواعيد",
        "actor": "نظام خارجي",
        "preconditions": "تتوفر صلاحية نظام خارجي والوصول إلى البيانات اللازمة.",
        "mainFlow": [
          "يفتح نظام خارجي مسار إرسال التذكير بالمواعيد.",
          "يدخل البيانات أو يحدد الخيارات المطلوبة.",
          "يعالج النظام الطلب ويعرض النتيجة أو التأكيد المناسب."
        ],
        "alternateFlow": []
      }
    ],
    "inputOutputs": [
      {
        "id": "IO-01",
        "type": "input",
        "name": "بيانات المريض",
        "source": "موظف الاستقبال",
        "destination": "النظام",
        "description": "بيانات المريض عند التسجيل أو التحديث."
      },
      {
        "id": "IO-02",
        "type": "input",
        "name": "الخدمات المقدمة",
        "source": "موظف الاستقبال",
        "destination": "النظام",
        "description": "قائمة الخدمات لتحديدها عند إصدار الفاتورة."
      },
      {
        "id": "IO-03",
        "type": "output",
        "name": "فاتورة",
        "source": "النظام",
        "destination": "موظف الاستقبال",
        "description": "الفاتورة النهائية للخدمات المقدمة."
      },
      {
        "id": "IO-04",
        "type": "input",
        "name": "التشخيص والوصفة",
        "source": "الطبيب",
        "destination": "النظام",
        "description": "معلومات التشخيص والوصفة الطبية."
      },
      {
        "id": "IO-05",
        "type": "output",
        "name": "الملف الطبي",
        "source": "النظام",
        "destination": "الطبيب",
        "description": "الملف الطبي الكامل للمريض."
      },
      {
        "id": "IO-06",
        "type": "output",
        "name": "تقرير يومي",
        "source": "النظام",
        "destination": "مسؤول النظام",
        "description": "تقرير يومي بالمواعيد والفواتير."
      },
      {
        "id": "IO-07",
        "type": "output",
        "name": "إشعار تذكير بالموعد",
        "source": "النظام",
        "destination": "المريض",
        "description": "إشعار يرسله النظام للمريض لتذكيره بموعده."
      },
      {
        "id": "IO-08",
        "type": "input",
        "name": "التذكير بالمواعيد",
        "source": "نظام خارجي",
        "destination": "النظام",
        "description": "أضف تكاملاً بسيطاً مع بوابة رسائل SMS لإرسال التذكير بالمواعيد"
      },
      {
        "id": "IO-09",
        "type": "output",
        "name": "التذكير بالمواعيد",
        "source": "النظام",
        "destination": "نظام خارجي",
        "description": "أضف تكاملاً بسيطاً مع بوابة رسائل SMS لإرسال التذكير بالمواعيد"
      }
    ],
    "functionPoints": [
      {
        "id": "FP-01",
        "name": "حجز موعد جديد",
        "description": "تغطي حالة الاستخدام \"حجز موعد جديد\" للفاعل المريض.",
        "complexity": "متوسطة",
        "fpScore": 4
      },
      {
        "id": "FP-02",
        "name": "متابعة المواعيد",
        "description": "تغطي حالة الاستخدام \"متابعة المواعيد\" للفاعل المريض.",
        "complexity": "بسيطة",
        "fpScore": 3
      },
      {
        "id": "FP-03",
        "name": "تسجيل مريض جديد",
        "description": "تغطي حالة الاستخدام \"تسجيل مريض جديد\" للفاعل موظف الاستقبال.",
        "complexity": "متوسطة",
        "fpScore": 4
      },
      {
        "id": "FP-04",
        "name": "تحديث بيانات المريض",
        "description": "تغطي حالة الاستخدام \"تحديث بيانات المريض\" للفاعل موظف الاستقبال.",
        "complexity": "متوسطة",
        "fpScore": 4
      },
      {
        "id": "FP-05",
        "name": "إصدار فاتورة",
        "description": "تغطي حالة الاستخدام \"إصدار فاتورة\" للفاعل موظف الاستقبال.",
        "complexity": "متوسطة",
        "fpScore": 4
      },
      {
        "id": "FP-06",
        "name": "عرض الملف الطبي",
        "description": "تغطي حالة الاستخدام \"عرض الملف الطبي\" للفاعل الطبيب.",
        "complexity": "متوسطة",
        "fpScore": 4
      },
      {
        "id": "FP-07",
        "name": "إضافة تشخيص ووصفة",
        "description": "تغطي حالة الاستخدام \"إضافة تشخيص ووصفة\" للفاعل الطبيب.",
        "complexity": "متوسطة",
        "fpScore": 4
      },
      {
        "id": "FP-08",
        "name": "عرض تقرير يومي",
        "description": "تغطي حالة الاستخدام \"عرض تقرير يومي\" للفاعل مسؤول النظام.",
        "complexity": "معقدة",
        "fpScore": 6
      },
      {
        "id": "FP-09",
        "name": "إرسال إشعار تذكير بالموعد",
        "description": "تغطي حالة الاستخدام \"إرسال إشعار تذكير بالموعد\" للفاعل النظام.",
        "complexity": "معقدة",
        "fpScore": 6
      },
      {
        "id": "FP-10",
        "name": "إرسال التذكير بالمواعيد",
        "description": "تغطي حالة الاستخدام \"إرسال التذكير بالمواعيد\" للفاعل نظام خارجي.",
        "complexity": "متوسطة",
        "fpScore": 4
      }
    ],
    "planning": {
      "developers": 4,
      "sprintWeeks": 2,
      "hoursPerDay": 8
    },
    "history": [
      {
        "role": "assistant",
        "payload": {
          "reply": "بدأنا مشروعاً جديداً بعنوان \"نظام إدارة عيادة\". هل تود أن تبدأ برفع ملف SRS، أم تصف لي الهدف العام للمشروع مباشرة؟",
          "stage": "intro",
          "scope": "",
          "actors": [],
          "functionPoints": [],
          "useCases": [],
          "inputOutputs": [],
          "isComplete": false
        }
      },
      {
        "role": "assistant",
        "payload": {
          "reply": "قرأت الملف \"clinic.txt\" واقترحت 4 Actors و9 Use Cases و3 Inputs و4 Outputs. هل تم استيعاب جميع متطلبات النظام بشكل صحيح في حالات الاستخدام والمدخلات/المخرجات؟",
          "stage": "exploration",
          "scope": "نظام لإدارة عيادة طبية صغيرة، يتضمن إدارة المرضى والمواعيد والملفات الطبية والفواتير، مع إشعارات للمرضى.",
          "actors": [
            "المريض",
            "موظف الاستقبال",
            "الطبيب",
            "مسؤول النظام"
          ],
          "functionPoints": [
            {
              "id": "FP-01",
              "name": "إدارة المواعيد",
              "description": "يشمل حجز المواعيد الجديدة ومتابعتها.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-02",
              "name": "إدارة المرضى",
              "description": "يشمل تسجيل المرضى وتحديث بياناتهم.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-03",
              "name": "إدارة الفواتير",
              "description": "يشمل إصدار الفواتير بناءً على الخدمات.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-04",
              "name": "إدارة الملفات الطبية",
              "description": "يشمل عرض الملف الطبي وإضافة التشخيص والوصفة.",
              "complexity": "معقدة",
              "fpScore": 6
            },
            {
              "id": "FP-05",
              "name": "إدارة التقارير",
              "description": "يشمل عرض التقارير اليومية.",
              "complexity": "بسيطة",
              "fpScore": 3
            },
            {
              "id": "FP-06",
              "name": "إشعارات المواعيد",
              "description": "إرسال إشعارات تذكير بالموعد.",
              "complexity": "بسيطة",
              "fpScore": 3
            }
          ],
          "useCases": [
            {
              "id": "UC-01",
              "title": "حجز موعد جديد",
              "actor": "المريض",
              "preconditions": "المريض مسجل في النظام.",
              "mainFlow": [
                "المريض يختار حجز موعد جديد.",
                "النظام يعرض الأوقات المتاحة.",
                "المريض يختار الوقت المناسب.",
                "النظام يؤكد حجز الموعد."
              ],
              "alternateFlow": [
                "الوقت المختار غير متاح."
              ]
            },
            {
              "id": "UC-02",
              "title": "متابعة المواعيد",
              "actor": "المريض",
              "preconditions": "المريض مسجل في النظام.",
              "mainFlow": [
                "المريض يختار متابعة مواعيده.",
                "النظام يعرض قائمة المواعيد القادمة والسابقة.",
                "المريض يستعرض تفاصيل الموعد."
              ],
              "alternateFlow": []
            },
            {
              "id": "UC-03",
              "title": "تسجيل مريض جديد",
              "actor": "موظف الاستقبال",
              "preconditions": "موظف الاستقبال مسجل الدخول.",
              "mainFlow": [
                "موظف الاستقبال يختار تسجيل مريض جديد.",
                "موظف الاستقبال يدخل بيانات المريض.",
                "النظام يحفظ بيانات المريض."
              ],
              "alternateFlow": [
                "بيانات المريض غير مكتملة."
              ]
            },
            {
              "id": "UC-04",
              "title": "تحديث بيانات المريض",
              "actor": "موظف الاستقبال",
              "preconditions": "موظف الاستقبال مسجل الدخول.",
              "mainFlow": [
                "موظف الاستقبال يبحث عن المريض.",
                "موظف الاستقبال يعدل بيانات المريض.",
                "النظام يحدث بيانات المريض."
              ],
              "alternateFlow": [
                "المريض غير موجود في النظام."
              ]
            },
            {
              "id": "UC-05",
              "title": "إصدار فاتورة",
              "actor": "موظف الاستقبال",
              "preconditions": "موظف الاستقبال مسجل الدخول.",
              "mainFlow": [
                "موظف الاستقبال يختار إصدار فاتورة.",
                "موظف الاستقبال يحدد الخدمات المقدمة.",
                "النظام يحسب المبلغ الإجمالي.",
                "النظام يصدر الفاتورة."
              ],
              "alternateFlow": [
                "الخدمات غير محددة."
              ]
            },
            {
              "id": "UC-06",
              "title": "عرض الملف الطبي",
              "actor": "الطبيب",
              "preconditions": "الطبيب مسجل الدخول.",
              "mainFlow": [
                "الطبيب يبحث عن المريض.",
                "النظام يعرض الملف الطبي للمريض.",
                "الطبيب يستعرض تاريخ المريض الطبي."
              ],
              "alternateFlow": [
                "المريض غير موجود في النظام."
              ]
            },
            {
              "id": "UC-07",
              "title": "إضافة تشخيص ووصفة",
              "actor": "الطبيب",
              "preconditions": "الطبيب مسجل الدخول.",
              "mainFlow": [
                "الطبيب يختار إضافة تشخيص ووصفة.",
                "الطبيب يدخل التشخيص.",
                "الطبيب يضيف الوصفة الطبية.",
                "النظام يحفظ التشخيص والوصفة."
              ],
              "alternateFlow": [
                "التشخيص أو الوصفة غير مكتملة."
              ]
            },
            {
              "id": "UC-08",
              "title": "عرض تقرير يومي",
              "actor": "مسؤول النظام",
              "preconditions": "مسؤول النظام مسجل الدخول.",
              "mainFlow": [
                "مسؤول النظام يختار عرض تقرير يومي.",
                "النظام يعرض تقرير بالمواعيد والفواتير.",
                "مسؤول النظام يستعرض التقرير."
              ],
              "alternateFlow": []
            },
            {
              "id": "UC-09",
              "title": "إرسال إشعار تذكير بالموعد",
              "actor": "النظام",
              "preconditions": "يوجد موعد قادم للمريض.",
              "mainFlow": [
                "النظام يحدد المواعيد القادمة.",
                "النظام يرسل إشعار تذكير للمريض.",
                "المريض يستقبل الإشعار."
              ],
              "alternateFlow": [
                "المريض قام بإلغاء الموعد."
              ]
            }
          ],
          "inputOutputs": [
            {
              "id": "IO-01",
              "type": "input",
              "name": "بيانات المريض",
              "source": "موظف الاستقبال",
              "destination": "النظام",
              "description": "بيانات المريض عند التسجيل أو التحديث."
            },
            {
              "id": "IO-02",
              "type": "input",
              "name": "الخدمات المقدمة",
              "source": "موظف الاستقبال",
              "destination": "النظام",
              "description": "قائمة الخدمات لتحديدها عند إصدار الفاتورة."
            },
            {
              "id": "IO-03",
              "type": "output",
              "name": "فاتورة",
              "source": "النظام",
              "destination": "موظف الاستقبال",
              "description": "الفاتورة النهائية للخدمات المقدمة."
            },
            {
              "id": "IO-04",
              "type": "input",
              "name": "التشخيص والوصفة",
              "source": "الطبيب",
              "destination": "النظام",
              "description": "معلومات التشخيص والوصفة الطبية."
            },
            {
              "id": "IO-05",
              "type": "output",
              "name": "الملف الطبي",
              "source": "النظام",
              "destination": "الطبيب",
              "description": "الملف الطبي الكامل للمريض."
            },
            {
              "id": "IO-06",
              "type": "output",
              "name": "تقرير يومي",
              "source": "النظام",
              "destination": "مسؤول النظام",
              "description": "تقرير يومي بالمواعيد والفواتير."
            },
            {
              "id": "IO-07",
              "type": "output",
              "name": "إشعار تذكير بالموعد",
              "source": "النظام",
              "destination": "المريض",
              "description": "إشعار يرسله النظام للمريض لتذكيره بموعده."
            }
          ],
          "isComplete": false
        }
      },
      {
        "role": "assistant",
        "payload": {
          "reply": "تم اعتماد الهيكل الأولي: 4 Actors، 9 Use Cases، و7 Inputs/Outputs. أصبح لدينا أساس جيد للتقدير؛ هل تريد تثبيت التقدير الحالي وتوليد التقرير أم إضافة تفاصيل تقنية أخرى؟",
          "stage": "evaluation",
          "scope": "نظام لإدارة عيادة طبية صغيرة، يتضمن إدارة المرضى والمواعيد والملفات الطبية والفواتير، مع إشعارات للمرضى.",
          "actors": [
            "المريض",
            "موظف الاستقبال",
            "الطبيب",
            "مسؤول النظام"
          ],
          "functionPoints": [
            {
              "id": "FP-01",
              "name": "حجز موعد جديد",
              "description": "تغطي حالة الاستخدام \"حجز موعد جديد\" للفاعل المريض.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-02",
              "name": "متابعة المواعيد",
              "description": "تغطي حالة الاستخدام \"متابعة المواعيد\" للفاعل المريض.",
              "complexity": "بسيطة",
              "fpScore": 3
            },
            {
              "id": "FP-03",
              "name": "تسجيل مريض جديد",
              "description": "تغطي حالة الاستخدام \"تسجيل مريض جديد\" للفاعل موظف الاستقبال.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-04",
              "name": "تحديث بيانات المريض",
              "description": "تغطي حالة الاستخدام \"تحديث بيانات المريض\" للفاعل موظف الاستقبال.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-05",
              "name": "إصدار فاتورة",
              "description": "تغطي حالة الاستخدام \"إصدار فاتورة\" للفاعل موظف الاستقبال.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-06",
              "name": "عرض الملف الطبي",
              "description": "تغطي حالة الاستخدام \"عرض الملف الطبي\" للفاعل الطبيب.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-07",
              "name": "إضافة تشخيص ووصفة",
              "description": "تغطي حالة الاستخدام \"إضافة تشخيص ووصفة\" للفاعل الطبيب.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-08",
              "name": "عرض تقرير يومي",
              "description": "تغطي حالة الاستخدام \"عرض تقرير يومي\" للفاعل مسؤول النظام.",
              "complexity": "معقدة",
              "fpScore": 6
            },
            {
              "id": "FP-09",
              "name": "إرسال إشعار تذكير بالموعد",
              "description": "تغطي حالة الاستخدام \"إرسال إشعار تذكير بالموعد\" للفاعل النظام.",
              "complexity": "معقدة",
              "fpScore": 6
            }
          ],
          "useCases": [
            {
              "id": "UC-01",
              "title": "حجز موعد جديد",
              "actor": "المريض",
              "preconditions": "المريض مسجل في النظام.",
              "mainFlow": [
                "المريض يختار حجز موعد جديد.",
                "النظام يعرض الأوقات المتاحة.",
                "المريض يختار الوقت المناسب.",
                "النظام يؤكد حجز الموعد."
              ],
              "alternateFlow": [
                "الوقت المختار غير متاح."
              ]
            },
            {
              "id": "UC-02",
              "title": "متابعة المواعيد",
              "actor": "المريض",
              "preconditions": "المريض مسجل في النظام.",
              "mainFlow": [
                "المريض يختار متابعة مواعيده.",
                "النظام يعرض قائمة المواعيد القادمة والسابقة.",
                "المريض يستعرض تفاصيل الموعد."
              ],
              "alternateFlow": []
            },
            {
              "id": "UC-03",
              "title": "تسجيل مريض جديد",
              "actor": "موظف الاستقبال",
              "preconditions": "موظف الاستقبال مسجل الدخول.",
              "mainFlow": [
                "موظف الاستقبال يختار تسجيل مريض جديد.",
                "موظف الاستقبال يدخل بيانات المريض.",
                "النظام يحفظ بيانات المريض."
              ],
              "alternateFlow": [
                "بيانات المريض غير مكتملة."
              ]
            },
            {
              "id": "UC-04",
              "title": "تحديث بيانات المريض",
              "actor": "موظف الاستقبال",
              "preconditions": "موظف الاستقبال مسجل الدخول.",
              "mainFlow": [
                "موظف الاستقبال يبحث عن المريض.",
                "موظف الاستقبال يعدل بيانات المريض.",
                "النظام يحدث بيانات المريض."
              ],
              "alternateFlow": [
                "المريض غير موجود في النظام."
              ]
            },
            {
              "id": "UC-05",
              "title": "إصدار فاتورة",
              "actor": "موظف الاستقبال",
              "preconditions": "موظف الاستقبال مسجل الدخول.",
              "mainFlow": [
                "موظف الاستقبال يختار إصدار فاتورة.",
                "موظف الاستقبال يحدد الخدمات المقدمة.",
                "النظام يحسب المبلغ الإجمالي.",
                "النظام يصدر الفاتورة."
              ],
              "alternateFlow": [
                "الخدمات غير محددة."
              ]
            },
            {
              "id": "UC-06",
              "title": "عرض الملف الطبي",
              "actor": "الطبيب",
              "preconditions": "الطبيب مسجل الدخول.",
              "mainFlow": [
                "الطبيب يبحث عن المريض.",
                "النظام يعرض الملف الطبي للمريض.",
                "الطبيب يستعرض تاريخ المريض الطبي."
              ],
              "alternateFlow": [
                "المريض غير موجود في النظام."
              ]
            },
            {
              "id": "UC-07",
              "title": "إضافة تشخيص ووصفة",
              "actor": "الطبيب",
              "preconditions": "الطبيب مسجل الدخول.",
              "mainFlow": [
                "الطبيب يختار إضافة تشخيص ووصفة.",
                "الطبيب يدخل التشخيص.",
                "الطبيب يضيف الوصفة الطبية.",
                "النظام يحفظ التشخيص والوصفة."
              ],
              "alternateFlow": [
                "التشخيص أو الوصفة غير مكتملة."
              ]
            },
            {
              "id": "UC-08",
              "title": "عرض تقرير يومي",
              "actor": "مسؤول النظام",
              "preconditions": "مسؤول النظام مسجل الدخول.",
              "mainFlow": [
                "مسؤول النظام يختار عرض تقرير يومي.",
                "النظام يعرض تقرير بالمواعيد والفواتير.",
                "مسؤول النظام يستعرض التقرير."
              ],
              "alternateFlow": []
            },
            {
              "id": "UC-09",
              "title": "إرسال إشعار تذكير بالموعد",
              "actor": "النظام",
              "preconditions": "يوجد موعد قادم للمريض.",
              "mainFlow": [
                "النظام يحدد المواعيد القادمة.",
                "النظام يرسل إشعار تذكير للمريض.",
                "المريض يستقبل الإشعار."
              ],
              "alternateFlow": [
                "المريض قام بإلغاء الموعد."
              ]
            }
          ],
          "inputOutputs": [
            {
              "id": "IO-01",
              "type": "input",
              "name": "بيانات المريض",
              "source": "موظف الاستقبال",
              "destination": "النظام",
              "description": "بيانات المريض عند التسجيل أو التحديث."
            },
            {
              "id": "IO-02",
              "type": "input",
              "name": "الخدمات المقدمة",
              "source": "موظف الاستقبال",
              "destination": "النظام",
              "description": "قائمة الخدمات لتحديدها عند إصدار الفاتورة."
            },
            {
              "id": "IO-03",
              "type": "output",
              "name": "فاتورة",
              "source": "النظام",
              "destination": "موظف الاستقبال",
              "description": "الفاتورة النهائية للخدمات المقدمة."
            },
            {
              "id": "IO-04",
              "type": "input",
              "name": "التشخيص والوصفة",
              "source": "الطبيب",
              "destination": "النظام",
              "description": "معلومات التشخيص والوصفة الطبية."
            },
            {
              "id": "IO-05",
              "type": "output",
              "name": "الملف الطبي",
              "source": "النظام",
              "destination": "الطبيب",
              "description": "الملف الطبي الكامل للمريض."
            },
            {
              "id": "IO-06",
              "type": "output",
              "name": "تقرير يومي",
              "source": "النظام",
              "destination": "مسؤول النظام",
              "description": "تقرير يومي بالمواعيد والفواتير."
            },
            {
              "id": "IO-07",
              "type": "output",
              "name": "إشعار تذكير بالموعد",
              "source": "النظام",
              "destination": "المريض",
              "description": "إشعار يرسله النظام للمريض لتذكيره بموعده."
            }
          ],
          "isComplete": false
        }
      },
      {
        "role": "user",
        "text": "أضف تكاملاً بسيطاً مع بوابة رسائل SMS لإرسال التذكير بالمواعيد."
      },
      {
        "role": "assistant",
        "payload": {
          "reply": "أصبح لدينا أساس جيد للتقدير؛ هل تريد تثبيت التقدير الحالي وتوليد التقرير أم إضافة تفاصيل تقنية أخرى؟",
          "stage": "evaluation",
          "scope": "نظام لإدارة عيادة طبية صغيرة، يتضمن إدارة المرضى والمواعيد والملفات الطبية والفواتير، مع إشعارات للمرضى.",
          "actors": [
            "المريض",
            "موظف الاستقبال",
            "الطبيب",
            "مسؤول النظام"
          ],
          "functionPoints": [
            {
              "id": "FP-01",
              "name": "حجز موعد جديد",
              "description": "تغطي حالة الاستخدام \"حجز موعد جديد\" للفاعل المريض.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-02",
              "name": "متابعة المواعيد",
              "description": "تغطي حالة الاستخدام \"متابعة المواعيد\" للفاعل المريض.",
              "complexity": "بسيطة",
              "fpScore": 3
            },
            {
              "id": "FP-03",
              "name": "تسجيل مريض جديد",
              "description": "تغطي حالة الاستخدام \"تسجيل مريض جديد\" للفاعل موظف الاستقبال.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-04",
              "name": "تحديث بيانات المريض",
              "description": "تغطي حالة الاستخدام \"تحديث بيانات المريض\" للفاعل موظف الاستقبال.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-05",
              "name": "إصدار فاتورة",
              "description": "تغطي حالة الاستخدام \"إصدار فاتورة\" للفاعل موظف الاستقبال.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-06",
              "name": "عرض الملف الطبي",
              "description": "تغطي حالة الاستخدام \"عرض الملف الطبي\" للفاعل الطبيب.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-07",
              "name": "إضافة تشخيص ووصفة",
              "description": "تغطي حالة الاستخدام \"إضافة تشخيص ووصفة\" للفاعل الطبيب.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-08",
              "name": "عرض تقرير يومي",
              "description": "تغطي حالة الاستخدام \"عرض تقرير يومي\" للفاعل مسؤول النظام.",
              "complexity": "معقدة",
              "fpScore": 6
            },
            {
              "id": "FP-09",
              "name": "إرسال إشعار تذكير بالموعد",
              "description": "تغطي حالة الاستخدام \"إرسال إشعار تذكير بالموعد\" للفاعل النظام.",
              "complexity": "معقدة",
              "fpScore": 6
            },
            {
              "id": "FP-10",
              "name": "إرسال التذكير بالمواعيد",
              "description": "تغطي حالة الاستخدام \"إرسال التذكير بالمواعيد\" للفاعل نظام خارجي.",
              "complexity": "متوسطة",
              "fpScore": 4
            }
          ],
          "useCases": [
            {
              "id": "UC-01",
              "title": "حجز موعد جديد",
              "actor": "المريض",
              "preconditions": "المريض مسجل في النظام.",
              "mainFlow": [
                "المريض يختار حجز موعد جديد.",
                "النظام يعرض الأوقات المتاحة.",
                "المريض يختار الوقت المناسب.",
                "النظام يؤكد حجز الموعد."
              ],
              "alternateFlow": [
                "الوقت المختار غير متاح."
              ]
            },
            {
              "id": "UC-02",
              "title": "متابعة المواعيد",
              "actor": "المريض",
              "preconditions": "المريض مسجل في النظام.",
              "mainFlow": [
                "المريض يختار متابعة مواعيده.",
                "النظام يعرض قائمة المواعيد القادمة والسابقة.",
                "المريض يستعرض تفاصيل الموعد."
              ],
              "alternateFlow": []
            },
            {
              "id": "UC-03",
              "title": "تسجيل مريض جديد",
              "actor": "موظف الاستقبال",
              "preconditions": "موظف الاستقبال مسجل الدخول.",
              "mainFlow": [
                "موظف الاستقبال يختار تسجيل مريض جديد.",
                "موظف الاستقبال يدخل بيانات المريض.",
                "النظام يحفظ بيانات المريض."
              ],
              "alternateFlow": [
                "بيانات المريض غير مكتملة."
              ]
            },
            {
              "id": "UC-04",
              "title": "تحديث بيانات المريض",
              "actor": "موظف الاستقبال",
              "preconditions": "موظف الاستقبال مسجل الدخول.",
              "mainFlow": [
                "موظف الاستقبال يبحث عن المريض.",
                "موظف الاستقبال يعدل بيانات المريض.",
                "النظام يحدث بيانات المريض."
              ],
              "alternateFlow": [
                "المريض غير موجود في النظام."
              ]
            },
            {
              "id": "UC-05",
              "title": "إصدار فاتورة",
              "actor": "موظف الاستقبال",
              "preconditions": "موظف الاستقبال مسجل الدخول.",
              "mainFlow": [
                "موظف الاستقبال يختار إصدار فاتورة.",
                "موظف الاستقبال يحدد الخدمات المقدمة.",
                "النظام يحسب المبلغ الإجمالي.",
                "النظام يصدر الفاتورة."
              ],
              "alternateFlow": [
                "الخدمات غير محددة."
              ]
            },
            {
              "id": "UC-06",
              "title": "عرض الملف الطبي",
              "actor": "الطبيب",
              "preconditions": "الطبيب مسجل الدخول.",
              "mainFlow": [
                "الطبيب يبحث عن المريض.",
                "النظام يعرض الملف الطبي للمريض.",
                "الطبيب يستعرض تاريخ المريض الطبي."
              ],
              "alternateFlow": [
                "المريض غير موجود في النظام."
              ]
            },
            {
              "id": "UC-07",
              "title": "إضافة تشخيص ووصفة",
              "actor": "الطبيب",
              "preconditions": "الطبيب مسجل الدخول.",
              "mainFlow": [
                "الطبيب يختار إضافة تشخيص ووصفة.",
                "الطبيب يدخل التشخيص.",
                "الطبيب يضيف الوصفة الطبية.",
                "النظام يحفظ التشخيص والوصفة."
              ],
              "alternateFlow": [
                "التشخيص أو الوصفة غير مكتملة."
              ]
            },
            {
              "id": "UC-08",
              "title": "عرض تقرير يومي",
              "actor": "مسؤول النظام",
              "preconditions": "مسؤول النظام مسجل الدخول.",
              "mainFlow": [
                "مسؤول النظام يختار عرض تقرير يومي.",
                "النظام يعرض تقرير بالمواعيد والفواتير.",
                "مسؤول النظام يستعرض التقرير."
              ],
              "alternateFlow": []
            },
            {
              "id": "UC-09",
              "title": "إرسال إشعار تذكير بالموعد",
              "actor": "النظام",
              "preconditions": "يوجد موعد قادم للمريض.",
              "mainFlow": [
                "النظام يحدد المواعيد القادمة.",
                "النظام يرسل إشعار تذكير للمريض.",
                "المريض يستقبل الإشعار."
              ],
              "alternateFlow": [
                "المريض قام بإلغاء الموعد."
              ]
            },
            {
              "id": "UC-01",
              "title": "إرسال التذكير بالمواعيد",
              "actor": "نظام خارجي",
              "preconditions": "تتوفر صلاحية نظام خارجي والوصول إلى البيانات اللازمة.",
              "mainFlow": [
                "يفتح نظام خارجي مسار إرسال التذكير بالمواعيد.",
                "يدخل البيانات أو يحدد الخيارات المطلوبة.",
                "يعالج النظام الطلب ويعرض النتيجة أو التأكيد المناسب."
              ],
              "alternateFlow": []
            }
          ],
          "inputOutputs": [
            {
              "id": "IO-01",
              "type": "input",
              "name": "بيانات المريض",
              "source": "موظف الاستقبال",
              "destination": "النظام",
              "description": "بيانات المريض عند التسجيل أو التحديث."
            },
            {
              "id": "IO-02",
              "type": "input",
              "name": "الخدمات المقدمة",
              "source": "موظف الاستقبال",
              "destination": "النظام",
              "description": "قائمة الخدمات لتحديدها عند إصدار الفاتورة."
            },
            {
              "id": "IO-03",
              "type": "output",
              "name": "فاتورة",
              "source": "النظام",
              "destination": "موظف الاستقبال",
              "description": "الفاتورة النهائية للخدمات المقدمة."
            },
            {
              "id": "IO-04",
              "type": "input",
              "name": "التشخيص والوصفة",
              "source": "الطبيب",
              "destination": "النظام",
              "description": "معلومات التشخيص والوصفة الطبية."
            },
            {
              "id": "IO-05",
              "type": "output",
              "name": "الملف الطبي",
              "source": "النظام",
              "destination": "الطبيب",
              "description": "الملف الطبي الكامل للمريض."
            },
            {
              "id": "IO-06",
              "type": "output",
              "name": "تقرير يومي",
              "source": "النظام",
              "destination": "مسؤول النظام",
              "description": "تقرير يومي بالمواعيد والفواتير."
            },
            {
              "id": "IO-07",
              "type": "output",
              "name": "إشعار تذكير بالموعد",
              "source": "النظام",
              "destination": "المريض",
              "description": "إشعار يرسله النظام للمريض لتذكيره بموعده."
            },
            {
              "id": "IO-08",
              "type": "input",
              "name": "التذكير بالمواعيد",
              "source": "نظام خارجي",
              "destination": "النظام",
              "description": "أضف تكاملاً بسيطاً مع بوابة رسائل SMS لإرسال التذكير بالمواعيد"
            },
            {
              "id": "IO-09",
              "type": "output",
              "name": "التذكير بالمواعيد",
              "source": "النظام",
              "destination": "نظام خارجي",
              "description": "أضف تكاملاً بسيطاً مع بوابة رسائل SMS لإرسال التذكير بالمواعيد"
            }
          ],
          "isComplete": false
        }
      }
    ],
    "srsDraft": {
      "summary": "نظام لإدارة عيادة طبية صغيرة، يتضمن إدارة المرضى والمواعيد والملفات الطبية والفواتير، مع إشعارات للمرضى.",
      "actors": [
        "المريض",
        "موظف الاستقبال",
        "الطبيب",
        "مسؤول النظام"
      ],
      "useCases": [
        {
          "id": "UC-01",
          "title": "حجز موعد جديد",
          "actor": "المريض",
          "preconditions": "المريض مسجل في النظام.",
          "mainFlow": [
            "المريض يختار حجز موعد جديد.",
            "النظام يعرض الأوقات المتاحة.",
            "المريض يختار الوقت المناسب.",
            "النظام يؤكد حجز الموعد."
          ],
          "alternateFlow": [
            "الوقت المختار غير متاح."
          ]
        },
        {
          "id": "UC-02",
          "title": "متابعة المواعيد",
          "actor": "المريض",
          "preconditions": "المريض مسجل في النظام.",
          "mainFlow": [
            "المريض يختار متابعة مواعيده.",
            "النظام يعرض قائمة المواعيد القادمة والسابقة.",
            "المريض يستعرض تفاصيل الموعد."
          ],
          "alternateFlow": []
        },
        {
          "id": "UC-03",
          "title": "تسجيل مريض جديد",
          "actor": "موظف الاستقبال",
          "preconditions": "موظف الاستقبال مسجل الدخول.",
          "mainFlow": [
            "موظف الاستقبال يختار تسجيل مريض جديد.",
            "موظف الاستقبال يدخل بيانات المريض.",
            "النظام يحفظ بيانات المريض."
          ],
          "alternateFlow": [
            "بيانات المريض غير مكتملة."
          ]
        },
        {
          "id": "UC-04",
          "title": "تحديث بيانات المريض",
          "actor": "موظف الاستقبال",
          "preconditions": "موظف الاستقبال مسجل الدخول.",
          "mainFlow": [
            "موظف الاستقبال يبحث عن المريض.",
            "موظف الاستقبال يعدل بيانات المريض.",
            "النظام يحدث بيانات المريض."
          ],
          "alternateFlow": [
            "المريض غير موجود في النظام."
          ]
        },
        {
          "id": "UC-05",
          "title": "إصدار فاتورة",
          "actor": "موظف الاستقبال",
          "preconditions": "موظف الاستقبال مسجل الدخول.",
          "mainFlow": [
            "موظف الاستقبال يختار إصدار فاتورة.",
            "موظف الاستقبال يحدد الخدمات المقدمة.",
            "النظام يحسب المبلغ الإجمالي.",
            "النظام يصدر الفاتورة."
          ],
          "alternateFlow": [
            "الخدمات غير محددة."
          ]
        },
        {
          "id": "UC-06",
          "title": "عرض الملف الطبي",
          "actor": "الطبيب",
          "preconditions": "الطبيب مسجل الدخول.",
          "mainFlow": [
            "الطبيب يبحث عن المريض.",
            "النظام يعرض الملف الطبي للمريض.",
            "الطبيب يستعرض تاريخ المريض الطبي."
          ],
          "alternateFlow": [
            "المريض غير موجود في النظام."
          ]
        },
        {
          "id": "UC-07",
          "title": "إضافة تشخيص ووصفة",
          "actor": "الطبيب",
          "preconditions": "الطبيب مسجل الدخول.",
          "mainFlow": [
            "الطبيب يختار إضافة تشخيص ووصفة.",
            "الطبيب يدخل التشخيص.",
            "الطبيب يضيف الوصفة الطبية.",
            "النظام يحفظ التشخيص والوصفة."
          ],
          "alternateFlow": [
            "التشخيص أو الوصفة غير مكتملة."
          ]
        },
        {
          "id": "UC-08",
          "title": "عرض تقرير يومي",
          "actor": "مسؤول النظام",
          "preconditions": "مسؤول النظام مسجل الدخول.",
          "mainFlow": [
            "مسؤول النظام يختار عرض تقرير يومي.",
            "النظام يعرض تقرير بالمواعيد والفواتير.",
            "مسؤول النظام يستعرض التقرير."
          ],
          "alternateFlow": []
        },
        {
          "id": "UC-09",
          "title": "إرسال إشعار تذكير بالموعد",
          "actor": "النظام",
          "preconditions": "يوجد موعد قادم للمريض.",
          "mainFlow": [
            "النظام يحدد المواعيد القادمة.",
            "النظام يرسل إشعار تذكير للمريض.",
            "المريض يستقبل الإشعار."
          ],
          "alternateFlow": [
            "المريض قام بإلغاء الموعد."
          ]
        }
      ],
      "inputOutputs": [
        {
          "id": "IO-01",
          "type": "input",
          "name": "بيانات المريض",
          "source": "موظف الاستقبال",
          "destination": "النظام",
          "description": "بيانات المريض عند التسجيل أو التحديث."
        },
        {
          "id": "IO-02",
          "type": "input",
          "name": "الخدمات المقدمة",
          "source": "موظف الاستقبال",
          "destination": "النظام",
          "description": "قائمة الخدمات لتحديدها عند إصدار الفاتورة."
        },
        {
          "id": "IO-03",
          "type": "output",
          "name": "فاتورة",
          "source": "النظام",
          "destination": "موظف الاستقبال",
          "description": "الفاتورة النهائية للخدمات المقدمة."
        },
        {
          "id": "IO-04",
          "type": "input",
          "name": "التشخيص والوصفة",
          "source": "الطبيب",
          "destination": "النظام",
          "description": "معلومات التشخيص والوصفة الطبية."
        },
        {
          "id": "IO-05",
          "type": "output",
          "name": "الملف الطبي",
          "source": "النظام",
          "destination": "الطبيب",
          "description": "الملف الطبي الكامل للمريض."
        },
        {
          "id": "IO-06",
          "type": "output",
          "name": "تقرير يومي",
          "source": "النظام",
          "destination": "مسؤول النظام",
          "description": "تقرير يومي بالمواعيد والفواتير."
        },
        {
          "id": "IO-07",
          "type": "output",
          "name": "إشعار تذكير بالموعد",
          "source": "النظام",
          "destination": "المريض",
          "description": "إشعار يرسله النظام للمريض لتذكيره بموعده."
        }
      ],
      "functionPoints": [
        {
          "id": "FP-01",
          "name": "حجز موعد جديد",
          "description": "تغطي حالة الاستخدام \"حجز موعد جديد\" للفاعل المريض.",
          "complexity": "متوسطة",
          "fpScore": 4
        },
        {
          "id": "FP-02",
          "name": "متابعة المواعيد",
          "description": "تغطي حالة الاستخدام \"متابعة المواعيد\" للفاعل المريض.",
          "complexity": "بسيطة",
          "fpScore": 3
        },
        {
          "id": "FP-03",
          "name": "تسجيل مريض جديد",
          "description": "تغطي حالة الاستخدام \"تسجيل مريض جديد\" للفاعل موظف الاستقبال.",
          "complexity": "متوسطة",
          "fpScore": 4
        },
        {
          "id": "FP-04",
          "name": "تحديث بيانات المريض",
          "description": "تغطي حالة الاستخدام \"تحديث بيانات المريض\" للفاعل موظف الاستقبال.",
          "complexity": "متوسطة",
          "fpScore": 4
        },
        {
          "id": "FP-05",
          "name": "إصدار فاتورة",
          "description": "تغطي حالة الاستخدام \"إصدار فاتورة\" للفاعل موظف الاستقبال.",
          "complexity": "متوسطة",
          "fpScore": 4
        },
        {
          "id": "FP-06",
          "name": "عرض الملف الطبي",
          "description": "تغطي حالة الاستخدام \"عرض الملف الطبي\" للفاعل الطبيب.",
          "complexity": "متوسطة",
          "fpScore": 4
        },
        {
          "id": "FP-07",
          "name": "إضافة تشخيص ووصفة",
          "description": "تغطي حالة الاستخدام \"إضافة تشخيص ووصفة\" للفاعل الطبيب.",
          "complexity": "متوسطة",
          "fpScore": 4
        },
        {
          "id": "FP-08",
          "name": "عرض تقرير يومي",
          "description": "تغطي حالة الاستخدام \"عرض تقرير يومي\" للفاعل مسؤول النظام.",
          "complexity": "معقدة",
          "fpScore": 6
        },
        {
          "id": "FP-09",
          "name": "إرسال إشعار تذكير بالموعد",
          "description": "تغطي حالة الاستخدام \"إرسال إشعار تذكير بالموعد\" للفاعل النظام.",
          "complexity": "معقدة",
          "fpScore": 6
        }
      ],
      "confidence": "high",
      "question": "وجدت 4 Actors و9 Use Cases و3 Inputs و4 Outputs. هل تريد اعتمادها أم تعديلها؟",
      "counts": {
        "actors": 4,
        "useCases": 9,
        "inputs": 3,
        "outputs": 4
      }
    },
    "needsStructureConfirmation": false,
    "isComplete": false,
    "createdAt": "T15:43:22.456Z",
    "updatedAt": "T15:43:30.175Z",
    "stage": "evaluation"
  },
  {
    "id": "sess_d48avqz9mp738ls6",
    "title": "اختبار تنبيه Gemini",
    "scope": "النظام يخدم العميل والموظف ويعرض التقارير.",
    "actors": [
      "الموظف",
      "العميل"
    ],
    "useCases": [
      {
        "id": "UC-01",
        "title": "خدمة العميل",
        "actor": "العميل",
        "preconditions": "يجب أن يكون العميل مسجلاً أو لديه صلاحية الوصول.",
        "mainFlow": [
          "يقوم العميل بتسجيل الدخول.",
          "يتصفح العميل الخدمات المتاحة.",
          "يختار العميل خدمة معينة.",
          "يقوم العميل بتنفيذ إجراء متعلق بالخدمة (مثل تقديم طلب)."
        ],
        "alternateFlow": [
          "في حال عدم وجود صلاحية، يتم توجيه العميل لصفحة التسجيل أو الاتصال بالدعم."
        ]
      },
      {
        "id": "UC-02",
        "title": "خدمة الموظف",
        "actor": "الموظف",
        "preconditions": "يجب أن يكون الموظف مسجلاً ولديه الصلاحيات اللازمة.",
        "mainFlow": [
          "يقوم الموظف بتسجيل الدخول.",
          "يستعرض الموظف المهام أو الطلبات الموكلة إليه.",
          "يقوم الموظف بمعالجة طلب أو مهمة.",
          "يسجل الموظف نتيجة المعالجة."
        ],
        "alternateFlow": []
      },
      {
        "id": "UC-03",
        "title": "عرض التقارير",
        "actor": "الموظف",
        "preconditions": "يجب أن يكون الموظف مسجلاً ولديه صلاحية الوصول للتقارير.",
        "mainFlow": [
          "يقوم الموظف بتسجيل الدخول.",
          "يختار الموظف نوع التقرير المطلوب.",
          "يحدد الموظف معايير التقرير (مثل الفترة الزمنية، نوع البيانات).",
          "يعرض النظام التقرير المطلوب."
        ],
        "alternateFlow": []
      }
    ],
    "inputOutputs": [
      {
        "id": "IO-01",
        "type": "input",
        "name": "بيانات تسجيل الدخول للعميل",
        "source": "العميل",
        "destination": "النظام",
        "description": "اسم المستخدم وكلمة المرور للعميل."
      },
      {
        "id": "IO-02",
        "type": "output",
        "name": "قائمة الخدمات المتاحة للعميل",
        "source": "النظام",
        "destination": "العميل",
        "description": "قائمة بالخدمات التي يمكن للعميل الوصول إليها."
      },
      {
        "id": "IO-03",
        "type": "input",
        "name": "تفاصيل طلب العميل",
        "source": "العميل",
        "destination": "النظام",
        "description": "المعلومات التي يقدمها العميل لتقديم طلب."
      },
      {
        "id": "IO-04",
        "type": "input",
        "name": "بيانات تسجيل الدخول للموظف",
        "source": "الموظف",
        "destination": "النظام",
        "description": "اسم المستخدم وكلمة المرور للموظف."
      },
      {
        "id": "IO-05",
        "type": "output",
        "name": "قائمة المهام/الطلبات للموظف",
        "source": "النظام",
        "destination": "الموظف",
        "description": "قائمة بالمهام أو الطلبات التي تحتاج معالجة من قبل الموظف."
      },
      {
        "id": "IO-06",
        "type": "input",
        "name": "نتيجة معالجة الموظف",
        "source": "الموظف",
        "destination": "النظام",
        "description": "المعلومات التي يسجلها الموظف بعد معالجة مهمة."
      },
      {
        "id": "IO-07",
        "type": "input",
        "name": "معايير اختيار التقرير",
        "source": "الموظف",
        "destination": "النظام",
        "description": "الفترة الزمنية، نوع البيانات، أو أي فلاتر أخرى للتقرير."
      },
      {
        "id": "IO-08",
        "type": "output",
        "name": "التقرير المطلوب",
        "source": "النظام",
        "destination": "الموظف",
        "description": "البيانات المجمعة والمعروضة في شكل تقرير."
      }
    ],
    "functionPoints": [
      {
        "id": "FP-01",
        "name": "خدمة العميل",
        "description": "تمكين العميل من التفاعل مع النظام.",
        "complexity": "متوسطة",
        "fpScore": 4
      },
      {
        "id": "FP-02",
        "name": "خدمة الموظف",
        "description": "تمكين الموظف من التفاعل مع النظام وإدارة العمليات.",
        "complexity": "متوسطة",
        "fpScore": 4
      },
      {
        "id": "FP-03",
        "name": "عرض التقارير",
        "description": "توفير تقارير للموظفين أو الإدارة.",
        "complexity": "متوسطة",
        "fpScore": 4
      }
    ],
    "planning": {
      "developers": 3,
      "sprintWeeks": 2,
      "hoursPerDay": 8
    },
    "history": [
      {
        "role": "assistant",
        "payload": {
          "reply": "بدأنا مشروعاً جديداً بعنوان \"اختبار تنبيه Gemini\". هل تود أن تبدأ برفع ملف SRS، أم تصف لي الهدف العام للمشروع مباشرة؟",
          "stage": "intro",
          "scope": "",
          "actors": [],
          "functionPoints": [],
          "useCases": [],
          "inputOutputs": [],
          "isComplete": false
        }
      },
      {
        "role": "user",
        "text": "النظام يخدم العميل والموظف ويعرض التقارير."
      },
      {
        "role": "assistant",
        "payload": {
          "reply": "ما هي العمليات الرئيسية التي يقوم بها العميل في هذا النظام؟",
          "stage": "evaluation",
          "scope": "النظام يخدم العميل والموظف ويعرض التقارير.",
          "actors": [
            "الموظف",
            "العميل"
          ],
          "functionPoints": [
            {
              "id": "FP-01",
              "name": "خدمة العميل",
              "description": "تمكين العميل من التفاعل مع النظام.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-02",
              "name": "خدمة الموظف",
              "description": "تمكين الموظف من التفاعل مع النظام وإدارة العمليات.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-03",
              "name": "عرض التقارير",
              "description": "توفير تقارير للموظفين أو الإدارة.",
              "complexity": "متوسطة",
              "fpScore": 4
            }
          ],
          "useCases": [
            {
              "id": "UC-01",
              "title": "خدمة العميل",
              "actor": "العميل",
              "preconditions": "يجب أن يكون العميل مسجلاً أو لديه صلاحية الوصول.",
              "mainFlow": [
                "يقوم العميل بتسجيل الدخول.",
                "يتصفح العميل الخدمات المتاحة.",
                "يختار العميل خدمة معينة.",
                "يقوم العميل بتنفيذ إجراء متعلق بالخدمة (مثل تقديم طلب)."
              ],
              "alternateFlow": [
                "في حال عدم وجود صلاحية، يتم توجيه العميل لصفحة التسجيل أو الاتصال بالدعم."
              ]
            },
            {
              "id": "UC-02",
              "title": "خدمة الموظف",
              "actor": "الموظف",
              "preconditions": "يجب أن يكون الموظف مسجلاً ولديه الصلاحيات اللازمة.",
              "mainFlow": [
                "يقوم الموظف بتسجيل الدخول.",
                "يستعرض الموظف المهام أو الطلبات الموكلة إليه.",
                "يقوم الموظف بمعالجة طلب أو مهمة.",
                "يسجل الموظف نتيجة المعالجة."
              ],
              "alternateFlow": []
            },
            {
              "id": "UC-03",
              "title": "عرض التقارير",
              "actor": "الموظف",
              "preconditions": "يجب أن يكون الموظف مسجلاً ولديه صلاحية الوصول للتقارير.",
              "mainFlow": [
                "يقوم الموظف بتسجيل الدخول.",
                "يختار الموظف نوع التقرير المطلوب.",
                "يحدد الموظف معايير التقرير (مثل الفترة الزمنية، نوع البيانات).",
                "يعرض النظام التقرير المطلوب."
              ],
              "alternateFlow": []
            }
          ],
          "inputOutputs": [
            {
              "id": "IO-01",
              "type": "input",
              "name": "بيانات تسجيل الدخول للعميل",
              "source": "العميل",
              "destination": "النظام",
              "description": "اسم المستخدم وكلمة المرور للعميل."
            },
            {
              "id": "IO-02",
              "type": "output",
              "name": "قائمة الخدمات المتاحة للعميل",
              "source": "النظام",
              "destination": "العميل",
              "description": "قائمة بالخدمات التي يمكن للعميل الوصول إليها."
            },
            {
              "id": "IO-03",
              "type": "input",
              "name": "تفاصيل طلب العميل",
              "source": "العميل",
              "destination": "النظام",
              "description": "المعلومات التي يقدمها العميل لتقديم طلب."
            },
            {
              "id": "IO-04",
              "type": "input",
              "name": "بيانات تسجيل الدخول للموظف",
              "source": "الموظف",
              "destination": "النظام",
              "description": "اسم المستخدم وكلمة المرور للموظف."
            },
            {
              "id": "IO-05",
              "type": "output",
              "name": "قائمة المهام/الطلبات للموظف",
              "source": "النظام",
              "destination": "الموظف",
              "description": "قائمة بالمهام أو الطلبات التي تحتاج معالجة من قبل الموظف."
            },
            {
              "id": "IO-06",
              "type": "input",
              "name": "نتيجة معالجة الموظف",
              "source": "الموظف",
              "destination": "النظام",
              "description": "المعلومات التي يسجلها الموظف بعد معالجة مهمة."
            },
            {
              "id": "IO-07",
              "type": "input",
              "name": "معايير اختيار التقرير",
              "source": "الموظف",
              "destination": "النظام",
              "description": "الفترة الزمنية، نوع البيانات، أو أي فلاتر أخرى للتقرير."
            },
            {
              "id": "IO-08",
              "type": "output",
              "name": "التقرير المطلوب",
              "source": "النظام",
              "destination": "الموظف",
              "description": "البيانات المجمعة والمعروضة في شكل تقرير."
            }
          ],
          "isComplete": false
        }
      }
    ],
    "srsDraft": null,
    "needsStructureConfirmation": false,
    "isComplete": false,
    "createdAt": "T15:44:32.070Z",
    "updatedAt": "T15:44:38.363Z",
    "stage": "evaluation"
  },
  {
    "id": "sess_v6ltq57omp82lu2i",
    "title": "شقق",
    "scope": "",
    "actors": [],
    "useCases": [],
    "inputOutputs": [],
    "functionPoints": [],
    "planning": {
      "developers": 3,
      "sprintWeeks": 2,
      "hoursPerDay": 8
    },
    "history": [
      {
        "role": "assistant",
        "payload": {
          "reply": "بدأنا مشروعاً جديداً بعنوان \"شقق\". هل تود أن تبدأ برفع ملف SRS، أم تصف لي الهدف العام للمشروع مباشرة؟",
          "stage": "intro",
          "scope": "",
          "actors": [],
          "functionPoints": [],
          "useCases": [],
          "inputOutputs": [],
          "isComplete": false
        }
      }
    ],
    "srsDraft": null,
    "needsStructureConfirmation": false,
    "isComplete": false,
    "createdAt": "T08:14:35.898Z",
    "updatedAt": "T08:14:35.902Z",
    "stage": "intro"
  },
  {
    "id": "sess_2rrqdd24mp82mmm7",
    "title": "ser",
    "scope": "",
    "actors": [],
    "useCases": [],
    "inputOutputs": [],
    "functionPoints": [],
    "planning": {
      "developers": 3,
      "sprintWeeks": 2,
      "hoursPerDay": 8
    },
    "history": [
      {
        "role": "assistant",
        "payload": {
          "reply": "بدأنا مشروعاً جديداً بعنوان \"ser\". هل تود أن تبدأ برفع ملف SRS، أم تصف لي الهدف العام للمشروع مباشرة؟",
          "stage": "intro",
          "scope": "",
          "actors": [],
          "functionPoints": [],
          "useCases": [],
          "inputOutputs": [],
          "isComplete": false
        }
      }
    ],
    "srsDraft": null,
    "needsStructureConfirmation": false,
    "isComplete": false,
    "createdAt": "T08:15:12.895Z",
    "updatedAt": "T08:15:12.915Z",
    "stage": "intro"
  },
  {
    "id": "sess_vsyycl02mp83hq7p",
    "title": "سثث",
    "scope": "",
    "actors": [],
    "useCases": [],
    "inputOutputs": [],
    "functionPoints": [],
    "planning": {
      "developers": 3,
      "sprintWeeks": 2,
      "hoursPerDay": 8
    },
    "history": [
      {
        "role": "assistant",
        "payload": {
          "reply": "بدأنا مشروعاً جديداً بعنوان \"سثث\". هل تود أن تبدأ برفع ملف SRS، أم تصف لي الهدف العام للمشروع مباشرة؟",
          "stage": "intro",
          "scope": "",
          "actors": [],
          "functionPoints": [],
          "useCases": [],
          "inputOutputs": [],
          "isComplete": false
        }
      }
    ],
    "srsDraft": null,
    "needsStructureConfirmation": false,
    "isComplete": false,
    "createdAt": "T08:39:23.893Z",
    "updatedAt": "T08:39:23.894Z",
    "stage": "intro"
  },
  {
    "id": "sess_u7o8c5d0mp83wmtt",
    "title": "فحص واجهة الشات",
    "scope": "نظام لفحص واجهة الشات يسمح للمستخدمين بتسجيل الدخول، للمديرين بمراجعة الطلبات، وللعملاء بإرسال طلبات الخدمة، مع إصدار النظام لتقارير شهرية.",
    "actors": [
      "المستخدم",
      "المدير",
      "العميل",
      "النظام"
    ],
    "useCases": [
      {
        "id": "UC-01",
        "title": "تسجيل الدخول",
        "actor": "المستخدم",
        "preconditions": "يجب أن يكون لدى المستخدم حساب صالح.",
        "mainFlow": [
          "يقوم المستخدم بإدخال اسم المستخدم وكلمة المرور.",
          "يقوم النظام بالتحقق من صحة بيانات الاعتماد.",
          "إذا كانت البيانات صحيحة، يتم تسجيل دخول المستخدم بنجاح.",
          "إذا كانت البيانات غير صحيحة، يتم عرض رسالة خطأ."
        ],
        "alternateFlow": [
          "في حالة نسيان كلمة المرور، يمكن للمستخدم طلب إعادة تعيينها."
        ]
      },
      {
        "id": "UC-02",
        "title": "مراجعة الطلبات",
        "actor": "المدير",
        "preconditions": "يجب أن يكون لدى المدير صلاحيات الوصول إلى قسم مراجعة الطلبات.",
        "mainFlow": [
          "يقوم المدير بالوصول إلى قسم مراجعة الطلبات.",
          "يعرض النظام قائمة بالطلبات المقدمة.",
          "يمكن للمدير اختيار طلب معين لعرض تفاصيله.",
          "يمكن للمدير تحديث حالة الطلب (مثل: قيد المعالجة، مكتمل، مرفوض)."
        ],
        "alternateFlow": []
      },
      {
        "id": "UC-03",
        "title": "إصدار تقرير شهري",
        "actor": "النظام",
        "preconditions": "يجب أن يكون النظام قادراً على الوصول إلى بيانات الطلبات.",
        "mainFlow": [
          "في نهاية كل شهر، يقوم النظام بتشغيل عملية إنشاء التقرير.",
          "يقوم النظام بتجميع بيانات الطلبات خلال الشهر.",
          "يقوم النظام بإنشاء تقرير شهري يتضمن ملخصاً للطلبات وحالاتها."
        ],
        "alternateFlow": [
          "يمكن للمدير طلب إنشاء تقرير في أي وقت."
        ]
      },
      {
        "id": "UC-04",
        "title": "إرسال طلب خدمة",
        "actor": "العميل",
        "preconditions": "يجب أن يكون لدى العميل حساب أو القدرة على تقديم طلب كضيف.",
        "mainFlow": [
          "يقوم العميل بالوصول إلى واجهة تقديم طلب الخدمة.",
          "يقوم العميل بإدخال تفاصيل الطلب (مثل: وصف الخدمة المطلوبة، معلومات الاتصال).",
          "يقوم العميل بإرسال الطلب.",
          "يقوم النظام بتسجيل الطلب وتعيين معرف فريد له.",
          "يعرض النظام رسالة تأكيد للعميل."
        ],
        "alternateFlow": []
      }
    ],
    "inputOutputs": [
      {
        "id": "IO-01",
        "type": "input",
        "name": "بيانات تسجيل الدخول (اسم المستخدم، كلمة المرور)",
        "source": "المستخدم",
        "destination": "النظام",
        "description": "المعلومات التي يدخلها المستخدم لتسجيل الدخول."
      },
      {
        "id": "IO-02",
        "type": "output",
        "name": "تأكيد تسجيل الدخول / رسالة خطأ",
        "source": "النظام",
        "destination": "المستخدم",
        "description": "نتيجة عملية تسجيل الدخول."
      },
      {
        "id": "IO-03",
        "type": "input",
        "name": "معرف الطلب / تحديث الحالة",
        "source": "المدير",
        "destination": "النظام",
        "description": "المعلومات التي يدخلها المدير لتحديث حالة الطلب أو مراجعته."
      },
      {
        "id": "IO-04",
        "type": "output",
        "name": "قائمة الطلبات / تفاصيل الطلب",
        "source": "النظام",
        "destination": "المدير",
        "description": "البيانات التي يعرضها النظام للمدير لمراجعة الطلبات."
      },
      {
        "id": "IO-05",
        "type": "output",
        "name": "التقرير الشهري",
        "source": "النظام",
        "destination": "المدير",
        "description": "التقرير الذي يولده النظام شهرياً."
      },
      {
        "id": "IO-06",
        "type": "input",
        "name": "تفاصيل طلب الخدمة (وصف، معلومات الاتصال)",
        "source": "العميل",
        "destination": "النظام",
        "description": "المعلومات التي يقدمها العميل لإنشاء طلب خدمة."
      },
      {
        "id": "IO-07",
        "type": "output",
        "name": "تأكيد تقديم الطلب",
        "source": "النظام",
        "destination": "العميل",
        "description": "رسالة تأكيد للعميل بعد تقديم طلب الخدمة."
      }
    ],
    "functionPoints": [
      {
        "id": "FP-01",
        "name": "تسجيل الدخول",
        "description": "تغطي حالة الاستخدام \"تسجيل الدخول\" للفاعل المستخدم.",
        "complexity": "معقدة",
        "fpScore": 6
      },
      {
        "id": "FP-02",
        "name": "مراجعة الطلبات",
        "description": "تغطي حالة الاستخدام \"مراجعة الطلبات\" للفاعل المدير.",
        "complexity": "متوسطة",
        "fpScore": 4
      },
      {
        "id": "FP-03",
        "name": "إصدار تقرير شهري",
        "description": "تغطي حالة الاستخدام \"إصدار تقرير شهري\" للفاعل النظام.",
        "complexity": "معقدة",
        "fpScore": 6
      },
      {
        "id": "FP-04",
        "name": "إرسال طلب خدمة",
        "description": "تغطي حالة الاستخدام \"إرسال طلب خدمة\" للفاعل العميل.",
        "complexity": "متوسطة",
        "fpScore": 4
      }
    ],
    "planning": {
      "developers": 3,
      "sprintWeeks": 2,
      "hoursPerDay": 8
    },
    "history": [
      {
        "role": "assistant",
        "payload": {
          "reply": "بدأنا مشروعاً جديداً بعنوان \"فحص واجهة الشات\". هل تود أن تبدأ برفع ملف SRS، أم تصف لي الهدف العام للمشروع مباشرة؟",
          "stage": "intro",
          "scope": "",
          "actors": [],
          "functionPoints": [],
          "useCases": [],
          "inputOutputs": [],
          "isComplete": false
        }
      },
      {
        "role": "assistant",
        "payload": {
          "reply": "تم تحليل النص المرفوع. اقترحت 4 Actors و4 Use Cases و3 Inputs و4 Outputs. هل تفاصيل حالات الاستخدام والمدخلات والمخرجات والوظائف المستخرجة تعكس بدقة متطلبات النظام المذكورة في نص SRS؟",
          "stage": "exploration",
          "scope": "نظام لفحص واجهة الشات يسمح للمستخدمين بتسجيل الدخول، للمديرين بمراجعة الطلبات، وللعملاء بإرسال طلبات الخدمة، مع إصدار النظام لتقارير شهرية.",
          "actors": [
            "المستخدم",
            "المدير",
            "العميل",
            "النظام"
          ],
          "functionPoints": [
            {
              "id": "FP-01",
              "name": "تسجيل الدخول",
              "description": "وظيفة تسجيل دخول المستخدمين إلى النظام.",
              "complexity": "متوسطة",
              "fpScore": 5
            },
            {
              "id": "FP-02",
              "name": "إدارة الطلبات",
              "description": "وظيفة مراجعة وتحديث حالات الطلبات من قبل المدير.",
              "complexity": "معقدة",
              "fpScore": 7
            },
            {
              "id": "FP-03",
              "name": "إنشاء تقرير شهري",
              "description": "وظيفة توليد تقرير شهري آلياً بواسطة النظام.",
              "complexity": "معقدة",
              "fpScore": 6
            },
            {
              "id": "FP-04",
              "name": "تقديم طلب خدمة",
              "description": "وظيفة تمكين العملاء من إرسال طلبات الخدمة.",
              "complexity": "متوسطة",
              "fpScore": 5
            }
          ],
          "useCases": [
            {
              "id": "UC-01",
              "title": "تسجيل الدخول",
              "actor": "المستخدم",
              "preconditions": "يجب أن يكون لدى المستخدم حساب صالح.",
              "mainFlow": [
                "يقوم المستخدم بإدخال اسم المستخدم وكلمة المرور.",
                "يقوم النظام بالتحقق من صحة بيانات الاعتماد.",
                "إذا كانت البيانات صحيحة، يتم تسجيل دخول المستخدم بنجاح.",
                "إذا كانت البيانات غير صحيحة، يتم عرض رسالة خطأ."
              ],
              "alternateFlow": [
                "في حالة نسيان كلمة المرور، يمكن للمستخدم طلب إعادة تعيينها."
              ]
            },
            {
              "id": "UC-02",
              "title": "مراجعة الطلبات",
              "actor": "المدير",
              "preconditions": "يجب أن يكون لدى المدير صلاحيات الوصول إلى قسم مراجعة الطلبات.",
              "mainFlow": [
                "يقوم المدير بالوصول إلى قسم مراجعة الطلبات.",
                "يعرض النظام قائمة بالطلبات المقدمة.",
                "يمكن للمدير اختيار طلب معين لعرض تفاصيله.",
                "يمكن للمدير تحديث حالة الطلب (مثل: قيد المعالجة، مكتمل، مرفوض)."
              ],
              "alternateFlow": []
            },
            {
              "id": "UC-03",
              "title": "إصدار تقرير شهري",
              "actor": "النظام",
              "preconditions": "يجب أن يكون النظام قادراً على الوصول إلى بيانات الطلبات.",
              "mainFlow": [
                "في نهاية كل شهر، يقوم النظام بتشغيل عملية إنشاء التقرير.",
                "يقوم النظام بتجميع بيانات الطلبات خلال الشهر.",
                "يقوم النظام بإنشاء تقرير شهري يتضمن ملخصاً للطلبات وحالاتها."
              ],
              "alternateFlow": [
                "يمكن للمدير طلب إنشاء تقرير في أي وقت."
              ]
            },
            {
              "id": "UC-04",
              "title": "إرسال طلب خدمة",
              "actor": "العميل",
              "preconditions": "يجب أن يكون لدى العميل حساب أو القدرة على تقديم طلب كضيف.",
              "mainFlow": [
                "يقوم العميل بالوصول إلى واجهة تقديم طلب الخدمة.",
                "يقوم العميل بإدخال تفاصيل الطلب (مثل: وصف الخدمة المطلوبة، معلومات الاتصال).",
                "يقوم العميل بإرسال الطلب.",
                "يقوم النظام بتسجيل الطلب وتعيين معرف فريد له.",
                "يعرض النظام رسالة تأكيد للعميل."
              ],
              "alternateFlow": []
            }
          ],
          "inputOutputs": [
            {
              "id": "IO-01",
              "type": "input",
              "name": "بيانات تسجيل الدخول (اسم المستخدم، كلمة المرور)",
              "source": "المستخدم",
              "destination": "النظام",
              "description": "المعلومات التي يدخلها المستخدم لتسجيل الدخول."
            },
            {
              "id": "IO-02",
              "type": "output",
              "name": "تأكيد تسجيل الدخول / رسالة خطأ",
              "source": "النظام",
              "destination": "المستخدم",
              "description": "نتيجة عملية تسجيل الدخول."
            },
            {
              "id": "IO-03",
              "type": "input",
              "name": "معرف الطلب / تحديث الحالة",
              "source": "المدير",
              "destination": "النظام",
              "description": "المعلومات التي يدخلها المدير لتحديث حالة الطلب أو مراجعته."
            },
            {
              "id": "IO-04",
              "type": "output",
              "name": "قائمة الطلبات / تفاصيل الطلب",
              "source": "النظام",
              "destination": "المدير",
              "description": "البيانات التي يعرضها النظام للمدير لمراجعة الطلبات."
            },
            {
              "id": "IO-05",
              "type": "output",
              "name": "التقرير الشهري",
              "source": "النظام",
              "destination": "المدير",
              "description": "التقرير الذي يولده النظام شهرياً."
            },
            {
              "id": "IO-06",
              "type": "input",
              "name": "تفاصيل طلب الخدمة (وصف، معلومات الاتصال)",
              "source": "العميل",
              "destination": "النظام",
              "description": "المعلومات التي يقدمها العميل لإنشاء طلب خدمة."
            },
            {
              "id": "IO-07",
              "type": "output",
              "name": "تأكيد تقديم الطلب",
              "source": "النظام",
              "destination": "العميل",
              "description": "رسالة تأكيد للعميل بعد تقديم طلب الخدمة."
            }
          ],
          "isComplete": false
        }
      },
      {
        "role": "assistant",
        "payload": {
          "reply": "تم اعتماد الهيكل الأولي: 4 Actors، 4 Use Cases، و7 Inputs/Outputs. أصبح لدينا أساس جيد للتقدير؛ هل تريد تثبيت التقدير الحالي وتوليد التقرير أم إضافة تفاصيل تقنية أخرى؟",
          "stage": "evaluation",
          "scope": "نظام لفحص واجهة الشات يسمح للمستخدمين بتسجيل الدخول، للمديرين بمراجعة الطلبات، وللعملاء بإرسال طلبات الخدمة، مع إصدار النظام لتقارير شهرية.",
          "actors": [
            "المستخدم",
            "المدير",
            "العميل",
            "النظام"
          ],
          "functionPoints": [
            {
              "id": "FP-01",
              "name": "تسجيل الدخول",
              "description": "تغطي حالة الاستخدام \"تسجيل الدخول\" للفاعل المستخدم.",
              "complexity": "معقدة",
              "fpScore": 6
            },
            {
              "id": "FP-02",
              "name": "مراجعة الطلبات",
              "description": "تغطي حالة الاستخدام \"مراجعة الطلبات\" للفاعل المدير.",
              "complexity": "متوسطة",
              "fpScore": 4
            },
            {
              "id": "FP-03",
              "name": "إصدار تقرير شهري",
              "description": "تغطي حالة الاستخدام \"إصدار تقرير شهري\" للفاعل النظام.",
              "complexity": "معقدة",
              "fpScore": 6
            },
            {
              "id": "FP-04",
              "name": "إرسال طلب خدمة",
              "description": "تغطي حالة الاستخدام \"إرسال طلب خدمة\" للفاعل العميل.",
              "complexity": "متوسطة",
              "fpScore": 4
            }
          ],
          "useCases": [
            {
              "id": "UC-01",
              "title": "تسجيل الدخول",
              "actor": "المستخدم",
              "preconditions": "يجب أن يكون لدى المستخدم حساب صالح.",
              "mainFlow": [
                "يقوم المستخدم بإدخال اسم المستخدم وكلمة المرور.",
                "يقوم النظام بالتحقق من صحة بيانات الاعتماد.",
                "إذا كانت البيانات صحيحة، يتم تسجيل دخول المستخدم بنجاح.",
                "إذا كانت البيانات غير صحيحة، يتم عرض رسالة خطأ."
              ],
              "alternateFlow": [
                "في حالة نسيان كلمة المرور، يمكن للمستخدم طلب إعادة تعيينها."
              ]
            },
            {
              "id": "UC-02",
              "title": "مراجعة الطلبات",
              "actor": "المدير",
              "preconditions": "يجب أن يكون لدى المدير صلاحيات الوصول إلى قسم مراجعة الطلبات.",
              "mainFlow": [
                "يقوم المدير بالوصول إلى قسم مراجعة الطلبات.",
                "يعرض النظام قائمة بالطلبات المقدمة.",
                "يمكن للمدير اختيار طلب معين لعرض تفاصيله.",
                "يمكن للمدير تحديث حالة الطلب (مثل: قيد المعالجة، مكتمل، مرفوض)."
              ],
              "alternateFlow": []
            },
            {
              "id": "UC-03",
              "title": "إصدار تقرير شهري",
              "actor": "النظام",
              "preconditions": "يجب أن يكون النظام قادراً على الوصول إلى بيانات الطلبات.",
              "mainFlow": [
                "في نهاية كل شهر، يقوم النظام بتشغيل عملية إنشاء التقرير.",
                "يقوم النظام بتجميع بيانات الطلبات خلال الشهر.",
                "يقوم النظام بإنشاء تقرير شهري يتضمن ملخصاً للطلبات وحالاتها."
              ],
              "alternateFlow": [
                "يمكن للمدير طلب إنشاء تقرير في أي وقت."
              ]
            },
            {
              "id": "UC-04",
              "title": "إرسال طلب خدمة",
              "actor": "العميل",
              "preconditions": "يجب أن يكون لدى العميل حساب أو القدرة على تقديم طلب كضيف.",
              "mainFlow": [
                "يقوم العميل بالوصول إلى واجهة تقديم طلب الخدمة.",
                "يقوم العميل بإدخال تفاصيل الطلب (مثل: وصف الخدمة المطلوبة، معلومات الاتصال).",
                "يقوم العميل بإرسال الطلب.",
                "يقوم النظام بتسجيل الطلب وتعيين معرف فريد له.",
                "يعرض النظام رسالة تأكيد للعميل."
              ],
              "alternateFlow": []
            }
          ],
          "inputOutputs": [
            {
              "id": "IO-01",
              "type": "input",
              "name": "بيانات تسجيل الدخول (اسم المستخدم، كلمة المرور)",
              "source": "المستخدم",
              "destination": "النظام",
              "description": "المعلومات التي يدخلها المستخدم لتسجيل الدخول."
            },
            {
              "id": "IO-02",
              "type": "output",
              "name": "تأكيد تسجيل الدخول / رسالة خطأ",
              "source": "النظام",
              "destination": "المستخدم",
              "description": "نتيجة عملية تسجيل الدخول."
            },
            {
              "id": "IO-03",
              "type": "input",
              "name": "معرف الطلب / تحديث الحالة",
              "source": "المدير",
              "destination": "النظام",
              "description": "المعلومات التي يدخلها المدير لتحديث حالة الطلب أو مراجعته."
            },
            {
              "id": "IO-04",
              "type": "output",
              "name": "قائمة الطلبات / تفاصيل الطلب",
              "source": "النظام",
              "destination": "المدير",
              "description": "البيانات التي يعرضها النظام للمدير لمراجعة الطلبات."
            },
            {
              "id": "IO-05",
              "type": "output",
              "name": "التقرير الشهري",
              "source": "النظام",
              "destination": "المدير",
              "description": "التقرير الذي يولده النظام شهرياً."
            },
            {
              "id": "IO-06",
              "type": "input",
              "name": "تفاصيل طلب الخدمة (وصف، معلومات الاتصال)",
              "source": "العميل",
              "destination": "النظام",
              "description": "المعلومات التي يقدمها العميل لإنشاء طلب خدمة."
            },
            {
              "id": "IO-07",
              "type": "output",
              "name": "تأكيد تقديم الطلب",
              "source": "النظام",
              "destination": "العميل",
              "description": "رسالة تأكيد للعميل بعد تقديم طلب الخدمة."
            }
          ],
          "isComplete": false
        }
      }
    ],
    "srsDraft": {
      "summary": "نظام لفحص واجهة الشات يسمح للمستخدمين بتسجيل الدخول، للمديرين بمراجعة الطلبات، وللعملاء بإرسال طلبات الخدمة، مع إصدار النظام لتقارير شهرية.",
      "actors": [
        "المستخدم",
        "المدير",
        "العميل",
        "النظام"
      ],
      "useCases": [
        {
          "id": "UC-01",
          "title": "تسجيل الدخول",
          "actor": "المستخدم",
          "preconditions": "يجب أن يكون لدى المستخدم حساب صالح.",
          "mainFlow": [
            "يقوم المستخدم بإدخال اسم المستخدم وكلمة المرور.",
            "يقوم النظام بالتحقق من صحة بيانات الاعتماد.",
            "إذا كانت البيانات صحيحة، يتم تسجيل دخول المستخدم بنجاح.",
            "إذا كانت البيانات غير صحيحة، يتم عرض رسالة خطأ."
          ],
          "alternateFlow": [
            "في حالة نسيان كلمة المرور، يمكن للمستخدم طلب إعادة تعيينها."
          ]
        },
        {
          "id": "UC-02",
          "title": "مراجعة الطلبات",
          "actor": "المدير",
          "preconditions": "يجب أن يكون لدى المدير صلاحيات الوصول إلى قسم مراجعة الطلبات.",
          "mainFlow": [
            "يقوم المدير بالوصول إلى قسم مراجعة الطلبات.",
            "يعرض النظام قائمة بالطلبات المقدمة.",
            "يمكن للمدير اختيار طلب معين لعرض تفاصيله.",
            "يمكن للمدير تحديث حالة الطلب (مثل: قيد المعالجة، مكتمل، مرفوض)."
          ],
          "alternateFlow": []
        },
        {
          "id": "UC-03",
          "title": "إصدار تقرير شهري",
          "actor": "النظام",
          "preconditions": "يجب أن يكون النظام قادراً على الوصول إلى بيانات الطلبات.",
          "mainFlow": [
            "في نهاية كل شهر، يقوم النظام بتشغيل عملية إنشاء التقرير.",
            "يقوم النظام بتجميع بيانات الطلبات خلال الشهر.",
            "يقوم النظام بإنشاء تقرير شهري يتضمن ملخصاً للطلبات وحالاتها."
          ],
          "alternateFlow": [
            "يمكن للمدير طلب إنشاء تقرير في أي وقت."
          ]
        },
        {
          "id": "UC-04",
          "title": "إرسال طلب خدمة",
          "actor": "العميل",
          "preconditions": "يجب أن يكون لدى العميل حساب أو القدرة على تقديم طلب كضيف.",
          "mainFlow": [
            "يقوم العميل بالوصول إلى واجهة تقديم طلب الخدمة.",
            "يقوم العميل بإدخال تفاصيل الطلب (مثل: وصف الخدمة المطلوبة، معلومات الاتصال).",
            "يقوم العميل بإرسال الطلب.",
            "يقوم النظام بتسجيل الطلب وتعيين معرف فريد له.",
            "يعرض النظام رسالة تأكيد للعميل."
          ],
          "alternateFlow": []
        }
      ],
      "inputOutputs": [
        {
          "id": "IO-01",
          "type": "input",
          "name": "بيانات تسجيل الدخول (اسم المستخدم، كلمة المرور)",
          "source": "المستخدم",
          "destination": "النظام",
          "description": "المعلومات التي يدخلها المستخدم لتسجيل الدخول."
        },
        {
          "id": "IO-02",
          "type": "output",
          "name": "تأكيد تسجيل الدخول / رسالة خطأ",
          "source": "النظام",
          "destination": "المستخدم",
          "description": "نتيجة عملية تسجيل الدخول."
        },
        {
          "id": "IO-03",
          "type": "input",
          "name": "معرف الطلب / تحديث الحالة",
          "source": "المدير",
          "destination": "النظام",
          "description": "المعلومات التي يدخلها المدير لتحديث حالة الطلب أو مراجعته."
        },
        {
          "id": "IO-04",
          "type": "output",
          "name": "قائمة الطلبات / تفاصيل الطلب",
          "source": "النظام",
          "destination": "المدير",
          "description": "البيانات التي يعرضها النظام للمدير لمراجعة الطلبات."
        },
        {
          "id": "IO-05",
          "type": "output",
          "name": "التقرير الشهري",
          "source": "النظام",
          "destination": "المدير",
          "description": "التقرير الذي يولده النظام شهرياً."
        },
        {
          "id": "IO-06",
          "type": "input",
          "name": "تفاصيل طلب الخدمة (وصف، معلومات الاتصال)",
          "source": "العميل",
          "destination": "النظام",
          "description": "المعلومات التي يقدمها العميل لإنشاء طلب خدمة."
        },
        {
          "id": "IO-07",
          "type": "output",
          "name": "تأكيد تقديم الطلب",
          "source": "النظام",
          "destination": "العميل",
          "description": "رسالة تأكيد للعميل بعد تقديم طلب الخدمة."
        }
      ],
      "functionPoints": [
        {
          "id": "FP-01",
          "name": "تسجيل الدخول",
          "description": "تغطي حالة الاستخدام \"تسجيل الدخول\" للفاعل المستخدم.",
          "complexity": "معقدة",
          "fpScore": 6
        },
        {
          "id": "FP-02",
          "name": "مراجعة الطلبات",
          "description": "تغطي حالة الاستخدام \"مراجعة الطلبات\" للفاعل المدير.",
          "complexity": "متوسطة",
          "fpScore": 4
        },
        {
          "id": "FP-03",
          "name": "إصدار تقرير شهري",
          "description": "تغطي حالة الاستخدام \"إصدار تقرير شهري\" للفاعل النظام.",
          "complexity": "معقدة",
          "fpScore": 6
        },
        {
          "id": "FP-04",
          "name": "إرسال طلب خدمة",
          "description": "تغطي حالة الاستخدام \"إرسال طلب خدمة\" للفاعل العميل.",
          "complexity": "متوسطة",
          "fpScore": 4
        }
      ],
      "confidence": "high",
      "question": "وجدت 4 Actors و4 Use Cases و3 Inputs و4 Outputs. هل تريد اعتمادها أم تعديلها؟",
      "counts": {
        "actors": 4,
        "useCases": 4,
        "inputs": 3,
        "outputs": 4
      }
    },
    "needsStructureConfirmation": false,
    "isComplete": false,
    "createdAt": "T08:50:59.345Z",
    "updatedAt": "T08:51:08.433Z",
    "stage": "evaluation"
  }
]