Aller au contenu

Modèle de données

Le plugin Irisolaris Map stocke ses données en combinant des structures natives WordPress (types de contenu personnalisés, taxonomies, options, transients) et deux tables de base de données personnalisées. Cette page catalogue chaque structure de données utilisée par le plugin.

CPTSlugPublicRESTArchiveIcône de menuSupports
irisolaris_plantcentrale-pvOuiOuiOuidashicons-admin-sitetitle, editor, thumbnail, custom-fields
irisolaris_leaddemande-eligibiliteNonOuiNon(sous le menu centrales)title, custom-fields

Compteurs en production : 2k+ centrales, 0 leads, 23 pages, 5 articles.

Les centrales sont classifiées au moyen de deux taxonomies hiérarchiques pour le statut et la région géographique.

TaxonomieSlugTypes de contenuHiérarchiqueColonne admin
irisolaris_statusstatut-centraleirisolaris_plantOuiOui
irisolaris_regionregion-centraleirisolaris_plantOuiOui

Statut (irisolaris_status) :

  • En construction
  • En service
  • En développement

Région (irisolaris_region) : 18 régions françaises (13 métropolitaines + 5 territoires d’outre-mer)

Chaque type de contenu personnalisé possède un ensemble de clés meta qui stockent ses données métier. Les meta des centrales sont réparties entre les champs exposés publiquement et les champs sensibles réservés à un usage côté serveur.

Clé metaTypeDescription
_irisolaris_plant_nametextNom de la centrale
_irisolaris_plant_latfloatLatitude
_irisolaris_plant_lngfloatLongitude
_irisolaris_plant_addresstextAdresse postale
_irisolaris_plant_citytextVille
_irisolaris_plant_postcodetextCode postal
_irisolaris_plant_regiontextRégion
_irisolaris_plant_powertextPuissance (kW)
_irisolaris_plant_statustextStatut de la centrale
_irisolaris_plant_activecheckbox (1/0)Indicateur de visibilité
_irisolaris_plant_work_idtextIdentifiant chantier unique (clé d’import)
_irisolaris_plant_project_nametextNom du projet
_irisolaris_plant_spvtextSPV (Special Purpose Vehicle)
_irisolaris_plant_departmenttextDépartement
_irisolaris_plant_perimetertextPérimètre (km)
_irisolaris_plant_tarifftextTarif
_irisolaris_plant_prmtextPRM (référence compteur)
Clé metaTypeDescription
_irisolaris_lead_nametextNom de la personne
_irisolaris_lead_emailtextE-mail
_irisolaris_lead_phonetextTéléphone
_irisolaris_lead_addresstextAdresse
_irisolaris_lead_latfloatLatitude
_irisolaris_lead_lngfloatLongitude
_irisolaris_lead_citytextVille
_irisolaris_lead_postcodetextCode postal
_irisolaris_lead_eligiblecheckbox (1/0)Résultat d’éligibilité
_irisolaris_lead_datedatetimeDate de création
_irisolaris_lead_expirationdateDate d’expiration RGPD

Le plugin enregistre 10 options pour contrôler l’affichage de la carte, les seuils d’éligibilité et le comportement du système. Toutes sont configurables via la page de paramètres d’administration.

OptionValeur par défautDescription
irisolaris_map_max_distance2 (km)Distance maximale d’éligibilité
irisolaris_map_lead_expiration180 (jours)Durée de conservation des leads (RGPD)
irisolaris_map_default_lat46.603354Latitude du centre de la carte (centre de la France)
irisolaris_map_default_lng1.888334Longitude du centre de la carte
irisolaris_map_default_zoom5Niveau de zoom par défaut
irisolaris_map_tile_urlURL OpenStreetMapURL du service de tuiles
irisolaris_map_attributionOSM contributorsTexte d’attribution de la carte
irisolaris_map_notification_emailadmin_emailE-mail de notification d’éligibilité
irisolaris_plants_cache_version1Compteur de version du cache (auto-incrémenté)
irisolaris_map_remove_data_on_uninstallfalseSupprimer les données de densité à la désinstallation

Valeurs en production : La plupart des options utilisent les valeurs par défaut du code. La version du cache est auto-incrémentée (chaque sauvegarde/suppression de centrale l’incrémente). La durée de conservation des leads est fixée à 180 jours.

Au-delà des options ci-dessus, le plugin fait un usage intensif des transients WordPress pour mettre en cache les opérations coûteuses et suivre les processus d’import de longue durée.

PatternTTLRôle
irisolaris_plants_geojson_{md5}7 jours (complet), 1 jour (filtré)Cache des données GeoJSON des centrales
irisolaris_import_{id}1 heureÉtat du lot d’import de centrales
irisolaris_import_finalize_{id}1 heureÉtat de finalisation de l’import
irisolaris_removal_{id}1 heureÉtat du lot de suppression en masse
irisolaris_density_import_{id}1 heureÉtat du lot d’import de densité
irisolaris_density_finalize_{id}1 heureÉtat de finalisation de la densité

En complément des tables WordPress standard, le plugin crée deux tables personnalisées pour les données qui ne s’intègrent pas bien dans le modèle post/meta.

Stocke l’historique des opérations d’import.

ColonneTypeDescription
idmediumint(9) AUTO_INCREMENTClé primaire
import_datedatetimeDate d’exécution de l’import
import_typevarchar(50)Type d’import
file_namevarchar(255)Nom du fichier original
items_countint(11)Nombre total d’éléments
success_countint(11)Imports réussis
error_countint(11)Imports échoués
errorslongtextDétails des erreurs (sérialisés)
user_idbigint(20)ID utilisateur WordPress

Stocke les données de classification de densité des communes INSEE.

ColonneTypeDescription
codgeovarchar(10) PKCode commune INSEE
libgeovarchar(255)Nom de la commune
densdecimal(10,2)Densité de population
libdensvarchar(255)Libellé de la catégorie de densité
pmun22decimal(10,2)Population municipale 2022
p1decimal(10,2)Indicateur de population p1
p2decimal(10,2)Indicateur de population p2
p3decimal(10,2)Indicateur de population p3
dens_aavdecimal(10,2)Densité AAV
libdens_aavvarchar(255)Libellé de densité AAV
dens7decimal(10,2) INDEXEDClassification de densité à 7 niveaux
libdens7varchar(255)Libellé de densité à 7 niveaux

La colonne dens7 est le champ principal utilisé pour le calcul des seuils de distance d’éligibilité.

Enfin, le plugin étend le système de rôles natif de WordPress plutôt que de créer des rôles personnalisés. Les capacités sont ajoutées aux rôles existants lors de l’activation du plugin.

Administrateur — CRUD complet sur irisolaris_plant et irisolaris_lead (11 capacités chacun) :

  • edit_irisolaris_plants, edit_others_irisolaris_plants, publish_irisolaris_plants, read_private_irisolaris_plants, delete_irisolaris_plants, delete_others_irisolaris_plants, delete_published_irisolaris_plants, delete_private_irisolaris_plants, edit_published_irisolaris_plants, edit_private_irisolaris_plants, read_irisolaris_plants
  • Même pattern pour irisolaris_leads

Éditeur — Lecture/édition de irisolaris_plant (6 capacités), lecture seule de irisolaris_lead (2 capacités).