package ports

import (
	"context"

	"Yimaru-Backend/internal/domain"
)

type NotificationStore interface {
	GetUserNotifications(ctx context.Context, recipientID int64, limit, offset int) ([]domain.Notification, int64, error)
	CountUnreadNotifications(ctx context.Context, recipient_id int64) (int64, error)
	GetAllNotifications(ctx context.Context, limit, offset int) ([]domain.Notification, error)

	CreateNotification(ctx context.Context, notification *domain.Notification) (*domain.Notification, error)
	MarkNotificationAsRead(ctx context.Context, id int64) (*domain.Notification, error)
	MarkAllUserNotificationsAsRead(ctx context.Context, userID int64) error
	MarkNotificationAsUnread(ctx context.Context, id int64) (*domain.Notification, error)
	MarkAllUserNotificationsAsUnread(ctx context.Context, userID int64) error
	DeleteUserNotifications(ctx context.Context, userID int64) error
}
