"""Marketing routes — Phase 2 templated landing.

Phase 2 (A-2.1+): renders templates/marketing/landing.html.
Tasks A-2.2 through A-2.7 will progressively enrich the landing template.
Tasks A-2.8a + A-2.8b added /tarifs, /fonctionnalites, /conformite, /contact.
"""
from flask import render_template

from . import marketing_bp


# Pre-launch placeholder testimonials — T-4.1 will replace these with real
# pilot-client interviews (avocat + CPA + municipalité) in mai-juin 2026.
# Until then, render placeholder cards (LPC art. 219: no fabricated quotes).
TESTIMONIALS = [
    {
        'persona': 'avocat',
        'placeholder_label': 'Cabinet juridique pilote',
        'expected': 'Mai 2026',
    },
    {
        'persona': 'cpa',
        'placeholder_label': 'Cabinet CPA pilote',
        'expected': 'Mai 2026',
    },
    {
        'persona': 'municipal',
        'placeholder_label': 'Municipalité pilote',
        'expected': 'Juin 2026',
    },
]


# FAQ — 7 verifiable Q&A. Each question/answer must remain factually defensible
# (LPC art. 219). Answers reference public sources where applicable.
FAQ = [
    {
        'q': 'Comment DictIA est-il conforme à la Loi&nbsp;25 (RPRP)?',
        'a': 'DictIA héberge les données chez OVHcloud Beauharnois (Québec), produit un audit trail intégré conforme à l\'art.&nbsp;3.5 LPRPSP, fournit un modèle d\'évaluation des facteurs relatifs à la vie privée (EFVP) art.&nbsp;3.3, et trace les consentements art.&nbsp;14. Code source AGPL&nbsp;v3 entièrement vérifiable.',
    },
    {
        'q': 'Quelle est la différence entre DictIA Cloud et DictIA on-premise?',
        'a': 'DictIA Cloud (à partir de 369&nbsp;$/mois) est hébergé chez OVH Beauharnois — aucun matériel à gérer, opérationnel sous 48&nbsp;h. DictIA on-premise (DictIA&nbsp;8 et DictIA&nbsp;16, à partir de 3&nbsp;450&nbsp;$ + 173&nbsp;$/mois) tourne sur GPU dans vos murs — vos données ne sortent jamais de votre réseau.',
    },
    {
        'q': 'Quelle précision puis-je attendre pour le français québécois?',
        'a': 'DictIA utilise WhisperX Large-v3 fine-tuné sur audio professionnel québécois. La précision typique observée sur nos jeux de tests internes dépasse 95&nbsp;%. La méthodologie complète (corpus, métriques WER, conditions) est disponible sur demande&nbsp;: <a href="mailto:info@dictia.ca" class="grad-text underline">info@dictia.ca</a>.',
    },
    {
        'q': 'Pouvez-vous transcrire des audiences ou des interrogatoires confidentiels?',
        'a': 'Oui, à condition que vous respectiez les obligations de votre ordre (Barreau, Chambre des notaires, etc.) en matière de consentement et de confidentialité. DictIA on-premise est recommandé pour ce type d\'usage&nbsp;: les données ne quittent jamais votre infrastructure. Consultez votre ordre avant tout déploiement.',
    },
    {
        'q': 'Quels formats d\'export sont supportés?',
        'a': 'DOCX, PDF, SRT, VTT, TXT, JSON et MD. Modèles spécifiques disponibles pour avocats (interrogatoire numéroté), notaires (procès-verbal d\'assemblée) et CPA (transcription d\'entrevue). Intégrations natives&nbsp;: Word, Outlook, Teams, Notion, Obsidian, Zapier, Make, n8n.',
    },
    {
        'q': 'Que se passe-t-il si je résilie mon abonnement?',
        'a': 'Vos données restent exportables pendant 90&nbsp;jours après résiliation (DOCX/PDF/JSON). Passé ce délai, suppression définitive avec confirmation écrite — politique conforme à l\'art.&nbsp;23 LPRPSP. Aucun frais de résiliation. Détails dans nos <a href="/legal/conditions" class="grad-text underline">conditions d\'utilisation</a>.',
    },
    {
        'q': 'Le code source est-il vraiment open source AGPL&nbsp;v3?',
        'a': 'Oui. Code source complet sur <a href="https://gitea.innova-ai.ca/Innova-AI/dictia-public" target="_blank" rel="noopener" class="grad-text underline">Gitea public</a>. Conséquence pratique de l\'AGPL&nbsp;: tout fork hébergé doit publier ses modifications. Transparence vérifiable par vos auditeurs internes ou un tiers de confiance.',
    },
]


@marketing_bp.route('/')
def landing():
    """Marketing landing page — public, indexable, French-Canadian.

    Called directly (not via redirect) from src/api/recordings.py:index
    when the visitor is anonymous. See B-1.3 fix commit af29539 for context.
    """
    return render_template(
        'marketing/landing.html',
        testimonials=TESTIMONIALS,
        faq=FAQ,
    )


@marketing_bp.route('/tarifs')
def tarifs():
    """Standalone pricing page — same 3 forfaits as landing /#tarifs anchor,
    plus deep-dive comparison matrix and tarification FAQ.
    """
    return render_template('marketing/tarifs.html', faq=FAQ)


@marketing_bp.route('/fonctionnalites')
def fonctionnalites():
    """Standalone features page — deep-dive on the 6 bento features
    plus full integrations list and supported export formats.
    """
    return render_template('marketing/fonctionnalites.html')


@marketing_bp.route('/conformite')
def conformite():
    """Standalone compliance page — Loi 25, LGGRI, AGPL, EFVP details."""
    return render_template('marketing/conformite.html')


@marketing_bp.route('/contact', methods=['GET'])
def contact():
    """Contact page — pre-launch: mailto-only form (no backend submit yet).
    POST handler will be added in B-2.x once form-handling + Turnstile are wired.
    """
    return render_template('marketing/contact.html')
