# Refactor: One Big Table — Loại bỏ multi-table joins

## Scope
- **What changes:** `search_engine.py` (core), `__init__.py` (exports)
- **What does NOT change:** `db_connector.py`, `stock_provider.py`, `pattern_detector.py`, `product_mapping.py`, `size_message_builder.py`, `data_retrieval_tool.py` (interface giữ nguyên)
- **Blast radius:** 2 files (LOW risk)

## Current State
- `SearchEngine._enrich_with_outfit()` mở kết nối SQLite riêng, query bảng `pg__dashboard_canifa__ai_outfit_product_matches` để lấy outfit recommendations.
- `SELECT_COLUMNS` chỉ lấy 19 cột cơ bản, thiếu `tags`, `outfit_recommendations`, `description_data_cut`.
- Python phải gánh logic JOIN data từ nhiều bảng.

## Target State
- `SELECT_COLUMNS` mở rộng lấy thêm `tags`, `outfit_recommendations`, `description_text_full` (đã rename từ `description_data_cut`) trực tiếp từ bảng chính.
- **XÓA BỎ** hàm `_enrich_with_outfit()` — data đã có sẵn trong cột `outfit_recommendations` dạng JSON.
- Python chỉ cần `json.loads()` cột `outfit_recommendations` để parse ra list[dict].
- Output trả ra cho Agent **giữ nguyên 100% format cũ**.

## Risk Assessment
- [x] Blast radius ≤ 10 files: LOW risk

## No-Touch Zones
- `db_connector.py` — không sửa
- `stock_provider.py` — không sửa
- `data_retrieval_tool.py` — không sửa (interface SearchEngine.search() giữ nguyên)
- `pattern_detector.py` — không sửa
- `product_mapping.py` — không sửa

## Commit Plan

### Commit 1: refactor: expand SELECT_COLUMNS to include One Big Table columns
- Files: `search_engine.py`
- Change: Thêm `tags`, `outfit_recommendations`, `description_text_full` vào `SELECT_COLUMNS`
- Test: Chạy search query, verify output có thêm 3 cột mới
- Rollback: `git revert HEAD`

### Commit 2: refactor: replace _enrich_with_outfit with inline JSON parse
- Files: `search_engine.py`
- Change: Xóa hàm `_enrich_with_outfit()`, thay bằng `json.loads()` inline trong method `search()`
- Test: Chạy search, verify `outfit_recommendations` vẫn trả về list[dict]
- Rollback: `git revert HEAD`

### Commit 3: refactor: cleanup unused imports and constants
- Files: `search_engine.py`
- Change: Xóa import `sqlite3`, `os` nếu không dùng nữa. Cleanup comment blocks.
- Test: Chạy search, verify no regression
- Rollback: `git revert HEAD`
