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 UpdateHandle(ctx context.Context, did, newHandle string) (*User, error)
11}
12
13// UserService defines the interface for user business logic
14type UserService interface {
15 CreateUser(ctx context.Context, req CreateUserRequest) (*User, error)
16 GetUserByDID(ctx context.Context, did string) (*User, error)
17 GetUserByHandle(ctx context.Context, handle string) (*User, error)
18 UpdateHandle(ctx context.Context, did, newHandle string) (*User, error)
19 ResolveHandleToDID(ctx context.Context, handle string) (string, error)
20 RegisterAccount(ctx context.Context, req RegisterAccountRequest) (*RegisterAccountResponse, error)
21}