Navigation principale

Pages statiques accessibles depuis le menu et les CTA principaux.

Accueil

/

Flux principal avec filtres pré-appliqués (format = all, période = 15 jours).

Composants utilisés : filtres chips, liste d’événements, pagination conditionnelle.

Soumettre un tournoi

/tournaments/new

Builder client-side pour encoder les métadonnées et charger les decklists en masse.

Valide Tournament + Standings avant POST vers SUBMISSION_ENDPOINT.

Page de remerciement

/thank-you

Confirme la bonne réception des formulaires (feedback, contact, soumission).

Inclut CTA vers accueil et feedback board.

Paramètres de listing

35 combinaisons format/période sont pré-générées (SSR) pour garantir des temps de réponse constants.

Formats

  • All formats

    Flux complet, route = / ou /tournaments/all-<période>.

    Paramètre API : — (tous formats)

  • Standard

    Filtre Appwrite sur le format Standard.

    Paramètre API : Standard

  • Modern

    Focus sur Modern compétitif.

    Paramètre API : Modern

  • Pioneer

    Résultats Pioneer papier + online.

    Paramètre API : Pioneer

  • Legacy

    Tournois Legacy (paper only aujourd’hui).

    Paramètre API : Legacy

  • Pauper

    Events MTGO/Paper budget.

    Paramètre API : Pauper

  • Duel Commander

    Mapping API spécifique (dash obligatoire).

    Paramètre API : Duel-Commander

Périodes

  • 15 jours

    Fenêtre par défaut, landing page.

    Valeur de slug : 15d

  • 30 jours

    Suivi métrique mensuel.

    Valeur de slug : 30d

  • 90 jours

    Vue trimestrielle pour tendances longues.

    Valeur de slug : 90d

  • 1 an

    Historique annuel condensé.

    Valeur de slug : 1y

  • Full history

    Charge tout l’historique, utile pour archives.

    Valeur de slug : all

Routes dynamiques

Chaque pattern correspond à une entité métier : événements, standings, decklists.

Listing filtré

/tournaments/[format]-[period]

Route générée statiquement pour chaque combinaison format/période. Utilisée à partir de la navigation par chips.

Listing paginé

/tournaments/[format]-[period]-page-[n]

Ajoute un suffixe -page-X dès que total > 10. Pagination SSR gérée via accessible-astro Pagination.

Détails du tournoi

/tournaments/{eventId}

Charge metadata + decklists, parse JSON Scryfall et expose toggles client-side.

Decklist détaillée

/tournaments/{eventId}/{deckId}

Permalien partagé pour chaque deck, mêmes sections (Main / Side / Commander).

Workflow de soumission

Résumé des panneaux présents dans `/tournaments/new`.

  1. 1 · Métadonnées

    Nom, date, format, effectif, localisation, coverage link, contact email.

  2. 2 · Type & notes

    Radio Paper/Online + zone de texte pour logistique, lot, stream.

  3. 3 · Decklists

    Formulaire par joueur avec standing facultatif, parsing bulk à venir.

  4. 4 · Review & POST

    Prévisualisation via cartes, suppression et soumission JSON vers SUBMISSION_ENDPOINT.

Derniers tournois indexés

Exemples réels de routes `/tournaments/:id` générées côté build.

Meta & SEO

  • XML automatique

    /sitemap.xml généré via `@astrojs/sitemap` (voir `astro.config.mjs`).

  • Mise à jour

    Rebuild = régénération des routes dynamiques et de l’index XML.

  • Entités

    Event → N decklists. Les IDs Appwrite servent de slug pour toutes les pages profondes.