hyapp-server/server/admin/internal/repository/notification_repository.go
2026-05-02 13:02:38 +08:00

35 lines
932 B
Go

package repository
import (
"hyapp-admin-server/internal/model"
"time"
)
func (s *Store) ListNotifications() ([]model.Notification, error) {
var items []model.Notification
err := s.db.Order("created_at DESC").Find(&items).Error
return items, err
}
func (s *Store) MarkNotificationRead(id uint) (*model.Notification, error) {
now := time.Now()
if err := s.db.Model(&model.Notification{}).Where("id = ?", id).Update("read_at", &now).Error; err != nil {
return nil, err
}
var item model.Notification
if err := s.db.First(&item, id).Error; err != nil {
return nil, err
}
return &item, nil
}
func (s *Store) MarkAllNotificationsRead() (int64, error) {
now := time.Now()
result := s.db.Model(&model.Notification{}).Where("read_at IS NULL").Update("read_at", &now)
return result.RowsAffected, result.Error
}
func (s *Store) DeleteNotification(id uint) error {
return s.db.Delete(&model.Notification{}, id).Error
}