"""认证相关 Use Cases 和委托处理器"""

from packages.application.auth.jwt_handler import (
    JWTHandler,
    configure_jwt_handler,
    get_jwt_handler,
)
from packages.application.auth.login_use_case import (
    LoginRequest,
    LoginResponse,
    LoginUseCase,
    LogoutRequest,
    LogoutUseCase,
    RefreshTokenRequest,
    RefreshTokenUseCase,
)
from packages.application.auth.password_handler import (
    PasswordHandler,
    configure_password_handler,
    get_password_handler,
)
from packages.application.auth.password_hasher import password_hasher, password_validator
from packages.application.auth.password_reset_use_case import (
    RequestPasswordResetRequest,
    RequestPasswordResetUseCase,
    ResetPasswordRequest,
    ResetPasswordUseCase,
)
from packages.application.auth.register_user_use_case import (
    RegisterUserRequest,
    RegisterUserResponse,
    RegisterUserUseCase,
    VerifyEmailRequest,
    VerifyEmailUseCase,
)

__all__ = [
    # Use Cases
    "RegisterUserUseCase",
    "RegisterUserRequest",
    "RegisterUserResponse",
    "VerifyEmailUseCase",
    "VerifyEmailRequest",
    "LoginUseCase",
    "LoginRequest",
    "LoginResponse",
    "RefreshTokenUseCase",
    "RefreshTokenRequest",
    "LogoutUseCase",
    "LogoutRequest",
    "RequestPasswordResetUseCase",
    "RequestPasswordResetRequest",
    "ResetPasswordUseCase",
    "ResetPasswordRequest",
    # Handlers (委托层，隔离 Domain 层对 jwt/bcrypt 的依赖)
    "JWTHandler",
    "configure_jwt_handler",
    "get_jwt_handler",
    "PasswordHandler",
    "configure_password_handler",
    "get_password_handler",
    "password_hasher",
    "password_validator",
]
