29 lines
1 KiB
Go
29 lines
1 KiB
Go
// 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)
|
|
}
|