"""
인증 모듈 초기화
TK-MP-Project 인증 시스템의 모든 컴포넌트를 노출
"""

from .jwt_service import jwt_service, JWTService
from .auth_service import AuthService, get_auth_service
from .auth_controller import router as auth_router
from .setup_controller import router as setup_router
from .middleware import (
    auth_middleware,
    get_current_user,
    get_current_active_user,
    require_admin,
    require_leader_or_admin,
    require_roles,
    require_permissions,
    get_user_from_token,
    check_user_permission,
    get_user_permissions_by_role,
    get_current_user_optional
)
from .models import (
    User,
    LoginLog,
    UserSession,
    Permission,
    RolePermission,
    UserRepository
)

__all__ = [
    # JWT 서비스
    'jwt_service',
    'JWTService',
    
    # 인증 서비스
    'AuthService',
    'get_auth_service',
    
    # 라우터
    'auth_router',
    'setup_router',
    
    # 미들웨어 및 의존성
    'auth_middleware',
    'get_current_user',
    'get_current_active_user',
    'require_admin',
    'require_leader_or_admin',
    'require_roles',
    'require_permissions',
    'get_user_from_token',
    'check_user_permission',
    'get_user_permissions_by_role',
    'get_current_user_optional',
    
    # 모델
    'User',
    'LoginLog',
    'UserSession',
    'Permission',
    'RolePermission',
    'UserRepository'
]
















