Luồng kết nối Database được phân làm 2 tuyến chính (Sync và Async) với khả năng tự động "đảo luồng" khi `USE_LOCAL_SQLITE=True`:

**A. Sync Path (Dành cho các Class helper, UltraDescriptionDB):**
- Sử dụng `db_pool.CanifaDbPool` quản lý kết nối `psycopg_pool.ConnectionPool`.
- `pool_wrapper.py` cung cấp `PooledConnectionWrapper` chặn hàm `.close()` để trả kết nối về pool.
- Khi chạy Local, `get_mock_pg_conn_compat()` trả về `MockConnection`, thay thế kết nối thật.

**B. Async Path (Dành cho Lead Flow History & Analytics):**
- Sử dụng `asyncpg` (trong `PostgresReadonly`) và native async `psycopg3` (trong `lead_flow_postgres.py`).
- Khi gọi `.execute_query_async()` hoặc `.save_lead_turn()`, code sẽ tự động check `USE_LOCAL_SQLITE`. Nếu bật, nó bypass connection pool và gọi `MockCursor().execute()` (chạy đồng bộ trên background).

```mermaid
sequenceDiagram
    participant App as App (FastAPI/Helper)
    participant Wrapper as Pool Wrapper / Async API
    participant Config as config.USE_LOCAL_SQLITE
    participant Mock as sqlite_mock.py
    participant PG as PostgreSQL / Pool

    App->>Wrapper: Yêu cầu kết nối / Truy vấn
    Wrapper->>Config: Kiểm tra môi trường
    alt is True
        Config-->>Wrapper: Local SQLite Mode
        Wrapper->>Mock: get_mock_pg_conn() / MockCursor()
        Mock->>Mock: translate_query(sql)
        Mock->>SQLite: execute(translated_sql)
        SQLite-->>Mock: Result
        Mock-->>App: MockRow (giả lập dict_row)
    else is False
        Config-->>Wrapper: Production Mode
        Wrapper->>PG: getconn() / acquire()
        PG->>PG: execute(sql)
        PG-->>Wrapper: Result
        Wrapper-->>App: Record
    end
```