#!/usr/bin/env python3
"""
Preview the new Matrix message format
"""

def preview_message():
    # Sample data
    name = "Anna Schmidt"
    comment = "Bitte auf mattem Papier drucken. Danke!"
    analysis = {
        'filename': 'presentation.pdf',
        'grand_total': 12.50,
        'total_area_black': 1.5,
        'total_cost_black': 6.0,
        'total_area_color': 1.3,
        'total_cost_color': 6.5,
        'pages': [
            {'page': 1, 'width_m': 0.21, 'height_m': 0.297, 'is_color': False, 'cost': 2.0},
            {'page': 2, 'width_m': 0.21, 'height_m': 0.297, 'is_color': True, 'cost': 2.5},
            {'page': 3, 'width_m': 0.21, 'height_m': 0.297, 'is_color': False, 'cost': 2.0},
            {'page': 4, 'width_m': 0.21, 'height_m': 0.297, 'is_color': True, 'cost': 2.5},
            {'page': 5, 'width_m': 0.21, 'height_m': 0.297, 'is_color': False, 'cost': 2.0},
            {'page': 6, 'width_m': 0.21, 'height_m': 0.297, 'is_color': True, 'cost': 1.5},
        ]
    }

    # Generate filename preview
    from datetime import datetime
    timestamp = datetime.now().strftime("%Y-%m-%dT%H%M")
    safe_name = "".join(c for c in name if c.isalnum() or c in (' ', '-', '_')).strip()
    safe_name = safe_name.replace(' ', '_')[:30]
    has_color = analysis['total_area_color'] > 0
    color_marker = "Farbe" if has_color else "SW"
    price_str = f"{analysis['grand_total']:.2f}".replace('.', '_')
    new_filename = f"{timestamp}_{safe_name}_{price_str}EUR_{color_marker}.pdf"

    # Generate message
    summary_lines = [
        "=== NEUER DRUCKAUFTRAG ===",
        "",
        f"Name: {name}",
        f"Preis: {analysis['grand_total']:.2f} EUR",
    ]

    if comment.strip():
        summary_lines.extend([
            "",
            f"Kommentar:",
            f"{comment.strip()}",
        ])

    summary_lines.extend([
        "",
        "Details:",
    ])

    if analysis['total_area_black'] > 0:
        summary_lines.append(
            f"  - S/W: {analysis['total_area_black']:.2f} m2 -> {analysis['total_cost_black']:.2f} EUR"
        )

    if analysis['total_area_color'] > 0:
        summary_lines.append(
            f"  - Farbe: {analysis['total_area_color']:.2f} m2 -> {analysis['total_cost_color']:.2f} EUR"
        )

    total_pages = len(analysis['pages'])
    color_pages = sum(1 for p in analysis['pages'] if p['is_color'])
    bw_pages = total_pages - color_pages
    summary_lines.append(f"  - Seiten: {total_pages} gesamt ({bw_pages} S/W, {color_pages} Farbe)")

    # Only show page details for <= 5 pages
    if total_pages <= 5:
        summary_lines.append("")
        summary_lines.append("Seiten:")
        for page in analysis["pages"]:
            seitenart = "Farbe" if page["is_color"] else "S/W"
            summary_lines.append(
                f"  - S.{page['page']}: {page['width_m']*1000:.0f}x{page['height_m']*1000:.0f}mm, {seitenart}, {page['cost']:.2f} EUR"
            )

    print("=" * 60)
    print("NEW FILENAME:")
    print("=" * 60)
    print(new_filename)
    print()
    print("=" * 60)
    print("MESSAGE PREVIEW:")
    print("=" * 60)
    print("\n".join(summary_lines))
    print()
    print("=" * 60)


if __name__ == "__main__":
    print("\n📝 SMALL DOCUMENT EXAMPLE (5 pages, with details):\n")
    preview_message()

    print("\n\n📚 LARGE DOCUMENT EXAMPLE (6+ pages, no details):\n")
    # Simulate larger document
    import random
    name = "Max Mustermann"
    comment = ""
    analysis = {
        'filename': 'thesis.pdf',
        'grand_total': 45.80,
        'total_area_black': 8.5,
        'total_cost_black': 34.0,
        'total_area_color': 2.36,
        'total_cost_color': 11.8,
        'pages': [{'page': i, 'width_m': 0.21, 'height_m': 0.297,
                   'is_color': i % 3 == 0, 'cost': 5.0 if i % 3 == 0 else 4.0}
                  for i in range(1, 11)]
    }

    from datetime import datetime
    timestamp = datetime.now().strftime("%Y-%m-%dT%H%M")
    safe_name = "Max_Mustermann"
    has_color = analysis['total_area_color'] > 0
    color_marker = "Farbe" if has_color else "SW"
    price_str = f"{analysis['grand_total']:.2f}".replace('.', '_')
    new_filename = f"{timestamp}_{safe_name}_{price_str}EUR_{color_marker}.pdf"

    summary_lines = [
        "=== NEUER DRUCKAUFTRAG ===",
        "",
        f"Name: {name}",
        f"Preis: {analysis['grand_total']:.2f} EUR",
        "",
        "Details:",
        f"  - S/W: {analysis['total_area_black']:.2f} m2 -> {analysis['total_cost_black']:.2f} EUR",
        f"  - Farbe: {analysis['total_area_color']:.2f} m2 -> {analysis['total_cost_color']:.2f} EUR",
    ]

    total_pages = len(analysis['pages'])
    color_pages = sum(1 for p in analysis['pages'] if p['is_color'])
    bw_pages = total_pages - color_pages
    summary_lines.append(f"  - Seiten: {total_pages} gesamt ({bw_pages} S/W, {color_pages} Farbe)")

    print("=" * 60)
    print("NEW FILENAME:")
    print("=" * 60)
    print(new_filename)
    print()
    print("=" * 60)
    print("MESSAGE PREVIEW:")
    print("=" * 60)
    print("\n".join(summary_lines))
    print("\n(Page details omitted for documents > 5 pages)")
    print()
    print("=" * 60)
