package usecase import ( "context" "haixun-backend/internal/model/member/domain/entity" ) type RegisterRequest struct { TenantID string Email string Password string DisplayName string Language string } type LoginRequest struct { TenantID string Email string Password string } type UpdateProfileRequest struct { TenantID string UID string DisplayName *string Avatar *string Language *string Currency *string Phone *string EmailVerified *bool Status *string BusinessEmail *string BusinessEmailVerified *bool BusinessPhone *string BusinessPhoneVerified *bool } type ListMembersRequest struct { TenantID string Page int64 PageSize int64 } type ListMembersResult struct { List []*entity.Member Total int64 Page int64 PageSize int64 TotalPages int64 } type AuthToken struct { AccessToken string RefreshToken string ExpiresIn int64 UID string TokenType string } type UseCase interface { Register(ctx context.Context, req RegisterRequest) (*entity.Member, *AuthToken, error) Login(ctx context.Context, req LoginRequest) (*entity.Member, *AuthToken, error) ListMembers(ctx context.Context, req ListMembersRequest) (*ListMembersResult, error) GetByUID(ctx context.Context, tenantID, uid string) (*entity.Member, error) UpdateProfile(ctx context.Context, req UpdateProfileRequest) (*entity.Member, error) UpdatePassword(ctx context.Context, tenantID, uid, password string) error SetRoles(ctx context.Context, tenantID, uid string, roles []string) error SetEmailVerificationCode(ctx context.Context, tenantID, uid, code string, expiresAt int64) error SetActiveThreadsAccountID(ctx context.Context, tenantID, uid, accountID string) error }