package notificationservice import ( "context" "github.com/SamuelTariku/FortuneBet-Backend/internal/domain" "github.com/gorilla/websocket" ) type NotificationStore interface { GetCompanyByWalletID(ctx context.Context, walletID int64) (domain.Company, error) GetBranchByWalletID(ctx context.Context, walletID int64) (domain.Branch, error) SendNotification(ctx context.Context, notification *domain.Notification) error MarkAsRead(ctx context.Context, notificationID string, recipientID int64) error ListNotifications(ctx context.Context, recipientID int64, limit, offset int) ([]domain.Notification, error) ConnectWebSocket(ctx context.Context, recipientID int64, c *websocket.Conn) error DisconnectWebSocket(recipientID int64) SendSMS(ctx context.Context, recipientID int64, message string) error SendEmail(ctx context.Context, recipientID int64, subject, message string) error ListRecipientIDs(ctx context.Context, receiver domain.NotificationRecieverSide) ([]int64, error) // New method CountUnreadNotifications(ctx context.Context, recipient_id int64) (int64, error) GetAllNotifications(ctx context.Context, limit, offset int) ([]domain.Notification, error) GetNotificationCounts(ctx context.Context, filter domain.ReportFilter) (total, read, unread int64, err error) }