// codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/domain/blockedemail/interface.go package blockedemail import ( "context" "github.com/gocql/gocql" ) // BlockedEmailRepository defines the interface for blocked email data access type BlockedEmailRepository interface { // Create adds a new blocked email entry Create(ctx context.Context, blockedEmail *BlockedEmail) error // Get retrieves a specific blocked email entry Get(ctx context.Context, userID gocql.UUID, blockedEmail string) (*BlockedEmail, error) // List retrieves all blocked emails for a user List(ctx context.Context, userID gocql.UUID) ([]*BlockedEmail, error) // Delete removes a blocked email entry Delete(ctx context.Context, userID gocql.UUID, blockedEmail string) error // IsBlocked checks if an email is blocked by a user IsBlocked(ctx context.Context, userID gocql.UUID, email string) (bool, error) // Count returns the number of blocked emails for a user Count(ctx context.Context, userID gocql.UUID) (int, error) }