karbe/prisma/migrations
Ubuntu 9da58288dc
All checks were successful
CI / test (pull_request) Successful in 2m18s
feat(rental): Sprint F — photos & vidéos items rental
Nouveau modèle `RentalItemMedia` parallèle de `Media` (carbet) :
- s3Key / s3Url / sortOrder / type (PHOTO|VIDEO), cascade sur RentalItem
- Migration `20260603100000_rental_item_media` appliquée

Endpoints upload dédiés (mêmes conventions que carbet) :
- POST /api/uploads/rental-presign + POST /api/uploads/rental-finalize
  → auth par canManageRentalProvider (admin OR provider manager)
  → s3Key préfixé `rental-items/<itemId>/`
  → finalize hydrate `RentalItem.imageUrl` avec la première PHOTO
  → générateur de variantes (320/800/1600 via sharp) en best-effort
- DELETE /api/rental-media/[id] + POST /api/rental-media/reorder
  → reorder rafraîchit imageUrl (cover = sortOrder 0)

`MediaUploader` rendu générique :
- Nouveau prop `scope: {kind: "carbet" | "rental-item", id}` ; conserve
  rétro-compat `carbetId` (deprecated)
- Endpoints + payload key (`carbetId` ↔ `itemId`) calculés via
  `endpointsFor()`. Aucun changement de comportement côté carbet.

UI branchée :
- /admin/rental-items/[id] : section « Photos & vidéos » au-dessus du
  form, alimentée par `item.media` chargé par `getRentalItemForAdmin`
- /espace-prestataire/items/[itemId] : idem, charge via `getHostItem`
- /materiel/[itemId] : nouveau `<ItemGallery />` (thumbs cliquables +
  support vidéo). Fallback : ancien `item.imageUrl` si pas de média
  dédié (compat seed).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-02 09:34:09 +00:00
..
20260529000000_init_karbe_schema feat(prisma): add full Karbé schema and initial migration 2026-05-29 16:59:35 +00:00
20260530173000_add_last_booked_at feat(carbet): add lastBookedAt and endpoint 2026-05-30 17:52:41 +00:00
20260530200000_add_plugin_system feat(plugins): foundation système Plugin Karbé 2026-05-30 22:17:10 +00:00
20260531000000_add_access_type feat(plugins): access-type + demo-carbets-seed (Phase 3.1 + 2.5) 2026-05-31 02:56:25 +00:00
20260531120000_add_seasonality_and_min_stay feat(plugins): seasonality + min-stay (Phase 3.2 + 3.4) 2026-05-31 08:50:26 +00:00
20260531180000_add_content_pages feat(plugins): content-pages + legal-pages (Phase 4.1 + 4.3) 2026-05-31 10:12:13 +00:00
20260531200000_add_pirogue_providers feat(plugin): pirogue-providers (Phase 3.3) 2026-05-31 11:29:29 +00:00
20260531220000_content_page_composite_key feat: ContentPage bilingue (PK composite slug+lang) + seed pages EN 2026-05-31 11:45:47 +00:00
20260601000000_audit_and_settings feat(admin): Sprint 5 — Audit log + Settings (gouvernance) 2026-06-01 00:13:49 +00:00
20260601060000_password_reset_token feat: reset password + page mon-compte (RGPD) + facettes recherche (prix max, équipements) 2026-06-01 10:16:37 +00:00
20260601120000_translation_overrides feat(admin): /admin/home — éditeur des textes de la page d'accueil (FR+EN, override DB) 2026-06-01 01:10:49 +00:00
20260601150000_carbet_nightly_price feat(p0): prix/nuit + booking form public + /inscription + /reservations/[id] 2026-06-01 01:34:00 +00:00
20260602030000_operational_criteria feat: 4 critères opérationnels (route/capacité/électricité/GSM) + presets profils + badges 2026-06-02 02:26:02 +00:00
20260602100000_favorite feat: « Au fil de l'eau » — Reels mobile + uploader pro + favoris 2026-06-02 00:27:16 +00:00
20260603000000_rental_marketplace feat(rental): Sprint A — modèle Prisma + admin CRUD + seed 13 items 2026-06-02 03:26:04 +00:00
20260603100000_rental_item_media feat(rental): Sprint F — photos & vidéos items rental 2026-06-02 09:34:09 +00:00
migration_lock.toml feat(prisma): add full Karbé schema and initial migration 2026-05-29 16:59:35 +00:00