|
All checks were successful
CI / test (pull_request) Successful in 2m18s
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>
|
||
|---|---|---|
| .. | ||
| 20260529000000_init_karbe_schema | ||
| 20260530173000_add_last_booked_at | ||
| 20260530200000_add_plugin_system | ||
| 20260531000000_add_access_type | ||
| 20260531120000_add_seasonality_and_min_stay | ||
| 20260531180000_add_content_pages | ||
| 20260531200000_add_pirogue_providers | ||
| 20260531220000_content_page_composite_key | ||
| 20260601000000_audit_and_settings | ||
| 20260601060000_password_reset_token | ||
| 20260601120000_translation_overrides | ||
| 20260601150000_carbet_nightly_price | ||
| 20260602030000_operational_criteria | ||
| 20260602100000_favorite | ||
| 20260603000000_rental_marketplace | ||
| 20260603100000_rental_item_media | ||
| migration_lock.toml | ||