---
description: Auditer le schéma réel — colonnes/tables à ne pas confondre ; jamais de code enseigne en dur
alwaysApply: true
---

# Schéma — colonnes et tables réelles

## Principe
- Ne JAMAIS inventer un nom de colonne. Auditer le schéma (migration / `DESCRIBE` / modèle) avant toute requête.

## Colonnes — ne pas confondre
| Table | Colonne correcte | N'existe PAS |
|-------|------------------|--------------|
| `programmes` | `libelle` | `nom` (#988 prod) |
| `marches` | `intitule` | `nom`, `libelle` |
| `etiquettes` | `libelle` | `nom` |
| `fournisseurs` | `nom` | — (correct) |
| `journal_mises_a_jour` | `date_maj` | — |
| `depot_factures` | `facture_id` | — |

## Tables — ne pas confondre
- `lots_commerciaux` — la table `lots` est une coquille vestigiale (3 colonnes)
- `taches_suivi` ≠ `tasks`
- `actes_fonciers` ≠ `lot_acte_preparations`
- `offres_foncieres` ≠ `offres_commerciales` ≠ `appels_offres`

## Enseignes — jamais de code en dur
- INTERDIT : `=== 'HECTARE'`, `in_array` sur des codes, constante métier.
- TOUJOURS : `Enseigne::aModule()` ou la config d'enseigne.
- HECTARE = lotissement ; ENVOL = promotion VEFA — deux métiers, un ERP.
