- Added new notification handling in the wallet service to notify admins when wallet balances are low or insufficient. - Created a new file for wallet notifications and moved relevant functions from the wallet service to this new file. - Updated the wallet service to publish wallet events including wallet type. - Refactored the client code to improve readability and maintainability. - Enhanced the bet handler to support pagination and status filtering for bets. - Updated routes and handlers for user search functionality to improve clarity and organization. - Modified cron job scheduling to comment out unused jobs for clarity. - Updated the WebSocket broadcast to include wallet type in notifications. - Adjusted the makefile to include Kafka in the docker-compose setup for local development.
24 lines
1.1 KiB
Go
24 lines
1.1 KiB
Go
package notificationservice
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/SamuelTariku/FortuneBet-Backend/internal/domain"
|
|
"github.com/gorilla/websocket"
|
|
)
|
|
|
|
type NotificationStore interface {
|
|
SendNotification(ctx context.Context, notification *domain.Notification) error
|
|
MarkAsRead(ctx context.Context, notificationID string, recipientID int64) error
|
|
GetUserNotifications(ctx context.Context, recipientID int64, limit, offset int) ([]domain.Notification, int64, 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)
|
|
}
|