Update: 2026-07-13 22:23:21
This commit is contained in:
@@ -137,6 +137,34 @@ function transitOrgTopic(int $orgId): string
|
||||
return 'transit_org_' . $orgId;
|
||||
}
|
||||
|
||||
// إشعار مباشر لراكب واحد عبر موضوعه الشخصي passenger_{id}
|
||||
// (التطبيق يشترك بهذا الموضوع عند تسجيل الدخول — انظر firbase_messge.dart)
|
||||
function transitSendNotificationToPassenger(string $passengerId, string $title, string $body, array $data = []): void
|
||||
{
|
||||
if (!$passengerId) return;
|
||||
transitSendTopicNotification('passenger_' . $passengerId, $title, $body, $data);
|
||||
}
|
||||
|
||||
// إشعار أولياء الأمور المرتبطين بعضوية طالب — يحترم أعمدة notify_* بالجدول
|
||||
// $event: depart | board | arrive | return
|
||||
function transitNotifyGuardians(int $enrollmentId, string $event, string $title, string $body): void
|
||||
{
|
||||
global $transit_con;
|
||||
if (!$transit_con) return;
|
||||
|
||||
$column = 'notify_' . $event;
|
||||
if (!in_array($event, ['depart', 'board', 'arrive', 'return'])) return;
|
||||
|
||||
$st = $transit_con->prepare(
|
||||
"SELECT guardian_passenger_id FROM transit_guardians
|
||||
WHERE enrollment_id=? AND {$column}=1"
|
||||
);
|
||||
$st->execute([$enrollmentId]);
|
||||
foreach ($st->fetchAll(PDO::FETCH_COLUMN) as $guardianId) {
|
||||
transitSendNotificationToPassenger((string)$guardianId, $title, $body, ['type' => 'transit_guardian_' . $event]);
|
||||
}
|
||||
}
|
||||
|
||||
function transitSendTopicNotification(string $topic, string $title, string $body, array $data = []): void
|
||||
{
|
||||
global $redis;
|
||||
|
||||
Reference in New Issue
Block a user