package services import ( "github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/models" "gorm.io/gorm" ) type NotificationService struct { DB *gorm.DB } func NewNotificationService(db *gorm.DB) *NotificationService { return &NotificationService{DB: db} } func (s *NotificationService) Create(nType models.NotificationType, title, message string) (*models.Notification, error) { notification := &models.Notification{ Type: nType, Title: title, Message: message, Read: false, } result := s.DB.Create(notification) return notification, result.Error } func (s *NotificationService) List(unreadOnly bool) ([]models.Notification, error) { var notifications []models.Notification query := s.DB.Order("created_at desc") if unreadOnly { query = query.Where("read = ?", false) } result := query.Find(¬ifications) return notifications, result.Error } func (s *NotificationService) MarkAsRead(id string) error { return s.DB.Model(&models.Notification{}).Where("id = ?", id).Update("read", true).Error } func (s *NotificationService) MarkAllAsRead() error { return s.DB.Model(&models.Notification{}).Where("read = ?", false).Update("read", true).Error }