/home/shquier/easyconf.net/easychair/app/helpers/easychair_translate.php:158:    'menu.workflow_notifications' => 'إشعارات سير العمل',
/home/shquier/easyconf.net/easychair/app/helpers/easychair_translate.php:162:    'menu.notification_broadcast' => 'النشر والإشعارات',
/home/shquier/easyconf.net/easychair/app/helpers/easychair_translate.php:174:    'menu.my_notifications' => 'إشعاراتي',
/home/shquier/easyconf.net/easychair/app/helpers/mailer.php:3:function notify_user($user_id,$title,$message)
/home/shquier/easyconf.net/easychair/app/helpers/mailer.php:7:    $db->prepare("INSERT INTO notifications(user_id,title,message) VALUES (?,?,?)")
/home/shquier/easyconf.net/easychair/app/views/admin/submission_workflow/index.php:433:                                Send workflow notification email based on selected stage
/home/shquier/easyconf.net/easychair/app/views/admin/submission_workflow/index.php:436:                                Rules can be managed from /admin/workflow-notifications.
/home/shquier/easyconf.net/easychair/app/views/admin/conference_home/workflow_notifications_widget.php:1:<?php if(!empty($workflowNotifications)): ?>
/home/shquier/easyconf.net/easychair/app/views/admin/conference_home/workflow_notifications_widget.php:9:<i class="fa fa-bell text-warning"></i>
/home/shquier/easyconf.net/easychair/app/views/admin/conference_home/workflow_notifications_widget.php:11:Homepage Workflow Notifications
/home/shquier/easyconf.net/easychair/app/views/admin/conference_home/workflow_notifications_widget.php:17:<?php foreach($workflowNotifications as $n): ?>
/home/shquier/easyconf.net/easychair/app/views/admin/conference_home/workflow_inbox.php:6:'/app/views/admin/conference_home/workflow_notifications_widget.php';
/home/shquier/easyconf.net/easychair/app/views/admin/conference_home/studio.php:4160:Notifications
/home/shquier/easyconf.net/easychair/app/views/admin/conference_home/studio.php:4166:${x.notifications}
/home/shquier/easyconf.net/easychair/app/views/admin/business_tools/index.php:251:                    <div class="col-md-1"><label>Notify</label><input type="checkbox" name="notify_author" value="1" checked class="form-check-input d-block"></div>
/home/shquier/easyconf.net/easychair/app/views/admin/business_tools/index.php:262:                <thead class="table-dark"><tr><th>Key</th><th>EN</th><th>AR</th><th>Order</th><th>Upload</th><th>Notify</th><th>Review</th><th>Active</th><th></th></tr></thead>
/home/shquier/easyconf.net/easychair/app/views/admin/business_tools/index.php:271:                        <td><?= !empty($r['notify_author'])?'Yes':'No' ?></td>
/home/shquier/easyconf.net/easychair/app/views/admin/submissions_workflow/view.php:118:              <button class="btn btn-danger"><i class="fa-solid fa-gavel"></i> <?= e($t('حفظ القرار وإشعار المؤلف','Save decision & notify author')) ?></button>
/home/shquier/easyconf.net/easychair/app/views/admin/submissions_workflow/view.php:153:              <button class="btn btn-success"><i class="fa-solid fa-paper-plane"></i> <?= e($t('توزيع وإشعار المحكمين','Assign & Notify')) ?></button>
/home/shquier/easyconf.net/easychair/app/views/admin/notifications/index.php:15:            <div class="opacity-75">Queued per-conference email notifications</div>
/home/shquier/easyconf.net/easychair/app/views/admin/notifications/index.php:80:                                    <a class="btn btn-sm btn-success" href="/easychair/admin/notifications/mark-sent?id=<?= (int)$m['id'] ?>">Mark sent</a>
/home/shquier/easyconf.net/easychair/app/views/admin/notifications/index.php:81:                                    <a class="btn btn-sm btn-outline-danger" href="/easychair/admin/notifications/cancel?id=<?= (int)$m['id'] ?>">Cancel</a>
/home/shquier/easyconf.net/easychair/app/views/admin/notifications/index.php:91:                            <td colspan="8" class="text-center text-muted py-4">No notifications found.</td>
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:4145:.notify{
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:4339:🔔 Notifications
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:4343:<div class="notify">
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:4349:<div class="notify">
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:4355:<div class="notify">
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:4395:Notify Authors
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:5026:Notify Authors
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:5650:Notify
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:5840:.notifyMini{
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:5947:🔔 Notifications
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:5951:<div class="notifyMini">
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:6218:📨 Notify
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:6650:📨 Notify
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:7192:Notify
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:7365:.notifyFloat{
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:7373:.notifyCard{
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:7568:<div class="notifyFloat">
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:7570:<div class="notifyCard">
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:7576:<div class="notifyCard">
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:7582:<div class="notifyCard">
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:8142:'Notifications',
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:8341:.card:has(.notifyFloat){
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:8354:.notifyCard{
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php:8556:.notifyCard,
/home/shquier/easyconf.net/easychair/app/views/admin/workflow_notifications/index.php:16:            <h3 class="fw-bold mb-1"><i class="fa fa-bell"></i> Workflow Notification Rules</h3>
/home/shquier/easyconf.net/easychair/app/views/admin/workflow_notifications/index.php:31:            <h5 class="fw-bold mb-3">Add Notification Rule</h5>
/home/shquier/easyconf.net/easychair/app/views/admin/workflow_notifications/index.php:33:            <form method="post" action="/easychair/admin/workflow-notifications/store" class="row g-2 align-items-end">
/home/shquier/easyconf.net/easychair/app/views/admin/workflow_notifications/index.php:74:    <form method="post" action="/easychair/admin/workflow-notifications/save">
/home/shquier/easyconf.net/easychair/app/views/admin/workflow_notifications/index.php:129:                                       href="/easychair/admin/workflow-notifications/delete?id=<?= (int)$r['id'] ?>">
/home/shquier/easyconf.net/easychair/app/views/admin/workflow_notifications/index.php:138:                                <td colspan="5" class="text-center text-muted py-4">No workflow notification rules found.</td>
/home/shquier/easyconf.net/easychair/app/views/admin/notification_audit/index.php:5:$notifications = $notifications ?? [];
/home/shquier/easyconf.net/easychair/app/views/admin/notification_audit/index.php:14:            <h3 class="fw-bold mb-1"><i class="fa fa-bell-circle-check"></i> Notification Audit</h3>
/home/shquier/easyconf.net/easychair/app/views/admin/notification_audit/index.php:15:            <div class="opacity-75">Monitor all in-app notifications for this conference.</div>
/home/shquier/easyconf.net/easychair/app/views/admin/notification_audit/index.php:27:            <form method="get" action="/easychair/admin/notification-audit" class="row g-2">
/home/shquier/easyconf.net/easychair/app/views/admin/notification_audit/index.php:54:                    <?php foreach ($notifications as $n): ?>
/home/shquier/easyconf.net/easychair/app/views/admin/notification_audit/index.php:66:                                <span class="badge bg-primary"><?= na_h($n['notification_type']) ?></span>
/home/shquier/easyconf.net/easychair/app/views/admin/notification_audit/index.php:79:                    <?php if (!$notifications): ?>
/home/shquier/easyconf.net/easychair/app/views/admin/notification_audit/index.php:80:                        <tr><td colspan="7" class="text-center text-muted py-4">No notifications found.</td></tr>
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:4145:.notify{
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:4339:🔔 Notifications
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:4343:<div class="notify">
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:4349:<div class="notify">
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:4355:<div class="notify">
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:4395:Notify Authors
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:5026:Notify Authors
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:5650:Notify
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:5840:.notifyMini{
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:5947:🔔 Notifications
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:5951:<div class="notifyMini">
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:6218:📨 Notify
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:6650:📨 Notify
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:7192:Notify
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:7365:.notifyFloat{
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:7373:.notifyCard{
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:7568:<div class="notifyFloat">
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:7570:<div class="notifyCard">
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:7576:<div class="notifyCard">
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:7582:<div class="notifyCard">
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:8142:'Notifications',
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:8341:.card:has(.notifyFloat){
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:8354:.notifyCard{
/home/shquier/easyconf.net/easychair/app/views/admin/dashboard.php.before_pack1108:8556:.notifyCard,
/home/shquier/easyconf.net/easychair/app/views/admin/cron/index.php:41:                    <th><?= e(trans('created_notifications')) ?></th>
/home/shquier/easyconf.net/easychair/app/views/admin/cron/index.php:54:                            <td><?= e((string) $row['created_notifications']) ?></td>
/home/shquier/easyconf.net/easychair/app/views/admin/notification_digest/index.php:14:            <h3 class="fw-bold mb-1"><i class="fa fa-newspaper"></i> Notification Digest Monitor</h3>
/home/shquier/easyconf.net/easychair/app/views/admin/notification_digest/index.php:40:                        <th>Notification Type</th>
/home/shquier/easyconf.net/easychair/app/views/admin/notification_digest/index.php:48:                            <td><?= nd_h($p['notification_type']) ?></td>
/home/shquier/easyconf.net/easychair/app/views/admin/notification_digest/index.php:62:                <code>php /var/www/html/easychair/tools/notification_digest_worker.php --frequency=daily --conference_id=<?= (int)($_SESSION['conference_id'] ?? 0) ?> --dry-run</code>
/home/shquier/easyconf.net/easychair/app/views/admin/notification_digest/index.php:95:                            <td><?= (int)$l['notifications_count'] ?></td>
/home/shquier/easyconf.net/easychair/app/views/admin/notification_digest/index.php:105:                                <a target="_blank" class="btn btn-sm btn-outline-secondary" href="/easychair/admin/notification-digest/preview?id=<?= (int)$l['id'] ?>">
/home/shquier/easyconf.net/easychair/app/views/admin/notification_broadcast/index.php:21:                Notification Broadcast
/home/shquier/easyconf.net/easychair/app/views/admin/notification_broadcast/index.php:24:                Send in-app notifications to conference users.
/home/shquier/easyconf.net/easychair/app/views/admin/notification_broadcast/index.php:47:            <h5 class="fw-bold mb-3">Send Broadcast Notification</h5>
/home/shquier/easyconf.net/easychair/app/views/admin/notification_broadcast/index.php:49:            <form method="post" action="/easychair/admin/notification-broadcast/send" class="row g-3">
/home/shquier/easyconf.net/easychair/app/views/admin/notification_broadcast/index.php:80:                        <option value="/easychair/notifications">My Notifications</option>
/home/shquier/easyconf.net/easychair/app/views/admin/notification_broadcast/index.php:96:                    <textarea name="body" rows="6" class="form-control" required placeholder="Write the notification message..."></textarea>
/home/shquier/easyconf.net/easychair/app/views/admin/notification_broadcast/index.php:101:                            onclick="return confirm('Send this notification to selected recipients?')">
/home/shquier/easyconf.net/easychair/app/views/admin/notification_broadcast/index.php:150:                        <tr><td colspan="6" class="text-center text-muted py-4">No broadcast notifications yet.</td></tr>
/home/shquier/easyconf.net/easychair/app/views/admin/index.php:118:            <span class="badge ec-badge bg-primary">Notifications</span>
/home/shquier/easyconf.net/easychair/app/views/public/conference_business.php:1392:        : 'Acceptance Notification',
/home/shquier/easyconf.net/easychair/app/views/public/conference_business.php.before_pack1022_20260608_192614:1202:        : 'Acceptance Notification',
/home/shquier/easyconf.net/easychair/app/views/public/conference_business.php.before_pack1007_20260607_172851:1202:        : 'Acceptance Notification',
/home/shquier/easyconf.net/easychair/app/views/public/conference_business.php.before_pack1001_repair_20260607_163502:1047:        : 'Acceptance Notification',
/home/shquier/easyconf.net/easychair/app/views/public/conference_business.php.before_pack1001_committee_photos_20260607_163004:1047:        : 'Acceptance Notification',
/home/shquier/easyconf.net/easychair/app/views/partials/unified_role_layout_links.php:1809:'icon'=>'fa-bell',
/home/shquier/easyconf.net/easychair/app/views/partials/unified_role_layout_links.php:1965:                ['url'=>'/easychair/admin/workflow-notifications','icon'=>'fa-bell','label_key'=>'menu.workflow_notifications','label'=>'Workflow Notifications','roles'=>['superadmin','super_admin','org_admin','admin','conference_chair']],
/home/shquier/easyconf.net/easychair/app/views/partials/unified_role_layout_links.php:1972:                ['url'=>'/easychair/admin/notification-broadcast','icon'=>'fa-bullhorn','label_key'=>'menu.notification_broadcast','label'=>'Notification Broadcast','roles'=>['superadmin','super_admin','org_admin','admin','conference_chair','organizer']],
/home/shquier/easyconf.net/easychair/app/views/partials/unified_role_layout_links.php:1973:                ['url'=>'/easychair/admin/notification-digest','icon'=>'fa-newspaper','label_key'=>'menu.notification_digest','label'=>'Notification Digest','roles'=>['superadmin','super_admin','org_admin','admin']],
/home/shquier/easyconf.net/easychair/app/views/partials/unified_role_layout_links.php:1974:                ['url'=>'/easychair/admin/notification-audit','icon'=>'fa-bell-circle-check','label_key'=>'menu.notification_audit','label'=>'Notification Audit','roles'=>['superadmin','super_admin','org_admin','admin']],
/home/shquier/easyconf.net/easychair/app/views/partials/unified_role_layout_links.php:2088:                ['url'=>'/easychair/notifications','icon'=>'fa-bell','label_key'=>'menu.my_notifications','label'=>'My Notifications','roles'=>['superadmin','super_admin','org_admin','admin','conference_chair','track_chair','organizer','section_editor']],
/home/shquier/easyconf.net/easychair/app/views/partials/unified_role_layout_links.php.before_pack1090d:481:'icon'=>'fa-bell',
/home/shquier/easyconf.net/easychair/app/views/partials/unified_role_layout_links.php.before_pack1090d:637:                ['url'=>'/easychair/admin/workflow-notifications','icon'=>'fa-bell','label_key'=>'menu.workflow_notifications','label'=>'Workflow Notifications','roles'=>['superadmin','super_admin','org_admin','admin','conference_chair']],
/home/shquier/easyconf.net/easychair/app/views/partials/unified_role_layout_links.php.before_pack1090d:644:                ['url'=>'/easychair/admin/notification-broadcast','icon'=>'fa-bullhorn','label_key'=>'menu.notification_broadcast','label'=>'Notification Broadcast','roles'=>['superadmin','super_admin','org_admin','admin','conference_chair','organizer']],
/home/shquier/easyconf.net/easychair/app/views/partials/unified_role_layout_links.php.before_pack1090d:645:                ['url'=>'/easychair/admin/notification-digest','icon'=>'fa-newspaper','label_key'=>'menu.notification_digest','label'=>'Notification Digest','roles'=>['superadmin','super_admin','org_admin','admin']],
/home/shquier/easyconf.net/easychair/app/views/partials/unified_role_layout_links.php.before_pack1090d:646:                ['url'=>'/easychair/admin/notification-audit','icon'=>'fa-bell-circle-check','label_key'=>'menu.notification_audit','label'=>'Notification Audit','roles'=>['superadmin','super_admin','org_admin','admin']],
/home/shquier/easyconf.net/easychair/app/views/partials/unified_role_layout_links.php.before_pack1090d:760:                ['url'=>'/easychair/notifications','icon'=>'fa-bell','label_key'=>'menu.my_notifications','label'=>'My Notifications','roles'=>['superadmin','super_admin','org_admin','admin','conference_chair','track_chair','organizer','section_editor']],
/home/shquier/easyconf.net/easychair/app/views/partials/reviewer_sidebar_i18n_overrides.php:23:'layout.notifications' => 'الإشعارات',
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:2:use App\Core\NotificationService;
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:18:$latestNotifications = [];
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:22:        $svc = new NotificationService();
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:24:        $latestNotifications = $svc->latestForUser($userId, $conferenceId, 5);
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:27:        $latestNotifications = [];
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:33:.ec-notification-bell-wrap {
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:38:.ec-notification-bell-btn {
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:51:.ec-notification-bell-btn:hover {
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:55:.ec-notification-badge {
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:67:.ec-notification-dropdown {
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:81:.ec-notification-bell-wrap:hover .ec-notification-dropdown {
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:84:.ec-notification-item {
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:91:.ec-notification-item:hover {
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:96:.ec-notification-title {
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:100:.ec-notification-meta {
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:105:.ec-notification-unread-dot {
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:115:<div class="ec-notification-bell-wrap">
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:116:    <a class="ec-notification-bell-btn" href="/easychair/notifications">
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:117:        <i class="fa fa-bell"></i>
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:118:        <span>Notifications</span>
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:120:            <span class="ec-notification-badge"><?= (int)$unreadCount ?></span>
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:124:    <div class="ec-notification-dropdown">
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:126:            Latest Notifications
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:134:        <?php foreach ($latestNotifications as $n): ?>
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:136:                $url = !empty($n['link_url']) ? (string)$n['link_url'] : '/easychair/notifications';
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:138:            <a class="ec-notification-item" href="<?= ec_nb_h($url) ?>">
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:139:                <div class="ec-notification-title">
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:141:                        <span class="ec-notification-unread-dot"></span>
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:145:                <div class="ec-notification-meta">
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:155:        <?php if (!$latestNotifications): ?>
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:157:                No notifications yet.
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:162:            <a href="/easychair/notifications" style="flex:1;padding:12px;text-align:center;font-weight:800;text-decoration:none;">View all</a>
/home/shquier/easyconf.net/easychair/app/views/partials/notification_bell.php:163:            <a href="/easychair/notification-settings" style="flex:1;padding:12px;text-align:center;font-weight:800;text-decoration:none;border-inline-start:1px solid #e5e7eb;">Settings</a>
/home/shquier/easyconf.net/easychair/app/views/partials/sidebar_translate.php:13:            'تنبيهات سير العمل' => 'menu.workflow_notifications',
/home/shquier/easyconf.net/easychair/app/views/partials/sidebar_translate.php:23:            'إشعاراتي' => 'menu.my_notifications',
/home/shquier/easyconf.net/easychair/app/views/partials/sidebar_translate.php:24:            'Notification Broadcast' => 'menu.notification_broadcast',
/home/shquier/easyconf.net/easychair/app/views/partials/sidebar_translate.php:25:            'Notification Digest' => 'menu.notification_digest',
/home/shquier/easyconf.net/easychair/app/views/partials/sidebar_translate.php:26:            'Notification Audit' => 'menu.notification_audit',
/home/shquier/easyconf.net/easychair/app/views/partials/sidebar_translate.php:55:            'الإشعارات' => 'menu.notifications',
/home/shquier/easyconf.net/easychair/app/views/partials/sidebar_i18n_overrides.php:86:'menu.workflow_notifications'=>'إشعارات سير العمل',
/home/shquier/easyconf.net/easychair/app/views/partials/sidebar_i18n_overrides.php:92:'menu.notification_broadcast'=>'بث الإشعارات',
/home/shquier/easyconf.net/easychair/app/views/partials/sidebar_i18n_overrides.php:93:'menu.notification_digest'=>'ملخص الإشعارات',
/home/shquier/easyconf.net/easychair/app/views/partials/sidebar_i18n_overrides.php:94:'menu.notification_audit'=>'تدقيق الإشعارات',
/home/shquier/easyconf.net/easychair/app/views/partials/sidebar_i18n_overrides.php:112:'menu.my_notifications'=>'إشعاراتي',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:28:            'تنبيهات سير العمل' => 'menu.workflow_notifications',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:29:            'Workflow Notifications' => 'menu.workflow_notifications',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:74:            // Profiles / notifications
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:81:            'إشعاراتي' => 'menu.my_notifications',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:82:            'My Notifications' => 'menu.my_notifications',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:83:            'Notification Broadcast' => 'menu.notification_broadcast',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:84:            'إرسال إشعار' => 'menu.notification_broadcast',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:85:            'Notification Digest' => 'menu.notification_digest',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:86:            'ملخص الإشعارات' => 'menu.notification_digest',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:87:            'Notification Audit' => 'menu.notification_audit',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:88:            'تدقيق الإشعارات' => 'menu.notification_audit',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:89:            'الإشعارات' => 'menu.notifications',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:90:            'Notifications' => 'menu.notifications',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:228:            '/easychair/admin/workflow-notifications' => 'menu.workflow_notifications',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:237:            '/easychair/admin/notification-broadcast' => 'menu.notification_broadcast',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:238:            '/easychair/admin/notification-audit' => 'menu.notification_audit',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:239:            '/easychair/admin/notification-digest' => 'menu.notification_digest',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:240:            '/easychair/notifications' => 'menu.my_notifications',
/home/shquier/easyconf.net/easychair/app/views/partials/i18n_sidebar_labels.php:241:            '/easychair/notification-settings' => 'menu.notification_settings',
/home/shquier/easyconf.net/easychair/app/views/notifications/settings.php:15:                <i class="fa fa-bell-slash"></i>
/home/shquier/easyconf.net/easychair/app/views/notifications/settings.php:16:                Notification Settings
/home/shquier/easyconf.net/easychair/app/views/notifications/settings.php:19:                Control your in-app notifications, email notifications, and digest preferences.
/home/shquier/easyconf.net/easychair/app/views/notifications/settings.php:28:    <form method="post" action="/easychair/notification-settings/save">
/home/shquier/easyconf.net/easychair/app/views/notifications/settings.php:50:                                    <strong><?= ns_h($p['notification_type']) ?></strong>
/home/shquier/easyconf.net/easychair/app/views/notifications/settings.php:101:                                    No notification preferences found.
/home/shquier/easyconf.net/easychair/app/views/notifications/settings.php:114:                <a class="btn btn-outline-primary btn-lg rounded-pill px-5" href="/easychair/notifications">
/home/shquier/easyconf.net/easychair/app/views/notifications/settings.php:115:                    Back to Notifications
/home/shquier/easyconf.net/easychair/app/views/notifications/index.php:5:$notifications = $notifications ?? [];
/home/shquier/easyconf.net/easychair/app/views/notifications/index.php:13:            <h3 class="fw-bold mb-1"><i class="fa fa-bell"></i> My Notifications</h3>
/home/shquier/easyconf.net/easychair/app/views/notifications/index.php:20:            <a class="btn <?= $status==='' ? 'btn-primary' : 'btn-outline-primary' ?>" href="/easychair/notifications">All</a>
/home/shquier/easyconf.net/easychair/app/views/notifications/index.php:21:            <a class="btn <?= $status==='unread' ? 'btn-primary' : 'btn-outline-primary' ?>" href="/easychair/notifications?status=unread">Unread</a>
/home/shquier/easyconf.net/easychair/app/views/notifications/index.php:22:            <a class="btn <?= $status==='read' ? 'btn-primary' : 'btn-outline-primary' ?>" href="/easychair/notifications?status=read">Read</a>
/home/shquier/easyconf.net/easychair/app/views/notifications/index.php:23:            <a class="btn btn-success ms-auto" href="/easychair/notifications/mark-all-read">Mark all read</a>
/home/shquier/easyconf.net/easychair/app/views/notifications/index.php:30:            <?php foreach ($notifications as $n): ?>
/home/shquier/easyconf.net/easychair/app/views/notifications/index.php:42:                                <?= nt_h($n['notification_type']) ?> |
/home/shquier/easyconf.net/easychair/app/views/notifications/index.php:55:                                <a class="btn btn-sm btn-outline-success" href="/easychair/notifications/read?id=<?= (int)$n['id'] ?>">Mark read</a>
/home/shquier/easyconf.net/easychair/app/views/notifications/index.php:73:            <?php if (!$notifications): ?>
/home/shquier/easyconf.net/easychair/app/views/notifications/index.php:74:                <div class="alert alert-info text-center">No notifications found.</div>
/home/shquier/easyconf.net/easychair/app/views/layouts/sidebar_links.php:140:<?php li(base_path('admin/workflow-notifications'), 'fa-solid fa-bell', ec_sidebar_t('تنبيهات سير العمل', 'Workflow Notifications'), '/admin/workflow-notifications'); ?>
/home/shquier/easyconf.net/easychair/app/views/layouts/sidebar_links.php:164:<?php li(base_path('admin/notification-broadcast'), 'fa-solid fa-bullhorn', ec_sidebar_t('إرسال إشعار', 'Notification Broadcast'), '/admin/notification-broadcast'); ?>
/home/shquier/easyconf.net/easychair/app/views/layouts/sidebar_links.php:166:<?php li(base_path('admin/notification-digest'), 'fa-solid fa-newspaper', ec_sidebar_t('ملخص الإشعارات', 'Notification Digest'), '/admin/notification-digest'); ?>
/home/shquier/easyconf.net/easychair/app/views/layouts/sidebar_links.php:168:<?php li(base_path('admin/notification-audit'), 'fa-solid fa-bell-circle-check', ec_sidebar_t('تدقيق الإشعارات', 'Notification Audit'), '/admin/notification-audit'); ?>
/home/shquier/easyconf.net/easychair/app/views/layouts/sidebar_links.php:199:<?php li(base_path('notifications'), 'fa-solid fa-bell', ec_sidebar_t('إشعاراتي', 'My Notifications'), '/notifications'); ?>
/home/shquier/easyconf.net/easychair/app/views/layouts/author_layout.php:244:        'url' => '/easychair/notifications',
/home/shquier/easyconf.net/easychair/app/views/layouts/author_layout.php:245:        'icon' => 'fa-bell',
/home/shquier/easyconf.net/easychair/app/views/layouts/author_layout.php:247:            'layout.notifications',
/home/shquier/easyconf.net/easychair/app/views/layouts/author_layout.php:248:            'Notifications'
/home/shquier/easyconf.net/easychair/app/views/layouts/author_layout.php:305:'/easychair/notifications',
/home/shquier/easyconf.net/easychair/app/views/layouts/reviewer_layout.php\:242:        'url' => '/easychair/notifications',
/home/shquier/easyconf.net/easychair/app/views/layouts/reviewer_layout.php\:243:        'icon' => 'fa-bell',
/home/shquier/easyconf.net/easychair/app/views/layouts/reviewer_layout.php\:245:            'layout.notifications',
/home/shquier/easyconf.net/easychair/app/views/layouts/reviewer_layout.php\:246:            'Notifications'
/home/shquier/easyconf.net/easychair/app/views/reviews/form.php:176:    /* Toast Notifications */
/home/shquier/easyconf.net/easychair/app/views/reviews/form.php:187:    .toast-notification {
/home/shquier/easyconf.net/easychair/app/views/reviews/form.php:203:    .toast-notification.toast-success {
/home/shquier/easyconf.net/easychair/app/views/reviews/form.php:206:    .toast-notification.toast-error {
/home/shquier/easyconf.net/easychair/app/views/reviews/form.php:209:    .toast-notification.toast-info {
/home/shquier/easyconf.net/easychair/app/views/reviews/form.php:212:    .toast-notification.toast-warning {
/home/shquier/easyconf.net/easychair/app/views/reviews/form.php:1381:     JAVASCRIPT MODULES with Toast Notifications
/home/shquier/easyconf.net/easychair/app/views/reviews/form.php:1385:// Toast Notification System
/home/shquier/easyconf.net/easychair/app/views/reviews/form.php:1391:    toast.className = `toast-notification toast-${type}`;
/home/shquier/easyconf.net/easychair/app/views/author/notifications.php:4:    <h4 class="mb-0"><i class="fa-solid fa-bell me-2"></i><?= e($lang==='ar'?'الإشعارات':'Notifications') ?></h4>
/home/shquier/easyconf.net/easychair/app/views/author/notifications.php:5:    <form method="post" action="<?= e(base_path('author/notifications/read-all')) ?>">
/home/shquier/easyconf.net/easychair/app/views/author/notifications.php:22:              <form method="post" action="<?= e(base_path('author/notifications/read')) ?>">
/home/shquier/easyconf.net/easychair/app/views/author/dashboard (Copy).php:2777:'Notifications and reviewer interaction'
/home/shquier/easyconf.net/easychair/app/views/author/dashboard (Copy).php:2796:'notifications'
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_conference_brochure:10560:$workflowNotifications =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_conference_brochure:10561:    $this->homepageWorkflowNotifications();
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_conference_brochure:10575:private function homepageWorkflowNotifications(): array
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_conference_brochure:10588:    $notifications = [];
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_conference_brochure:10623:            $notifications[] = [
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_conference_brochure:10659:                $notifications[] = [
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_conference_brochure:10673:    return $notifications;
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_conference_brochure:22849:$stats['notifications'] =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_conference_brochure:22852:        FROM notifications
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_conference_brochure:22895:    $stats['notifications'];
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_conference_brochure:23327:    $stats['notifications'] =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_conference_brochure:23330:            FROM notifications
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_conference_brochure:25039:    $stats['notifications'] =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_conference_brochure:25042:            FROM notifications
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_conference_brochure:25118:                    $stats['notifications']
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_conference_brochure:25291:            'action'=>'Escalate overdue reviews and notify track chairs.'
/home/shquier/easyconf.net/easychair/app/controllers/NotificationSettingsController.php:10:class NotificationSettingsController
/home/shquier/easyconf.net/easychair/app/controllers/NotificationSettingsController.php:54:                INSERT INTO user_notification_preferences
/home/shquier/easyconf.net/easychair/app/controllers/NotificationSettingsController.php:55:                (user_id, org_id, conference_id, notification_type, in_app_enabled, email_enabled, digest_enabled, digest_frequency)
/home/shquier/easyconf.net/easychair/app/controllers/NotificationSettingsController.php:73:            FROM user_notification_preferences p
/home/shquier/easyconf.net/easychair/app/controllers/NotificationSettingsController.php:80:            ORDER BY p.conference_id DESC, p.notification_type
/home/shquier/easyconf.net/easychair/app/controllers/NotificationSettingsController.php:86:        require BASE_PATH . '/app/views/notifications/settings.php';
/home/shquier/easyconf.net/easychair/app/controllers/NotificationSettingsController.php:121:                UPDATE user_notification_preferences
/home/shquier/easyconf.net/easychair/app/controllers/NotificationSettingsController.php:142:        $_SESSION['flash_success'] = 'Notification preferences saved.';
/home/shquier/easyconf.net/easychair/app/controllers/NotificationSettingsController.php:143:        header("Location: /easychair/notification-settings?saved=1");
/home/shquier/easyconf.net/easychair/app/controllers/NotificationCountController.php:8:use App\Core\NotificationService;
/home/shquier/easyconf.net/easychair/app/controllers/NotificationCountController.php:10:class NotificationCountController
/home/shquier/easyconf.net/easychair/app/controllers/NotificationCountController.php:30:        $svc = new NotificationService();
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php:10:use App\Core\NotificationService;
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php:170:    private function sendWorkflowNotification(array $submission, string $stage): void
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php:179:                "No active notification rule for stage: {$stage}"
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php:212:                'Workflow notification sent',
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php:216:            $notifier = new NotificationService();
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php:217:            $notifier->notifyAuthorWorkflow(
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php:221:                'A workflow notification email was sent for your submission. Template: ' . $rule['template_key']
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php:227:                'Workflow notification failed',
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php:231:            $notifier = new NotificationService();
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php:232:            $notifier->notifyAuthorWorkflow(
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php:473:        $notifier = new NotificationService();
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php:474:        $notifier->notifyAuthorWorkflow(
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php:483:            $this->sendWorkflowNotification($fresh, $stage);
/home/shquier/easyconf.net/easychair/app/controllers/NotificationController.php:10:class NotificationController
/home/shquier/easyconf.net/easychair/app/controllers/NotificationController.php:52:            FROM user_notifications n
/home/shquier/easyconf.net/easychair/app/controllers/NotificationController.php:60:        $notifications = $stmt->fetchAll(\PDO::FETCH_ASSOC);
/home/shquier/easyconf.net/easychair/app/controllers/NotificationController.php:63:        require BASE_PATH . '/app/views/notifications/index.php';
/home/shquier/easyconf.net/easychair/app/controllers/NotificationController.php:84:            UPDATE user_notifications
/home/shquier/easyconf.net/easychair/app/controllers/NotificationController.php:92:        header("Location: /easychair/notifications");
/home/shquier/easyconf.net/easychair/app/controllers/NotificationController.php:101:            UPDATE user_notifications
/home/shquier/easyconf.net/easychair/app/controllers/NotificationController.php:109:        header("Location: /easychair/notifications");
/home/shquier/easyconf.net/easychair/app/controllers/AdminTrackChairController.php:298:        Track Chair Email Notification
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php.before_pack956A_workflow_sync:10:use App\Core\NotificationService;
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php.before_pack956A_workflow_sync:167:    private function sendWorkflowNotification(array $submission, string $stage): void
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php.before_pack956A_workflow_sync:176:                "No active notification rule for stage: {$stage}"
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php.before_pack956A_workflow_sync:209:                'Workflow notification sent',
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php.before_pack956A_workflow_sync:213:            $notifier = new NotificationService();
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php.before_pack956A_workflow_sync:214:            $notifier->notifyAuthorWorkflow(
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php.before_pack956A_workflow_sync:218:                'A workflow notification email was sent for your submission. Template: ' . $rule['template_key']
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php.before_pack956A_workflow_sync:224:                'Workflow notification failed',
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php.before_pack956A_workflow_sync:228:            $notifier = new NotificationService();
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php.before_pack956A_workflow_sync:229:            $notifier->notifyAuthorWorkflow(
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php.before_pack956A_workflow_sync:431:        $notifier = new NotificationService();
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php.before_pack956A_workflow_sync:432:        $notifier->notifyAuthorWorkflow(
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionWorkflowController.php.before_pack956A_workflow_sync:441:            $this->sendWorkflowNotification($fresh, $stage);
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_pack1149:10462:$workflowNotifications =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_pack1149:10463:    $this->homepageWorkflowNotifications();
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_pack1149:10477:private function homepageWorkflowNotifications(): array
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_pack1149:10490:    $notifications = [];
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_pack1149:10525:            $notifications[] = [
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_pack1149:10561:                $notifications[] = [
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_pack1149:10575:    return $notifications;
/home/shquier/easyconf.net/easychair/app/controllers/AuthorNotificationsController.php:11:final class AuthorNotificationsController extends Controller
/home/shquier/easyconf.net/easychair/app/controllers/AuthorNotificationsController.php:19:        $st=$db->prepare("SELECT * FROM notifications WHERE user_id=:u ORDER BY id DESC LIMIT 200");
/home/shquier/easyconf.net/easychair/app/controllers/AuthorNotificationsController.php:23:        $this->view('author/notifications',['rows'=>$rows]);
/home/shquier/easyconf.net/easychair/app/controllers/AuthorNotificationsController.php:33:        $db->prepare("UPDATE notifications SET is_read=1 WHERE id=:id AND user_id=:u")->execute([':id'=>$id,':u'=>$uid]);
/home/shquier/easyconf.net/easychair/app/controllers/AuthorNotificationsController.php:34:        header('Location: '.base_path('author/notifications')); exit;
/home/shquier/easyconf.net/easychair/app/controllers/AuthorNotificationsController.php:43:        $db->prepare("UPDATE notifications SET is_read=1 WHERE user_id=:u")->execute([':u'=>$uid]);
/home/shquier/easyconf.net/easychair/app/controllers/AuthorNotificationsController.php:44:        header('Location: '.base_path('author/notifications')); exit;
/home/shquier/easyconf.net/easychair/app/controllers/AdminDecisionBoardEmailController.php:61:        // 1) In-app notification
/home/shquier/easyconf.net/easychair/app/controllers/AdminDecisionBoardEmailController.php:63:            $db->prepare("INSERT INTO notifications (user_id, message, type, is_read, created_at)
/home/shquier/easyconf.net/easychair/app/controllers/AdminDecisionBoardEmailController.php:82:            flash('success','Notification saved (email queue not available)');
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_brochure_fullfix:10560:$workflowNotifications =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_brochure_fullfix:10561:    $this->homepageWorkflowNotifications();
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_brochure_fullfix:10575:private function homepageWorkflowNotifications(): array
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_brochure_fullfix:10588:    $notifications = [];
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_brochure_fullfix:10623:            $notifications[] = [
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_brochure_fullfix:10659:                $notifications[] = [
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_brochure_fullfix:10673:    return $notifications;
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_brochure_fullfix:22849:$stats['notifications'] =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_brochure_fullfix:22852:        FROM notifications
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_brochure_fullfix:22895:    $stats['notifications'];
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_brochure_fullfix:23327:    $stats['notifications'] =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_brochure_fullfix:23330:            FROM notifications
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_brochure_fullfix:25039:    $stats['notifications'] =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_brochure_fullfix:25042:            FROM notifications
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_brochure_fullfix:25118:                    $stats['notifications']
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_brochure_fullfix:25291:            'action'=>'Escalate overdue reviews and notify track chairs.'
/home/shquier/easyconf.net/easychair/app/controllers/PublishingController.php:15:use App\Services\NotificationService;
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationDigestController.php:10:class AdminNotificationDigestController
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationDigestController.php:88:            FROM notification_digest_log l
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationDigestController.php:100:            FROM notification_digest_log
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationDigestController.php:109:            SELECT p.notification_type, p.digest_frequency, COUNT(*) AS users_count
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationDigestController.php:110:            FROM user_notification_preferences p
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationDigestController.php:114:            GROUP BY p.notification_type, p.digest_frequency
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationDigestController.php:115:            ORDER BY p.notification_type, p.digest_frequency
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationDigestController.php:121:        require BASE_PATH . '/app/views/admin/notification_digest/index.php';
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationDigestController.php:134:            FROM notification_digest_log
/home/shquier/easyconf.net/easychair/app/controllers/AdminDecisionBoardController.php:149:        // notify author if possible (optional)
/home/shquier/easyconf.net/easychair/app/controllers/AdminDecisionBoardController.php:151:            if (function_exists('notify_user_dynamic')) {
/home/shquier/easyconf.net/easychair/app/controllers/AdminDecisionBoardController.php:162:                            notify_user_dynamic($aid, "Submission decision", $msg, "info");
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.save:10457:$workflowNotifications =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.save:10458:    $this->homepageWorkflowNotifications();
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.save:10472:private function homepageWorkflowNotifications(): array
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.save:10485:    $notifications = [];
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.save:10520:            $notifications[] = [
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.save:10556:                $notifications[] = [
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.save:10570:    return $notifications;
/home/shquier/easyconf.net/easychair/app/controllers/RoleDashboardController.php.before_pack1115:131:                ['key'=>'dashboard.kpi.notifications', 'label'=>'Notifications', 'value'=>$this->countTable('notifications', 'org_id=?', [$orgId]), 'icon'=>'fa-bell'],
/home/shquier/easyconf.net/easychair/app/controllers/RoleDashboardController.php.before_pack1115:158:                ['key'=>'dashboard.kpi.notifications', 'label'=>'Notifications', 'value'=>$this->countTable('notifications', 'conference_id=? AND org_id=?', [$confId,$orgId]), 'icon'=>'fa-bell'],
/home/shquier/easyconf.net/easychair/app/controllers/RoleDashboardController.php.before_pack1115:213:                ['/easychair/admin/notification-audit','fa-bell-circle-check','menu.notification_audit','Notification Audit'],
/home/shquier/easyconf.net/easychair/app/controllers/OperationsController.php:12:use App\Services\NotificationService;
/home/shquier/easyconf.net/easychair/app/controllers/OperationsController.php:221:            // Notify author if stage/status changed
/home/shquier/easyconf.net/easychair/app/controllers/OperationsController.php:235:                        NotificationService::push(
/home/shquier/easyconf.net/easychair/app/controllers/OperationsController.php:240:                        NotificationService::pushEmailFromTemplate('decision_notification', (int)$srow['author_id'], [
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionsBoardController.php:12:use App\Services\NotificationService;
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionsBoardController.php:111:            // notify author
/home/shquier/easyconf.net/easychair/app/controllers/AdminSubmissionsBoardController.php:112:            NotificationService::notify((int)$r['author_id'], 'status_update', "Your paper #{$r['id']} status updated to $new", base_path('author/submission?id='.(int)$r['id']));
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_storeSection_full_fix:10624:$workflowNotifications =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_storeSection_full_fix:10625:    $this->homepageWorkflowNotifications();
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_storeSection_full_fix:10639:private function homepageWorkflowNotifications(): array
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_storeSection_full_fix:10652:    $notifications = [];
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_storeSection_full_fix:10687:            $notifications[] = [
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_storeSection_full_fix:10723:                $notifications[] = [
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_storeSection_full_fix:10737:    return $notifications;
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_storeSection_full_fix:22913:$stats['notifications'] =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_storeSection_full_fix:22916:        FROM notifications
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_storeSection_full_fix:22959:    $stats['notifications'];
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_storeSection_full_fix:23391:    $stats['notifications'] =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_storeSection_full_fix:23394:            FROM notifications
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_storeSection_full_fix:25103:    $stats['notifications'] =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_storeSection_full_fix:25106:            FROM notifications
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_storeSection_full_fix:25182:                    $stats['notifications']
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_storeSection_full_fix:25355:            'action'=>'Escalate overdue reviews and notify track chairs.'
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationAuditController.php:10:class AdminNotificationAuditController
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationAuditController.php:97:            FROM user_notifications n
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationAuditController.php:105:        $notifications = $stmt->fetchAll(\PDO::FETCH_ASSOC);
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationAuditController.php:112:            FROM user_notifications
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationAuditController.php:120:        require BASE_PATH . '/app/views/admin/notification_audit/index.php';
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationBroadcastController.php:9:use App\Core\NotificationService;
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationBroadcastController.php:11:class AdminNotificationBroadcastController
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationBroadcastController.php:168:            FROM user_notifications n
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationBroadcastController.php:172:              AND n.notification_type='broadcast'
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationBroadcastController.php:180:        require BASE_PATH . '/app/views/admin/notification_broadcast/index.php';
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationBroadcastController.php:200:            $_SESSION['flash_error'] = "Notification title is required.";
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationBroadcastController.php:201:            header("Location: /easychair/admin/notification-broadcast");
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationBroadcastController.php:206:            $_SESSION['flash_error'] = "Notification body is required.";
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationBroadcastController.php:207:            header("Location: /easychair/admin/notification-broadcast");
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationBroadcastController.php:213:            header("Location: /easychair/admin/notification-broadcast");
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationBroadcastController.php:221:            header("Location: /easychair/admin/notification-broadcast");
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationBroadcastController.php:227:        $notifier = new NotificationService();
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationBroadcastController.php:235:                'notification_type' => 'broadcast',
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationBroadcastController.php:250:        $_SESSION['flash_success'] = "Broadcast notification sent to {$created} user(s). Skipped by preferences: {$skipped}.";
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationBroadcastController.php:251:        header("Location: /easychair/admin/notification-broadcast?sent=1");
/home/shquier/easyconf.net/easychair/app/controllers/AdminWorkflowNotificationRulesController.php:10:class AdminWorkflowNotificationRulesController
/home/shquier/easyconf.net/easychair/app/controllers/AdminWorkflowNotificationRulesController.php:105:        require BASE_PATH . '/app/views/admin/workflow_notifications/index.php';
/home/shquier/easyconf.net/easychair/app/controllers/AdminWorkflowNotificationRulesController.php:151:        $_SESSION['flash_success'] = 'Workflow notification rules saved.';
/home/shquier/easyconf.net/easychair/app/controllers/AdminWorkflowNotificationRulesController.php:152:        header("Location: /easychair/admin/workflow-notifications?saved=1");
/home/shquier/easyconf.net/easychair/app/controllers/AdminWorkflowNotificationRulesController.php:170:            header("Location: /easychair/admin/workflow-notifications");
/home/shquier/easyconf.net/easychair/app/controllers/AdminWorkflowNotificationRulesController.php:198:        $_SESSION['flash_success'] = 'Workflow notification rule added.';
/home/shquier/easyconf.net/easychair/app/controllers/AdminWorkflowNotificationRulesController.php:199:        header("Location: /easychair/admin/workflow-notifications?added=1");
/home/shquier/easyconf.net/easychair/app/controllers/AdminWorkflowNotificationRulesController.php:220:        $_SESSION['flash_success'] = 'Workflow notification rule deleted.';
/home/shquier/easyconf.net/easychair/app/controllers/AdminWorkflowNotificationRulesController.php:221:        header("Location: /easychair/admin/workflow-notifications?deleted=1");
/home/shquier/easyconf.net/easychair/app/controllers/RoleDashboardController.php:131:                ['key'=>'dashboard.kpi.notifications', 'label'=>'Notifications', 'value'=>$this->countTable('notifications', 'org_id=?', [$orgId]), 'icon'=>'fa-bell'],
/home/shquier/easyconf.net/easychair/app/controllers/RoleDashboardController.php:158:                ['key'=>'dashboard.kpi.notifications', 'label'=>'Notifications', 'value'=>$this->countTable('notifications', 'conference_id=? AND org_id=?', [$confId,$orgId]), 'icon'=>'fa-bell'],
/home/shquier/easyconf.net/easychair/app/controllers/RoleDashboardController.php:213:                ['/easychair/admin/notification-audit','fa-bell-circle-check','menu.notification_audit','Notification Audit'],
/home/shquier/easyconf.net/easychair/app/controllers/AdminBusinessToolsController.php:4738:            (org_id, conference_id, stage_key, stage_title_en, stage_title_ar, sort_order, allow_author_upload, notify_author, require_review_complete, is_active, created_by)
/home/shquier/easyconf.net/easychair/app/controllers/AdminBusinessToolsController.php:4745:                notify_author=VALUES(notify_author),
/home/shquier/easyconf.net/easychair/app/controllers/AdminBusinessToolsController.php:4758:            !empty($_POST['notify_author']) ? 1 : 0,
/home/shquier/easyconf.net/easychair/app/controllers/PublicConferenceBusinessController.php:332:        'Acceptance Notification',
/home/shquier/easyconf.net/easychair/app/controllers/DecisionController.php:15:use App\Services\NotificationService;
/home/shquier/easyconf.net/easychair/app/controllers/DecisionController.php:16:use App\Services\ConferenceNotificationService;
/home/shquier/easyconf.net/easychair/app/controllers/DecisionController.php:67:                ConferenceNotificationService::notifyAndEmail(
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php:10560:$workflowNotifications =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php:10561:    $this->homepageWorkflowNotifications();
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php:10575:private function homepageWorkflowNotifications(): array
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php:10588:    $notifications = [];
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php:10623:            $notifications[] = [
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php:10659:                $notifications[] = [
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php:10673:    return $notifications;
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php:22849:$stats['notifications'] =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php:22852:        FROM notifications
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php:22895:    $stats['notifications'];
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php:23327:    $stats['notifications'] =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php:23330:            FROM notifications
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php:25039:    $stats['notifications'] =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php:25042:            FROM notifications
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php:25118:                    $stats['notifications']
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php:25291:            'action'=>'Escalate overdue reviews and notify track chairs.'
/home/shquier/easyconf.net/easychair/app/controllers/CopyeditorController.php:12:use App\Services\NotificationService;
/home/shquier/easyconf.net/easychair/app/controllers/CopyeditorController.php:69:        // Notify author (in-app) that copyediting updated
/home/shquier/easyconf.net/easychair/app/controllers/CopyeditorController.php:75:            NotificationService::push(
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_pack1116:10457:$workflowNotifications =
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_pack1116:10458:    $this->homepageWorkflowNotifications();
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_pack1116:10472:private function homepageWorkflowNotifications(): array
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_pack1116:10485:    $notifications = [];
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_pack1116:10520:            $notifications[] = [
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_pack1116:10556:                $notifications[] = [
/home/shquier/easyconf.net/easychair/app/controllers/AdminConferenceHomeController.php.before_pack1116:10570:    return $notifications;
/home/shquier/easyconf.net/easychair/app/controllers/AuthorDashboardController.php:754:'notifications'=>0,
/home/shquier/easyconf.net/easychair/app/controllers/AuthorDashboardController.php:793:'notifications'
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationController.php:10:class AdminNotificationController
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationController.php:87:        require BASE_PATH . '/app/views/admin/notifications/index.php';
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationController.php:109:        header("Location: /easychair/admin/notifications");
/home/shquier/easyconf.net/easychair/app/controllers/AdminNotificationController.php:128:        header("Location: /easychair/admin/notifications");
/home/shquier/easyconf.net/easychair/app/services/HomepageMissionControlService.php:62:'notifications'=>
/home/shquier/easyconf.net/easychair/app/services/HomepageMissionControlService.php:67:FROM conference_home_notifications
/home/shquier/easyconf.net/easychair/app/services/StudioMetricsService.php:25:'notifications'
/home/shquier/easyconf.net/easychair/app/services/ConferenceNotificationService.php:8:use App\Models\NotificationModel;
/home/shquier/easyconf.net/easychair/app/services/ConferenceNotificationService.php:10:final class ConferenceNotificationService
/home/shquier/easyconf.net/easychair/app/services/ConferenceNotificationService.php:12:    public static function notifyAndEmail(
/home/shquier/easyconf.net/easychair/app/services/ConferenceNotificationService.php:42:        $model = new NotificationModel();
/home/shquier/easyconf.net/easychair/app/services/CronService.php:18:        $notifications = 0;
/home/shquier/easyconf.net/easychair/app/services/CronService.php:27:                return ['notifications' => 0, 'emails' => 0];
/home/shquier/easyconf.net/easychair/app/services/CronService.php:52:                NotificationService::notifyAndEmail(
/home/shquier/easyconf.net/easychair/app/services/CronService.php:64:                $notifications++;
/home/shquier/easyconf.net/easychair/app/services/CronService.php:71:            $cron->finishJob($jobId, 'success', 'Submission deadline reminders completed.', $notifications, $emails);
/home/shquier/easyconf.net/easychair/app/services/CronService.php:73:            return ['notifications' => $notifications, 'emails' => $emails];
/home/shquier/easyconf.net/easychair/app/services/CronService.php:75:            $cron->finishJob($jobId, 'failed', $e->getMessage(), $notifications, $emails);
/home/shquier/easyconf.net/easychair/app/services/CronService.php:76:            return ['notifications' => $notifications, 'emails' => $emails];
/home/shquier/easyconf.net/easychair/app/services/CronService.php:85:        $notifications = 0;
/home/shquier/easyconf.net/easychair/app/services/CronService.php:94:                return ['notifications' => 0, 'emails' => 0];
/home/shquier/easyconf.net/easychair/app/services/CronService.php:120:                NotificationService::notifyAndEmail(
/home/shquier/easyconf.net/easychair/app/services/CronService.php:133:                $notifications++;
/home/shquier/easyconf.net/easychair/app/services/CronService.php:161:                NotificationService::notifyAndEmail(
/home/shquier/easyconf.net/easychair/app/services/CronService.php:174:                $notifications++;
/home/shquier/easyconf.net/easychair/app/services/CronService.php:181:            $cron->finishJob($jobId, 'success', 'Review reminders completed.', $notifications, $emails);
/home/shquier/easyconf.net/easychair/app/services/CronService.php:183:            return ['notifications' => $notifications, 'emails' => $emails];
/home/shquier/easyconf.net/easychair/app/services/CronService.php:185:            $cron->finishJob($jobId, 'failed', $e->getMessage(), $notifications, $emails);
/home/shquier/easyconf.net/easychair/app/services/CronService.php:186:            return ['notifications' => $notifications, 'emails' => $emails];
/home/shquier/easyconf.net/easychair/app/services/CronService.php:195:        $notifications = 0;
/home/shquier/easyconf.net/easychair/app/services/CronService.php:204:                return ['notifications' => 0, 'emails' => 0];
/home/shquier/easyconf.net/easychair/app/services/CronService.php:225:                    NotificationService::notifyAndEmail(
/home/shquier/easyconf.net/easychair/app/services/CronService.php:238:                    $notifications++;
/home/shquier/easyconf.net/easychair/app/services/CronService.php:246:            $cron->finishJob($jobId, 'success', 'Decision reminders completed.', $notifications, $emails);
/home/shquier/easyconf.net/easychair/app/services/CronService.php:248:            return ['notifications' => $notifications, 'emails' => $emails];
/home/shquier/easyconf.net/easychair/app/services/CronService.php:250:            $cron->finishJob($jobId, 'failed', $e->getMessage(), $notifications, $emails);
/home/shquier/easyconf.net/easychair/app/services/CronService.php:251:            return ['notifications' => $notifications, 'emails' => $emails];
/home/shquier/easyconf.net/easychair/app/services/CronService.php:260:        $notifications = 0;
/home/shquier/easyconf.net/easychair/app/services/CronService.php:269:                return ['notifications' => 0, 'emails' => 0];
/home/shquier/easyconf.net/easychair/app/services/CronService.php:293:                NotificationService::notifyAndEmail(
/home/shquier/easyconf.net/easychair/app/services/CronService.php:305:                $notifications++;
/home/shquier/easyconf.net/easychair/app/services/CronService.php:312:            $cron->finishJob($jobId, 'success', 'Camera-ready reminders completed.', $notifications, $emails);
/home/shquier/easyconf.net/easychair/app/services/CronService.php:314:            return ['notifications' => $notifications, 'emails' => $emails];
/home/shquier/easyconf.net/easychair/app/services/CronService.php:316:            $cron->finishJob($jobId, 'failed', $e->getMessage(), $notifications, $emails);
/home/shquier/easyconf.net/easychair/app/services/CronService.php:317:            return ['notifications' => $notifications, 'emails' => $emails];
/home/shquier/easyconf.net/easychair/app/services/NotificationService.php:8:final class NotificationService
/home/shquier/easyconf.net/easychair/app/services/NotificationService.php:10:    public static function notify(int $userId, string $type, string $message, ?string $linkUrl = null): void
/home/shquier/easyconf.net/easychair/app/services/NotificationService.php:13:        $db->prepare("INSERT INTO notifications(user_id,type,message,link_url,is_read) VALUES(:u,:t,:m,:l,0)")
/home/shquier/easyconf.net/easychair/app/services/NotificationService.php:17:    public static function notifyEmail(int $userId, string $templateKey, string $lang, array $vars): void
/home/shquier/easyconf.net/easychair/app/services/PlatformOperatingSystemService.php:35:'notifications'=>
/home/shquier/easyconf.net/easychair/app/services/PlatformOperatingSystemService.php:41:FROM platform_notifications
/home/shquier/easyconf.net/easychair/app/services/PlatformOperatingSystemService.php:97:'notifications'
/home/shquier/easyconf.net/easychair/app/services/PlatformOperatingSystemService.php:105:'notifications'
/home/shquier/easyconf.net/easychair/app/services/ReviewReminderService.php:76:            INSERT INTO notifications
/home/shquier/easyconf.net/easychair/app/services/ConferenceEmailTemplateService.php:55:            'decision_notification',
/home/shquier/easyconf.net/easychair/app/services/HomepageCollaborationService.php:28:conference_home_notifications
/home/shquier/easyconf.net/easychair/app/cron/reviewer_risk_notifications.php:13:echo "RISK NOTIFICATIONS\n";
/home/shquier/easyconf.net/easychair/app/cron/reviewer_risk_notifications.php:29:AND rrf.notification_sent=0
/home/shquier/easyconf.net/easychair/app/cron/reviewer_risk_notifications.php:81:    notification_sent=1,
/home/shquier/easyconf.net/easychair/app/core/NotificationService.php:6:class NotificationService
/home/shquier/easyconf.net/easychair/app/core/NotificationService.php:18:        string $notificationType
/home/shquier/easyconf.net/easychair/app/core/NotificationService.php:22:            FROM user_notification_preferences
/home/shquier/easyconf.net/easychair/app/core/NotificationService.php:24:              AND notification_type=?
/home/shquier/easyconf.net/easychair/app/core/NotificationService.php:32:        $stmt->execute([$userId, $notificationType, $conferenceId]);
/home/shquier/easyconf.net/easychair/app/core/NotificationService.php:53:        string $notificationType
/home/shquier/easyconf.net/easychair/app/core/NotificationService.php:57:            FROM user_notification_preferences
/home/shquier/easyconf.net/easychair/app/core/NotificationService.php:59:              AND notification_type=?
/home/shquier/easyconf.net/easychair/app/core/NotificationService.php:67:        $stmt->execute([$userId, $notificationType, $conferenceId]);
/home/shquier/easyconf.net/easychair/app/core/NotificationService.php:89:        $type = (string)($data['notification_type'] ?? 'system');
/home/shquier/easyconf.net/easychair/app/core/NotificationService.php:100:            INSERT INTO user_notifications
/home/shquier/easyconf.net/easychair/app/core/NotificationService.php:101:            (org_id, conference_id, user_id, submission_id, notification_type, event_key,
/home/shquier/easyconf.net/easychair/app/core/NotificationService.php:122:    public function notifyAuthorWorkflow(array $submission, string $eventKey, string $title, string $body = ''): ?int
/home/shquier/easyconf.net/easychair/app/core/NotificationService.php:133:            'notification_type' => 'workflow',
/home/shquier/easyconf.net/easychair/app/core/NotificationService.php:154:            FROM user_notifications
/home/shquier/easyconf.net/easychair/app/core/NotificationService.php:182:            FROM user_notifications n
/home/shquier/easyconf.net/easychair/app/core/App.php:607:        'notifications',
/home/shquier/easyconf.net/easychair/app/core/WorkflowEngine.php:125:    private static function notifyAuthor($submission_id, $decision)
/home/shquier/easyconf.net/easychair/app/core/WorkflowEngine.php:141:            'decision_notification',
/home/shquier/easyconf.net/easychair/app/core/WorkflowNotificationBus.php:4:final class WorkflowNotificationBus
/home/shquier/easyconf.net/easychair/app/core/WorkflowNotificationBus.php:14:            new NotificationService();
/home/shquier/easyconf.net/easychair/app/core/WorkflowNotificationBus.php:29:            trim((string)($ctx['title']??'Notification'));
/home/shquier/easyconf.net/easychair/app/core/WorkflowNotificationBus.php:41:                    'notification_type'=>$event,
/home/shquier/easyconf.net/easychair/app/core/WorkflowNotificationBus.php:61:                "NOTIFY OK ".$event
/home/shquier/easyconf.net/easychair/app/core/WorkflowNotificationBus.php:67:                "NOTIFY FAIL ".
/home/shquier/easyconf.net/easychair/app/core/MailEngine.php:48:public static function notifyReviewerAssigned($email, $title)
/home/shquier/easyconf.net/easychair/app/core/MailEngine.php:57:    public static function notifyAuthorDecision($email, $decision)
/home/shquier/easyconf.net/easychair/app/models/CronModel.php:20:    public function finishJob(int $id, string $status, string $message = '', int $notifications = 0, int $emails = 0): void
/home/shquier/easyconf.net/easychair/app/models/CronModel.php:27:                created_notifications = :created_notifications,
/home/shquier/easyconf.net/easychair/app/models/CronModel.php:35:            ':created_notifications' => $notifications,
/home/shquier/easyconf.net/easychair/app/models/ProceedingsModel.php:7:use App\Services\NotificationService;
/home/shquier/easyconf.net/easychair/app/models/ProceedingsModel.php:106:        // Notify author that paper is published
/home/shquier/easyconf.net/easychair/app/models/ProceedingsModel.php:112:            NotificationService::push((int)$srow['author_id'], 'publishing', trans('paper_published') . ' — ' . (string)($srow['submission_no'] ?? ''));
/home/shquier/easyconf.net/easychair/app/models/NotificationModel.php:8:final class NotificationModel extends Model
/home/shquier/easyconf.net/easychair/app/models/NotificationModel.php:13:            INSERT INTO notifications (
/home/shquier/easyconf.net/easychair/app/models/NotificationModel.php:36:            FROM notifications
/home/shquier/easyconf.net/easychair/app/models/NotificationModel.php:49:            FROM notifications
/home/shquier/easyconf.net/easychair/app/models/NotificationModel.php:62:            FROM notifications
/home/shquier/easyconf.net/easychair/app/models/NotificationModel.php:73:            FROM notifications
/home/shquier/easyconf.net/easychair/app/models/NotificationModel.php:88:            UPDATE notifications
/home/shquier/easyconf.net/easychair/app/models/NotificationModel.php:101:            UPDATE notifications
/home/shquier/easyconf.net/easychair/app/models/DecisionModel.php:48:                    notification_sent = 0
/home/shquier/easyconf.net/easychair/app/models/DecisionModel.php:61:                    submission_id, decided_by, decision, chair_comments, decided_at, notification_sent
