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>
This commit is contained in:
parent
2764137d2b
commit
b9bfc5ee32
16 changed files with 2577 additions and 15 deletions
14
.env.example
14
.env.example
|
|
@ -5,3 +5,17 @@ DATABASE_URL="postgresql://user:password@localhost:5432/karbe?schema=public"
|
|||
|
||||
# Secret pour NextAuth (à générer, ex: `openssl rand -base64 32`).
|
||||
NEXTAUTH_SECRET="changeme"
|
||||
AUTH_SECRET="changeme"
|
||||
|
||||
# Stockage objet des médias (S3 ou MinIO). Compatible AWS S3 et MinIO.
|
||||
# Pour MinIO en local : renseignez S3_ENDPOINT (ex: http://localhost:9000)
|
||||
# et laissez S3_FORCE_PATH_STYLE à "true".
|
||||
S3_ENDPOINT="http://localhost:9000"
|
||||
S3_REGION="us-east-1"
|
||||
S3_BUCKET="karbe-medias"
|
||||
S3_ACCESS_KEY_ID="changeme"
|
||||
S3_SECRET_ACCESS_KEY="changeme"
|
||||
# URL publique de base servant les objets (CDN ou bucket public).
|
||||
# Laissez vide pour dériver l'URL depuis S3_ENDPOINT + bucket.
|
||||
S3_PUBLIC_URL=""
|
||||
S3_FORCE_PATH_STYLE="true"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue