// codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/domain/user/interface.go package user import ( "context" "time" "github.com/gocql/gocql" ) // Repository Interface for user management. type Repository interface { Create(ctx context.Context, m *User) error GetByID(ctx context.Context, id gocql.UUID) (*User, error) GetByEmail(ctx context.Context, email string) (*User, error) GetByVerificationCode(ctx context.Context, verificationCode string) (*User, error) DeleteByID(ctx context.Context, id gocql.UUID) error DeleteByEmail(ctx context.Context, email string) error CheckIfExistsByEmail(ctx context.Context, email string) (bool, error) UpdateByID(ctx context.Context, m *User) error AnonymizeOldIPs(ctx context.Context, cutoffDate time.Time) (int, error) AnonymizeUserIPs(ctx context.Context, userID gocql.UUID) error // For GDPR right-to-be-forgotten }