# Fixtures — синтетические прайсы клиник

Сгенерированы скриптом `scripts/gen_fixtures.py` (seed=42, детерминированно) для отладки pipeline **до** выдачи реальных данных от организатора. Намеренно разнородные и «грязные».

## `raw/` — входные прайсы (6 форматов)

| Файл | Формат | Особенности (что тестирует) |
|---|---|---|
| `clinic_alpha_clean.xlsx` | Excel | Чистая таблица — быстрый путь pandas, без LLM |
| `clinic_beta_dirty.xlsx` | Excel | Секции-заголовки, «от 12000», KZ-названия, лишние колонки |
| `clinic_gamma.csv` | CSV (`;`) | Смешанные RU/KZ, единицы измерения |
| `clinic_delta_messy.txt` | Текст | Прайс абзацем, разные разделители и валюты (тг/тенге/₸/KZT) |
| `clinic_epsilon_scan.png` | Картинка | Имитация фото/скана (наклон) → путь LLM-vision / OCR |
| `clinic_zeta_prices.pdf` | PDF | Текстовый PDF, RU/EN заголовок |

Одни и те же услуги названы по-разному между файлами (ОАК / Общий анализ крови / Қанның жалпы анализі) — это материал для канонизации и дедупликации.

## `normalized/golden.json` — эталон нормализации (52 строки)

Оракул для TDD ETL: для каждой строки из `raw/` указан `canon_id`, `canonical_ru/kz/en`, `category`, `code`, `price`, `currency`, `unit`, `source_file`. Сгенерирован тем же скриптом, что и raw → гарантированно согласован.

Справочник канонов: `../contracts/service_canon.json` (15 услуг, синонимы с lang-тегами).

## TODO (Фаза 0 хакатона)
- `api/*.json` — эталонные ответы API (для MSW-моков фронта)
