A community based topic aggregation platform built on atproto
1package users
2
3import "context"
4
5// UserRepository defines the interface for user data persistence
6type UserRepository interface {
7 Create(ctx context.Context, user *User) (*User, error)
8 GetByDID(ctx context.Context, did string) (*User, error)
9 GetByHandle(ctx context.Context, handle string) (*User, error)
10}
11
12// UserService defines the interface for user business logic
13type UserService interface {
14 CreateUser(ctx context.Context, req CreateUserRequest) (*User, error)
15 GetUserByDID(ctx context.Context, did string) (*User, error)
16 GetUserByHandle(ctx context.Context, handle string) (*User, error)
17 ResolveHandleToDID(ctx context.Context, handle string) (string, error)
18 RegisterAccount(ctx context.Context, req RegisterAccountRequest) (*RegisterAccountResponse, error)
19}