hyapp-server/server/admin/internal/repository/notification_repository.go
2026-05-11 01:40:29 +08:00

35 lines
988 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_ms DESC").Find(&items).Error
return items, err
}
func (s *Store) MarkNotificationRead(id uint) (*model.Notification, error) {
nowMS := time.Now().UTC().UnixMilli()
if err := s.db.Model(&model.Notification{}).Where("id = ?", id).Update("read_at_ms", &nowMS).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) {
nowMS := time.Now().UTC().UnixMilli()
result := s.db.Model(&model.Notification{}).Where("read_at_ms IS NULL").Update("read_at_ms", &nowMS)
return result.RowsAffected, result.Error
}
func (s *Store) DeleteNotification(id uint) error {
return s.db.Delete(&model.Notification{}, id).Error
}