---
suivi: 1126
date: 2026-07-31
sujet: Foncier — offre multi-propriétaires, décomposition prix, documents dépôt
chantier: module-foncier
type: feature
statut: poussé
hash: 1a4e8749
fichiers:
  - database/migrations/2026_07_31_140000_create_offre_proprietaire_pivot.php
  - database/migrations/2026_07_31_140100_create_types_composantes_prix_table.php
  - database/migrations/2026_07_31_140200_create_offre_composantes_prix_table.php
  - app/Models/OffreFonciere.php
  - app/Models/TypeComposantePrix.php
  - app/Models/OffreComposantePrix.php
  - app/Http/Controllers/Foncier/OffreFonciereController.php
  - app/Http/Controllers/Foncier/DossierFoncierController.php
  - app/Http/Controllers/Admin/TypesComposantesPrixController.php
  - app/Http/Controllers/Admin/AdminController.php
  - app/Support/Foncier/Alertes/Types/OffreExpirationType.php
  - resources/js/Pages/Foncier/Dossiers/Show.vue
  - resources/js/Pages/Foncier/Offres/Show.vue
  - resources/js/Components/Foncier/EntityDocumentsPanel.vue
  - resources/js/Pages/Admin/TypesComposantesPrix.vue
  - resources/js/Pages/Admin/Index.vue
  - routes/web.php
  - tests/Feature/Foncier/FoncierOffreMultiComposantes*.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
---

## PROMPT ENVOYÉ

SUIVI #1126 — multi-destinataires, décomposition prix admin, retrait mode_prix/URL,
surface auto, DnD documents.

## AUDIT `proprietaire_id` (avant code)

Usages recensés : OffreFonciere (fillable + BelongsTo), OffreFonciereController
(store/update/assert/serialize), DossierFoncierController (eager + serialize +
indicateur), OffreExpirationType (message), Vue Dossiers/Show + Offres/Show,
tests formels/périmètre/#1125. Colonne conservée (1er destinataire), pivot =
source de vérité. BC : merge `proprietaire_id` → `proprietaire_ids` + boot
created sync pivot.

## AUDIT DnD

Pas de DropZone partagé. Patterns : Location/Public/Formulaire (1 fichier),
DepotFactures/Index (dragCounter + dashed + batch). Réutilisé pour
EntityDocumentsPanel : dragCounter / zone dashed / mêmes limites
document_limits (10 Mo / 120 Mo #1115), pipeline storeMany existant.

## AMENDE R2 #1078

Offre adressable à N indivisaires via `offre_proprietaire`.

## DÉPLOIEMENT

```bash
git pull origin main
php artisan migrate --force
php artisan optimize:clear
php artisan journal:sync
php artisan view:clear
```
