🏢 موديول Facility & Utility Item

Quality Control System — SQAI

الفكرة العامة

الموديول مبني على فكرة أساسية:

"create category, then items linked to category, since most items share similar checks"

الأول بننشئ Category (فئة) وبنحدد عليها خطة الفحص/الصيانة، وبعدين بننشئ Items (عناصر فعلية موجودة في الفروع) وبنربطها بالـ Category. الفايدة: كل العناصر تحت نفس الفئة بتاخد نفس خطة الفحص جاهزة، من غير تكرار.

1) إضافة فئة (Add Category)

الحقلالشرح
Nameاسم الفئة (مثلاً: أجهزة التكييف، طفايات الحريق، المولدات)
maintenance and check planخطة الفحص والصيانة الخاصة بالفئة (تفاصيلها تحت)

تفاصيل الخطة (Plan)

العنصرالشرح
FrequencyDaily / Weekly / Monthly / Quarterly / Semi-Annual / Annual
on Demandأو بدل التكرار الدوري، يكون الفحص عند الطلب فقط
TypeInspection (فحص بصري) / Functional Check (فحص أداء) / Preventive Service (صيانة دورية) / Calibration (معايرة) / Safety Check (فحص سلامة)
Items (list)قائمة بنود الفحص نفسها (checklist) — أكتر من بند
ByOperator / Biomedical / External (طرف خارجي)
فئة واحدة ممكن يكون عندها أكتر من خطة فحص في نفس الوقت — مثلاً فحص يومي بصري + صيانة شهرية دورية لنفس الفئة. وده سبب وجود جدول facility_category_plans منفصل عن facility_categories.

2) سجل الفئات (Category log)

شاشة عرض بسيطة بأسماء كل الفئات المُنشأة.

3) إضافة عناصر (Add Items)

الحقلالشرح
Categoryقائمة — تحديد الفئة (وبيوريث خطة الفحص بتاعتها)
Nameاسم العنصر (نص حر)
Branch siteقائمة — موقع الفرع
Locationقائمة — الموقع التفصيلي داخل الفرع

4) سجل العناصر (Item log)

NameCategoryBranch siteLast checkNext checkStatus

5) تنفيذ الفحص (Add Check)

تنبيه (Alarm) للمستخدم المسؤول، وبيضغط زر لتنفيذ الفحص:

الحقلالشرح
Itemsبنود الفحص (نفس checklist في خطة الفئة)
Check (met / Not met)لكل بند، هل تم استيفاؤه أو لا
Noteملاحظات على الفحص

جداول قاعدة البيانات (6 جداول)

الجدولوظيفته
facility_categoriesاسم الفئة
facility_category_plansخطة/خطط الفحص للفئة (Frequency, Type, Performed by)
facility_category_plan_itemsبنود الـ checklist داخل كل خطة
facility_itemsالعنصر الفعلي: مرتبط بفئة + موقع فرع + لوكيشن
facility_item_checksجلسة فحص كاملة لعنصر معين (التاريخ، الفحص القادم، الحالة العامة، ملاحظة)
facility_item_check_resultsنتيجة كل بند checklist بمفرده (met/not met)

مثال عملي يوضح الفكرة كلها

1) Category: أجهزة التكييف
Monthly + Functional Check + Operator
→
2) Item: تكييف غرفة الإدارة
فرع القاهرة / الدور الأول
→
3) Check شهري:
فلتر ✓ / حرارة ✓ / صوت ✗
→
4) next_check_date
يُحسب تلقائيًا
لو عندك 50 جهاز تكييف، تكتب خطة الفحص مرة واحدة بس على مستوى الـ Category، وكل الأجهزة تستخدمها — ده اللي قصده العميل بالظبط في "Since most items share similar checks".