"""
Session Management Module for BreakPilot

Hybrid session storage using Valkey (Redis-fork) for fast lookups
and PostgreSQL for persistence and DSGVO audit trail.

Components:
- session_store.py: Hybrid Valkey + PostgreSQL session storage
- session_middleware.py: FastAPI middleware for session-based auth
- rbac_middleware.py: User type and permission checking
"""

from .session_store import (
    SessionStore,
    Session,
    UserType,
    get_session_store,
)
from .session_middleware import (
    get_current_session,
    require_session,
    session_middleware,
)
from .rbac_middleware import (
    require_user_type,
    require_permission,
    require_any_permission,
    require_employee,
    require_customer,
    EMPLOYEE_PERMISSIONS,
    CUSTOMER_PERMISSIONS,
)

__all__ = [
    # Session Store
    "SessionStore",
    "Session",
    "UserType",
    "get_session_store",
    # Session Middleware
    "get_current_session",
    "require_session",
    "session_middleware",
    # RBAC Middleware
    "require_user_type",
    "require_permission",
    "require_any_permission",
    "require_employee",
    "require_customer",
    "EMPLOYEE_PERMISSIONS",
    "CUSTOMER_PERMISSIONS",
]
