#!/usr/bin/env python3
"""Fix the markdown to show proper examples with all variations"""

import json

def load_examples(json_file="56_QUESTION_TYPES_EXAMPLES.json"):
    with open(json_file, 'r', encoding='utf-8') as f:
        return json.load(f)

def create_fixed_markdown():
    """Create proper markdown with examples"""

    examples = load_examples()

    # Read one conversation to get metadata
    with open("gemma4_ayurveda_56variations.jsonl", 'r', encoding='utf-8') as f:
        first = json.loads(f.read().split('\n}\n{')[0] + '\n}')
        metadata = first.get('metadata', {})

    md = f"""# 56 Question Types - Complete Examples with Variations

Generated from dataset: `gemma4_ayurveda_56variations.jsonl`

---

## Sample Shloka Used for Examples

**Sanskrit:**
```
{metadata.get('sanskrit', 'N/A')}
```

**Transliteration:**
```
{metadata.get('transliteration', 'N/A')}
```

**Translation (EN):** {metadata.get('translation_en', 'N/A')}

**Section:** {metadata.get('section', 'N/A')}
**Chapter:** {metadata.get('chapter', 'N/A')}
**Verse:** {metadata.get('verse', 'N/A')}

---

## Complete List of All 52 Question Types Found

Total unique base types: **52** (each has 5 variations v1-v5 = 260 total per shloka)

---

## Category A: Natural Questions (9 base types × 5 = 45 variations)

Natural questions treat content as knowledge, NOT as text.

### A.1 Natural Conceptual (3 languages × 5 variations = 15 types)

"""

    # Natural Conceptual
    for lang in ['en', 'hi', 'sa']:
        md += f"\n**Language: {lang.upper()}**\n\n"
        for i in range(1, 6):
            key = f"natural_conceptual_{lang}_v{i}"
            if key in examples:
                md += f"- **{{{{key}}}}**: {{{{examples[key]['question'][:80]}}}}...\n"

    md += """

### A.2 Natural Analytical (3 languages × 5 variations = 15 types)

"""

    # Natural Analytical
    for lang in ['en', 'hi', 'sa']:
        md += f"\n**Language: {lang.upper()}**\n\n"
        for i in range(1, 6):
            key = f"natural_analytical_{lang}_v{i}"
            if key in examples:
                md += f"- **{{{{key}}}}**: {{{{examples[key]['question'][:80]}}}}...\n"

    md += """

### A.3 Natural Application (3 languages × 5 variations = 15 types)

"""

    # Natural Application
    for lang in ['en', 'hi', 'sa']:
        md += f"\n**Language: {lang.upper()}**\n\n"
        for i in range(1, 6):
            key = f"natural_application_{lang}_v{i}"
            if key in examples:
                md += f"- **{{{{key}}}}**: {{{{examples[key]['question'][:80]}}}}...\n"

    md += """

---

## Category B: Reference Questions (8 base types × 5 = 40 variations)

"""

    # Reference questions
    ref_types = [
        ('reference_translation', 'Translation'),
        ('reference_id_lookup', 'ID Lookup'),
        ('reference_complete_details', 'Complete Details'),
        ('reference_chapter_context', 'Chapter Context'),
        ('reference_transliteration', 'Transliteration'),
    ]

    for base, name in ref_types:
        md += f"\n### B.{ref_types.index((base, name)) + 1} {name} (3 languages × 5 variations = 15 types)\n\n"
        for lang in ['en', 'hi', 'sa']:
            md += f"**{lang.upper()}**\n\n"
            for i in range(1, 6):
                key = f"{base}_{lang}_v{i}"
                if key in examples:
                    md += f"- **{{{{key}}}}**: {{{{examples[key]['question'][:60]}}}}...\n"
            md += "\n"

    md += """### B.6 Multi-turn (5 variations)

"""

    for i in range(1, 6):
        key = f"reference_multi_turn_v{i}"
        if key in examples:
            md += f"- **{{{{key}}}}**: {{{{examples[key]['question'][:80]}}}}...\n"

    md += """

---

## Category C: Advanced Questions (4 base types × 5 = 20 variations)

"""

    advanced = [
        ('advanced_clinical_case', 'Clinical Case'),
        ('advanced_word_analysis', 'Word Analysis'),
        ('advanced_historical_context', 'Historical Context'),
        ('advanced_comparative', 'Comparative'),
    ]

    for base, name in advanced:
        md += f"\n### C.{advanced.index((base, name)) + 1} {name}\n\n"
        for i in range(1, 6):
            key = f"{base}_v{i}"
            if key in examples:
                md += f"- **{{{{key}}}}**: {{{{examples[key]['question'][:80]}}}}...\n"

    md += """

---

## Category D: Cross-Reference Questions (2 base types × 5 = 10 variations)

"""

    cross = [
        ('cross_reference_intra_chapter', 'Intra-chapter'),
        ('cross_section_relationship', 'Section Relationship'),
    ]

    for base, name in cross:
        md += f"\n### D.{cross.index((base, name)) + 1} {name}\n\n"
        for i in range(1, 6):
            key = f"{base}_v{i}"
            if key in examples:
                md += f"- **{{{{key}}}}**: {{{{examples[key]['question'][:80]}}}}...\n"

    md += """

---

## Category E: QnA Variations (9 base types × 5 = 45 variations)

"""

    qna_types = [
        ('qna_meaning', 'Meaning'),
        ('qna_concept', 'Concept'),
        ('qna_location', 'Location'),
        ('qna_context', 'Context'),
        ('qna_short', 'Short'),
        ('qna_section_info', 'Section Info'),
    ]

    for base, name in qna_types:
        idx = qna_types.index((base, name)) + 1
        md += f"\n### E.{idx} {name} (3 languages × 5 variations = 15 types)\n\n"
        for lang in ['en', 'hi', 'sa']:
            md += f"**{lang.upper()}**\n\n"
            for i in range(1, 6):
                key = f"{base}_{lang}_v{i}"
                if key in examples:
                    md += f"- **{{{{key}}}}**: {{{{examples[key]['question'][:60]}}}}...\n"
            md += "\n"

    # Remaining QnA types
    remaining = [
        ('qna_analytical_en', 'Analytical'),
        ('qna_word_by_word_en', 'Word-by-word'),
        ('qna_application_en', 'Application'),
    ]

    for base, name in remaining:
        idx = len(qna_types) + remaining.index((base, name)) + 1
        md += f"\n### E.{idx} {name} (5 variations)\n\n"
        for i in range(1, 6):
            key = f"{base}_v{i}" if not base.endswith('_en') else f"{base[:-3]}_en_v{i}"
            # Fix for special case
            if base == 'qna_analytical_en':
                key = f"qna_analytical_en_v{i}"
            elif base == 'qna_word_by_word_en':
                key = f"qna_word_by_word_en_v{i}"
            elif base == 'qna_application_en':
                key = f"qna_application_en_v{i}"

            if key in examples:
                md += f"- **{{{{key}}}}**: {{{{examples[key]['question'][:80]}}}}...\n"

    md += f"""

---

## Summary Statistics

| Category | Base Types | Variations | Total Types |
|----------|-----------|-----------|-------------|
| Natural Conceptual | 3 | 5 each | 15 |
| Natural Analytical | 3 | 5 each | 15 |
| Natural Application | 3 | 5 each | 15 |
| Reference (Translation) | 3 | 5 each | 15 |
| Reference (ID Lookup) | 3 | 5 each | 15 |
| Reference (Complete) | 3 | 5 each | 15 |
| Reference (Chapter) | 3 | 5 each | 15 |
| Reference (Transliteration) | 3 | 5 each | 15 |
| Reference (Multi-turn) | 1 | 5 | 5 |
| Advanced (4 types) | 4 | 5 each | 20 |
| Cross-Reference (2 types) | 2 | 5 each | 10 |
| QnA Meaning | 3 | 5 each | 15 |
| QnA Concept | 3 | 5 each | 15 |
| QnA Location | 3 | 5 each | 15 |
| QnA Context | 3 | 5 each | 15 |
| QnA Short | 3 | 5 each | 15 |
| QnA Section Info | 3 | 5 each | 15 |
| QnA Analytical | 1 | 5 | 5 |
| QnA Word-by-word | 1 | 5 | 5 |
| QnA Application | 1 | 5 | 5 |
| **TOTAL** | **52** | - | **~260 per shloka** |

---

*Generated from gemma4_ayurveda_56variations.jsonl*
"""

    # Now substitute actual values
    # Read the JSON properly
    with open("56_QUESTION_TYPES_EXAMPLES.json", 'r', encoding='utf-8') as f:
        all_examples = json.load(f)

    # Build final markdown by substituting real values
    final_md = f"""# 56 Question Types - Complete Examples with Variations

Generated from dataset: `gemma4_ayurveda_56variations.jsonl`

---

## Sample Shloka Used for Examples

**Sanskrit:**
```
{metadata.get('sanskrit', 'N/A')}
```

**Transliteration:**
```
{metadata.get('transliteration', 'N/A')}
```

**Translation (EN):** {metadata.get('translation_en', 'N/A')}

**Section:** {metadata.get('section', 'N/A')}
**Chapter:** {metadata.get('chapter', 'N/A')}
**Verse:** {metadata.get('verse', 'N/A')}

---

## Complete List of All 52 Question Types Found

"""

    # Add each type with examples
    for key in sorted(all_examples.keys()):
        ex = all_examples[key]
        final_md += f"\n### `{key}`\n\n"
        final_md += f"**Q:** {ex['question']}\n\n"
        final_md += f"**A:** {ex['answer'][:300]}...\n\n---\n\n"

    with open("56_QUESTION_TYPES_COMPLETE.md", 'w', encoding='utf-8') as f:
        f.write(final_md)

    print("Saved: 56_QUESTION_TYPES_COMPLETE.md")

if __name__ == "__main__":
    create_fixed_markdown()
