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}