Claude Integration
62cc464738
feat(plugins): foundation système Plugin Karbé
...
- Modèle Prisma Plugin (key, name, description, category, version, enabled,
config JSONB, migrationsApplied, timestamps) + migration SQL
- PluginRegistry (src/lib/plugins/registry.ts) avec 12 plugins déclarés :
visuels (theme-guyane, landing-hero, landing-sections, image-gallery-seed,
demo-carbets-seed), métier (access-type, seasonality, pirogue-providers,
min-stay), contenus (content-pages, legal-pages), i18n (i18n-fr-en)
- Server helpers (server.ts) : sync, isEnabled, getEnabledKeys, toggle avec
hooks onEnable/onDisable, updateConfig, cache 5s
- Client bridge (client.tsx) : PluginProvider + useIsPluginEnabled
- Composant <IfPluginEnabled plugin=... fallback=...>
- Guard requirePluginOr404 pour pages et routes
- Page admin /admin/plugins avec table toggle par catégorie + édition config
- Route PATCH /api/admin/plugins/[key] + GET
- Layout async qui sync registry + passe enabledKeys au PluginProvider
Tous plugins en enabled=false par défaut, activation pilotée depuis l'admin.
2026-05-30 22:17:10 +00:00
d7de43a70e
Merge pull request 'SYS-19: Compléter docker-compose.prod.yml avec Postgres et MinIO co-déployés' ( #17 ) from feat/sys-19-prod-compose-postgres-minio into main
...
Merge PR#17: postgres + minio co-déployés (SYS-19)
2026-05-30 18:39:12 +00:00
6898649898
feat(prod): co-deploy postgres and minio in production compose
2026-05-30 18:36:38 +00:00
b8d14d8f9d
Merge pull request 'SYS-18 Déployer Karbé sur karbe.cosmolan.fr (MVP, Stripe TEST)' ( #16 ) from feat/sys-18-deploy-karbe-mvp-stripe-test into main
...
Merge PR#16: deployment stack (Dockerfile + Caddy + .env). À compléter avec Postgres+MinIO co-déployés via SYS-19.
2026-05-30 18:35:07 +00:00
c9be24a969
SYS-18: add production deployment stack for karbe.cosmolan.fr (Stripe test)
...
- enable Next.js standalone output and add Docker/Caddy production stack
- add production env template and deployment runbook
- add healthcheck endpoint for container supervision
- fix existing lint/type blockers discovered during validation
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-30 18:01:56 +00:00
0a366c65db
Merge pull request 'SYS-17 Ajouter lastBookedAt au modèle Carbet + endpoint' ( #15 ) from feat/carbet-last-booked into main
...
Merge PR#15: lastBookedAt + endpoint (SYS-17, test autonomie v3)
2026-05-30 17:55:18 +00:00
fcc2749d1d
feat(carbet): add lastBookedAt and endpoint
2026-05-30 17:52:41 +00:00
8d36f7008f
Avis & notes — SYS-8 ( #12 )
...
Closes SYS-8.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-30 15:12:52 +00:00
Karbé Frontend
7515981336
feat(reviews): avis & notes carbet (SYS-8)
...
- Lib reviews: constants/types (client-safe) + DB helpers (server-only)
- API POST /api/bookings/[bookingId]/review : avis locataire après séjour COMPLETED
- API POST /api/reviews/[reviewId]/response : réponse loueur
- API GET /api/carbets/[carbetId]/reviews : liste + stats agrégées
- Fiche carbet : note moyenne + nombre d'avis + liste avec réponses loueur
- Carte carbet : étoiles + note moyenne + compteur
- /mes-reservations : formulaire d'avis pour les séjours terminés du locataire
2026-05-30 15:08:55 +00:00
f0d6cdf46c
Merge pull request 'feat(payment): intégration Stripe' ( #11 ) from feat/payment-stripe into main
...
Merge PR#11: paiement Stripe
2026-05-30 15:01:11 +00:00
Claude Integration
74f39293cc
feat(payment): intégration Stripe (subscription loueur + booking checkout + webhook)
2026-05-30 15:00:21 +00:00
eb398fe3f5
Merge pull request 'Réservation : API bookings + availability (récup workspace Backend)' ( #10 ) from feat/booking into main
...
Merge PR#10: réservation (booking + availability)
2026-05-30 14:43:48 +00:00
Claude Integration
0de034022a
feat(booking): API réservation + availability + lib métier
...
Récupéré du workspace Backend (3 fichiers, 406 lignes) :
- src/lib/booking.ts : logique métier réservation
- src/app/api/bookings/route.ts : POST/GET bookings
- src/app/api/carbets/[carbetId]/availability/route.ts : calendrier dispo
Le schéma Booking/Availability était déjà dans main.
2026-05-30 14:42:29 +00:00
9f3eda8bb4
Merge pull request 'fix(build): app global-error fallback pour Next 16 prerender' ( #9 ) from fix/sys-12-global-error-v2 into main
...
Merge fix Next 16 global-error fallback
2026-05-30 10:50:39 +00:00
6985396db5
fix(build): add app global-error fallback for Next 16 prerender
2026-05-30 04:42:21 +00:00
ba0494611b
Carbets publics — recherche + fiche SSR (SYS-5) ( #8 )
...
Implémente SYS-5 : page /carbets (recherche SSR + filtres river/dates/capacité) et /carbets/[slug] (fiche SSR avec generateMetadata OG/Twitter, galerie, équipements, accès), plus SEO sitewide (robots.ts, sitemap.xml, metadataBase, title.template).
Reviewed-by: Karbé Architect <karbe-architect@cosmolan.fr>
2026-05-29 22:28:29 +00:00
Karbé Architect
c2df6722f2
feat(carbets): public search + carbet detail page (SSR/SEO)
...
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>
2026-05-29 22:24:25 +00:00
3567eb975b
Merge pull request 'CRUD Carbet (propriétaire) + pages connexion/espace-hote' ( #7 ) from feat/owner-carbet-crud into main
...
Merge PR#7: CRUD Carbet + interface propriétaire
2026-05-29 22:14:58 +00:00
d5d2ad2228
Merge main into feat/owner-carbet-crud (integrate SYS-2 schema + SYS-3 auth)
...
main now contains the Prisma schema (SYS-2) and NextAuth (SYS-3) that the
owner carbet CRUD depends on. Integrating them so the branch compiles and
the PR is cleanly mergeable.
- package.json: union of S3 SDK (@aws-sdk/client-s3) + auth deps.
- No source conflicts; espace-hote "Gérer mes carbets" link already in main.
- Verified: tsc --noEmit OK, next build OK (all carbet + auth routes compile).
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-29 21:33:57 +00:00
4f0b434f70
Merge pull request 'Auth multi-rôles (NextAuth) — sur base schéma propre' ( #6 ) from feat/auth into main
...
Merge PR#6: auth multi-rôles NextAuth
2026-05-29 21:26:32 +00:00
Claude Integration
5cb4f8f898
merge main: auth NextAuth sur base schéma propre
2026-05-29 21:20:55 +00:00
b09886529c
Merge pull request 'feat: schéma Prisma complet Karbé (SYS-2)' ( #5 ) from feat/schema-prisma into main
...
Merge PR#5: schéma Prisma complet (fondation MVP)
2026-05-29 20:38:05 +00:00
Claude Integration
175a0e1751
merge main into feat/schema-prisma: schéma complet + README de main
2026-05-29 19:11:54 +00:00
54f406053b
feat(prisma): add full Karbé schema and initial migration
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-29 16:59:35 +00:00
e464b86cb2
chore: scaffold Next.js + Prisma + Tailwind
...
Initialise le projet Karbé :
- Next.js 16 (App Router, TypeScript) + Tailwind CSS v4 + ESLint
- Prisma avec datasource PostgreSQL, schema minimal et client généré
dans src/generated/prisma (postinstall: prisma generate)
- Page d'accueil placeholder (titre + mission)
- .env.example (DATABASE_URL, NEXTAUTH_SECRET)
- README avec instructions de setup
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-29 16:59:11 +00:00
88a7d01d55
feat(auth): add multi-role NextAuth with role guards
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-29 10:46:54 +00:00
e6a9bb7d64
chore: scaffold Next.js + Prisma + Tailwind
...
Initialise le projet Karbé :
- Next.js 16 (App Router, TypeScript) + Tailwind CSS v4 + ESLint
- Prisma avec datasource PostgreSQL, schema minimal et client généré
dans src/generated/prisma (postinstall: prisma generate)
- Page d'accueil placeholder (titre + mission)
- .env.example (DATABASE_URL, NEXTAUTH_SECRET)
- README avec instructions de setup
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-29 10:45:59 +00:00
ae3f3f00d2
Merge pull request 'docs: README, roadmap produit et doc d'architecture (SYS-10)' ( #2 ) from feat/docs into main
2026-05-29 05:00:32 +00:00
b9bfc5ee32
feat(espace-hote): CRUD carbet propriétaire + upload médias S3/MinIO
...
Interface propriétaire sous /espace-hote/carbets :
- Liste, création, édition et suppression de carbets (formulaire complet :
présentation, localisation, accès pirogue, commodités).
- Upload photos/vidéos vers S3/MinIO (route handler multipart), réordonnancement
et suppression des médias, photo de couverture.
- Statut de publication (brouillon / publié / archivé) avec garde
« au moins un média avant publication ».
Réutilise le schéma Prisma (SYS-2) et l'authentification NextAuth (SYS-3) :
gating via requireRole([OWNER, ADMIN]) et contrôle de propriété sur chaque
mutation. Stockage objet configurable par variables S3_* (compatible MinIO).
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-29 04:58:12 +00:00
f9310c380f
docs: README, roadmap produit et doc d'architecture
...
- README enrichi (présentation Karbé, fonctionnalités, setup dev, env, structure, conventions Git)
- ROADMAP.md : phases MVP -> V2 -> V3
- docs/ARCHITECTURE.md : stack, modèle de données (Prisma) et flux principaux
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-29 04:42:28 +00:00
9f5cdb6c50
Merge pull request 'Scaffold initial : Next.js + Prisma + Tailwind' ( #1 ) from feat/scaffold into main
...
Merge PR #1 : scaffold initial Karbé
2026-05-29 04:33:16 +00:00
2764137d2b
chore: scaffold Next.js + Prisma + Tailwind
...
Initialise le projet Karbé :
- Next.js 16 (App Router, TypeScript) + Tailwind CSS v4 + ESLint
- Prisma avec datasource PostgreSQL, schema minimal et client généré
dans src/generated/prisma (postinstall: prisma generate)
- Page d'accueil placeholder (titre + mission)
- .env.example (DATABASE_URL, NEXTAUTH_SECRET)
- README avec instructions de setup
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-29 04:12:59 +00:00
9fbf95f3cc
Initial commit
2026-05-29 03:57:34 +00:00