"""
leWOOOgo Data Providers - 具體實作
===================================
Phase 6.4d: Memory Provider 實作

Provider 列表:
- RedisMemoryProvider: Working Memory (Redis 7 天 TTL)
- PgMemoryProvider: Episodic Memory (PostgreSQL 永久)

統帥鐵律 2026-03-23:
- 絕對禁止 SQLite
- 所有 Working Memory 必須有 TTL
- 所有 Episodic Memory 必須使用 PostgreSQL
"""

from .pg_memory import (
    PgMemoryProvider,
    init_pg_engine,
    close_pg_engine,
    get_session_factory,
    get_database_url,
)

from .redis_memory import (
    RedisMemoryProvider,
    init_redis_pool,
    close_redis_pool,
    get_redis_pool,
    get_redis_url,
)

from .dual_memory import DualMemoryProvider

__all__: list[str] = [
    # PostgreSQL (Episodic Memory)
    "PgMemoryProvider",
    "init_pg_engine",
    "close_pg_engine",
    "get_session_factory",
    "get_database_url",
    # Redis (Working Memory)
    "RedisMemoryProvider",
    "init_redis_pool",
    "close_redis_pool",
    "get_redis_pool",
    "get_redis_url",
    # Dual Memory (Working + Episodic)
    "DualMemoryProvider",
]
