تسجيل الحضور وطرق التتبع
تسجل وحدة الحضور مشاركة الأعضاء في الخدمات الكنسية، وفصول مدارس الأحد، والأحداث، مما يعزز تحليل المشاركة والتنبيهات الرعوية.
1. بنية البيانات الأساسية (سجلات_الحضور)
تقوم كل عملية تسجيل وصول بإنشاء أو تحديث سجل في public.attendance_records الذي يحتوي على:
تاريخ_الحضور(التاريخ): يوم التجمع (التاريخ الافتراضي هو التاريخ الحالي).الحالة(نص): حالة العضو:حاضر'`،متأخر، أوغائب’`.check_in_time/check_out_time(timestamptz): طوابع زمنية دقيقة لتسجيل الوصول.مصدر(نص): سجل لكيفية إنشاء السجل:يدوي'` أوbulk_import’أو ``qr_scan'أو “offline_sync’`.recorded_by(uuid): يشير إلى معرف المستخدم الخاص بالخادم الذي قام بتسجيل دخول العضو.
2. طرق التسجيل
تسجيل وصول فردي
يقوم الخدم بتحديد اسم العضو من قائمة الأحداث ثم انقر فوق تسجيل الوصول. يؤدي هذا إلى إنشاء إدراج فوري لقاعدة البيانات باستخدام `المصدر = ‘دليل”.
مسح رمز الاستجابة السريعة
يقدم الأعضاء رمز QR للملف الشخصي (الذي تم إنشاؤه في تطبيق الخدمة الذاتية الخاص بهم) في كشك الكمبيوتر اللوحي. يقوم جهاز المسح بتشغيل إعداد طلب تسجيل الوصول السريع `source = ‘qr_scan”، وتسجيل حضورهم على الفور.
الاستيراد بالجملة وأوراق الصف
بالنسبة لفصول مدارس الأحد أو الخدمات الكبيرة، يمكن للقادة تسجيل الحضور بكميات كبيرة. يستخدم هذا ورقة الحضور المجمعة المخصصة في واجهة المستخدم.
3. التسجيل المجمع لـ RPC (bulk_record_attendance)
للتعامل مع عمليات الإرسال المجمعة بكفاءة في قاعدة بيانات واحدة ذهابًا وإيابًا، تستخدم Kononia RPC bulk_record_attendance.
تفاصيل التنفيذ
- الحجج:
p_org_id(uuid): منظمة نشطة.p_event_id(uuid): مرجع الحدث.p_session_id(uuid): مرجع الجلسة.p_attendance_date(التاريخ): التاريخ المستهدف.p_entries(jsonb): مصفوفة سجلات JSON (يحتوي كل منها علىperson_id، وstatus، وnotes، وabsence_reason).
- تدفق المعالجة:
- إزالة الإدخالات القديمة: حذف السجلات الموجودة التي تطابق الحدث والأشخاص والتاريخ المحددين لمنع التكرارات.
- إدراج مجمع: يقوم بإدراج كافة العناصر من مصفوفة JSON في عملية SQL واحدة، مع تحديد `source = ‘bulk_import”.
- تحديثات المقياس: لحساب الإجماليات المجمعة وتحديث سجل
حضور_الجلساتالمطابق (بزيادةإجمالي_الحاضروإجمالي_الغياب).