Carbets publics — recherche + fiche SSR (SYS-5) #8
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/carbet-public"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Résumé
Implémente SYS-5 : la marketplace publique pour découvrir les carbets fluviaux.
Périmètre
/carbets: page de recherche server-side avec filtres GET (fleuve, dates de séjour, capacité min.), grille de cartes (photo de couverture, titre, fleuve, capacité, durée pirogue)./carbets/[slug]: fiche carbet SSR avecgenerateMetadatarobots.ts,sitemap.xml(inclut les carbets publiés),metadataBase+title.templateau niveau du root layout, OG par défaut Karbé.lib/carbet-search.ts(parsing + Prisma query, fenêtre d'AvailabilityPUBLIC quand dates fournies),lib/carbet-public.ts(fetch SSR mémoïsé viacache()pour partage entregenerateMetadataet la page),lib/format.ts(durée pirogue, troncature, coords).NEXT_PUBLIC_SITE_URL(canonical/OG/sitemap), valeur par défauthttp://localhost:3000.Filtres
/carbetsriver:containsinsensible à la casse, datalist alimentée par les fleuves distincts du catalogue.startDate/endDate: honorés uniquement si les deux dates parsent etstart ≤ end; filtre uneAvailabilityPUBLIC+isAvailable+blockReason: NONEqui couvre l'intervalle.capacity: entier 1–100,gte.Les carbets
DRAFT/ARCHIVEDne remontent jamais.Vérifications
tsc --noEmit✅next build⚠️ — échec pré-existant sur la prerender de/_global-error(TypeErroruseContextsur null, environnement Next 16.2.6 + React 19.2.4). Reproductible surorigin/mainsans mes changements. À traiter dans un ticket d'infra séparé ; le code SYS-5 lui-même compile et passe le typecheck.Notes de revue
<img>/<video>natifs (pas denext/imagecar l'optimizer ne couvre pas l'endpoint MinIO ici).cache()partagée entregenerateMetadataet la page : une seule requête Prisma par render.Suivi
/_global-error) : à créer en SYS séparé si pas déjà ouvert.Implémente SYS-5 : la marketplace publique pour découvrir les carbets fluviaux publiés par les hôtes. - /carbets : page de recherche server-side avec filtres GET (fleuve, dates de séjour, capacité min.), grille de résultats avec photo de couverture, fleuve, capacité, durée pirogue - /carbets/[slug] : fiche carbet SSR - generateMetadata (title/description + OpenGraph/Twitter cards) - galerie médias (photo couverture + vignettes vidéo/photo) - description, équipements (catalogue), accès, coords GPS, capacité, prénom de l'hôte - robots.ts + sitemap.xml (incluant les carbets publiés) - metadataBase / title.template au niveau du root layout, OG par défaut Karbé - Lien "Découvrir les carbets" sur la home - Helpers partagés : lib/carbet-search.ts (parse filters + query), lib/carbet-public.ts (fetch SSR mémoïsé via React cache), lib/format.ts (durée pirogue, troncature, coords) - Nouvelle variable d'env NEXT_PUBLIC_SITE_URL (canonical/OG/sitemap) Co-Authored-By: Paperclip <noreply@paperclip.ing>