<?php

return [

    'schema' => 'public',  // Schema for the Postgis extension

    /*
    |--------------------------------------------------------------------------
    | Precision des coordonnees ecrites en WKT
    |--------------------------------------------------------------------------
    |
    | 🟥 NE PAS REDESCENDRE A 6. Cette valeur est lue par `Point::toPair()` du paquet
    | mstaack/laravel-postgis, qui formate avec `sprintf('%.{precision}F')`. Elle regit
    | TOUT `toWKT()`, donc :
    |
    |   - l'ECRITURE des geometries (`SpatialTrait::createSpatialObject` insere via
    |     `ST_GeomFromText(toWKT())`) ;
    |   - les scopes spatiaux de `PostgisTrait` (distance, contains, intersects...).
    |
    | Le defaut par defaut du paquet est 6, soit environ 11 cm. Mesure du 2026-09-03 :
    |
    |   1 000 000 parcelles      92 geometries VALIDES en base rendues INVALIDES par
    |                            l'arrondi a 6 decimales (0,0092 %), et 0,51 % perdant
    |                            des sommets
    |      37 486 contours       14 rendus invalides a 6 decimales, ZERO a 9 decimales
    |
    | Cas prouve : parcelle 33956340 (31555839AB0567, Toulouse), stockee valide a 904
    | sommets, invalide (`Ring Self-intersection`) apres un aller-retour par le WKT a 6
    | decimales. GEOS levait alors une exception et le calcul basculait sur une semantique
    | de repli.
    |
    | 9 decimales valent environ 0,1 mm : bien en deca de toute signification cadastrale,
    | et surtout au-dessous du seuil qui fusionne deux sommets voisins.
    |
    | ⚠ SANS EFFET sur les sorties GeoJSON : `jsonSerialize()` du paquet utilise les
    |   flottants bruts. Les reponses d'API et les payloads carte ne changent pas de poids.
    |
    | ⚠ SANS EFFET sur les donnees deja ecrites : seules les geometries reecrites en
    |   profitent. Le benefice se materialise au prochain passage complet des taches.
    |
    | ⚠ Une geometrie LUE en base ne doit de toute facon jamais repartir par `toWKT()` :
    |   elle voyage par son identifiant (cf. core-city/CLAUDE.md).
    |
    */
    'precision' => 9,

];
