You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.2 KiB
45 lines
1.2 KiB
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use CodeIgniter\Model;
|
|
|
|
class Notification extends Model
|
|
{
|
|
protected $table = 'notification';
|
|
protected $primaryKey = 'id';
|
|
protected $allowedFields = ['message', 'is_read', 'forgroup', 'store_id', "link", 'created_at'];
|
|
|
|
public function getNotifications()
|
|
{
|
|
$session = session();
|
|
$users = $session->get('user');
|
|
|
|
$today = date('Y-m-d');
|
|
|
|
return $this->where('store_id', $users['store_id'])
|
|
->groupStart()
|
|
->where('forgroup', $users['group_name'])
|
|
->orWhere('forgroup', strtolower('TOUS'))
|
|
->groupEnd()
|
|
->groupStart()
|
|
->where('is_read', 0) // toutes les notifications non lues
|
|
->orGroupStart()
|
|
->where('is_read', 1) // notifications lues
|
|
->where('DATE(created_at)', $today) // mais seulement celles d’aujourd’hui
|
|
->groupEnd()
|
|
->groupEnd()
|
|
->orderBy('created_at', 'DESC')
|
|
->findAll();
|
|
}
|
|
|
|
public function markAsRead(int $id)
|
|
{
|
|
return $this->update($id, ['is_read' => 1]);
|
|
}
|
|
|
|
public function insertNotification(array $data)
|
|
{
|
|
return $this->insert($data);
|
|
}
|
|
}
|
|
|