From 221ec759fcabf76d56d75cd54e541bc0db751fea Mon Sep 17 00:00:00 2001 From: Amandine Jacquelin Date: Wed, 15 May 2024 17:14:30 +0200 Subject: [PATCH 01/46] Fusion indicateurs BDD --- .../sqitch/deploy/indicateur/fusion.sql | 2497 ++++++++++++++ .../sqitch/revert/indicateur/fusion.sql | 2865 +++++++++++++++++ data_layer/sqitch/sqitch.plan | 1 + .../sqitch/verify/indicateur/fusion.sql | 7 + 4 files changed, 5370 insertions(+) create mode 100644 data_layer/sqitch/deploy/indicateur/fusion.sql create mode 100644 data_layer/sqitch/revert/indicateur/fusion.sql create mode 100644 data_layer/sqitch/verify/indicateur/fusion.sql diff --git a/data_layer/sqitch/deploy/indicateur/fusion.sql b/data_layer/sqitch/deploy/indicateur/fusion.sql new file mode 100644 index 0000000000..d75f8da317 --- /dev/null +++ b/data_layer/sqitch/deploy/indicateur/fusion.sql @@ -0,0 +1,2497 @@ +-- Deploy tet:indicateur/fusion to pg + +BEGIN; + +-- Copie les tables indicateurs dans le schéma archive +create table archive.action_impact_indicateur as select * from public.action_impact_indicateur; +create table archive.fiche_action_indicateur as select * from public.fiche_action_indicateur; +create table archive.indicateur_action as select * from public.indicateur_action; +create table archive.indicateur_confidentiel as select * from public.indicateur_confidentiel; +create table archive.indicateur_definition as select * from public.indicateur_definition; +create table archive.indicateur_objectif as select * from public.indicateur_objectif; +create table archive.indicateur_objectif_commentaire as select * from public.indicateur_objectif_commentaire; +create table archive.indicateur_perso_objectif_commentaire as select * from public.indicateur_perso_objectif_commentaire; +create table archive.indicateur_perso_resultat_commentaire as select * from public.indicateur_perso_resultat_commentaire; +create table archive.indicateur_personnalise_definition as select * from public.indicateur_personnalise_definition; +create table archive.indicateur_personnalise_objectif as select * from public.indicateur_personnalise_objectif; +create table archive.indicateur_personnalise_resultat as select * from public.indicateur_personnalise_resultat; +create table archive.indicateur_personnalise_thematique as select * from public.indicateur_personnalise_thematique; +create table archive.indicateur_pilote as select * from public.indicateur_pilote; +create table archive.indicateur_resultat as select * from public.indicateur_resultat; +create table archive.indicateur_resultat_commentaire as select * from public.indicateur_resultat_commentaire; +create table archive.indicateur_resultat_import as select * from public.indicateur_resultat_import; +create table archive.indicateur_service_tag as select * from public.indicateur_service_tag; + +-- Supprime les rls utilisant une fonction qui sera supprimée +drop policy allow_read on indicateur_personnalise_thematique; +drop policy allow_update on indicateur_personnalise_thematique; +drop policy allow_delete on indicateur_personnalise_thematique; +drop policy allow_insert on indicateur_personnalise_thematique; +drop policy allow_read on indicateur_personnalise_resultat; +drop policy allow_read on indicateur_resultat; +drop policy allow_read on indicateur_pilote; +drop policy allow_update on indicateur_pilote; +drop policy allow_delete on indicateur_pilote; +drop policy allow_insert on indicateur_pilote; +drop policy allow_read on indicateur_service_tag; +drop policy allow_update on indicateur_service_tag; +drop policy allow_delete on indicateur_service_tag; +drop policy allow_insert on indicateur_service_tag; +drop policy allow_read on indicateur_confidentiel; +drop policy allow_update on indicateur_confidentiel; +drop policy allow_delete on indicateur_confidentiel; +drop policy allow_insert on indicateur_confidentiel; + +-- Supprime les éléments concernés par la suppression des tables +drop index indicateur_definition_fts; +drop index indicateur_personnalise_definition_fts; +drop function if exists public.fiche_action_service_tag(fiches_action); +drop function if exists public.fiche_action_structure_tag(fiches_action); +drop function if exists public.fiche_action_personne_tag(fiches_action); +drop function if exists public.fiche_action_pilote(fiches_action); +drop function if exists public.fiche_action_axe(fiches_action); +drop function public.axes; +drop function public.cherchable(indicateur_definition); +drop function public.cherchable(indicateur_definitions); -- Utilise public.indicateur_definitions +drop function public.cherchable(indicateur_personnalise_definition); +drop function public.confidentiel; +drop function public.create_fiche; +drop function public.definition_perso; -- Utilise public.indicateur_definitions +drop trigger delete on public.fiche_action; -- Utilise public.delete_fiche_action +drop function public.delete_fiche_action; -- trigger +drop function if exists public.delete_indicateur_personnalise_definition; +drop function public.enfants(indicateur_definition); +drop function public.enfants(indicateur_definitions); -- Utilise public.indicateur_definitions +drop function public.fiche_resume(fiche_action_indicateur); +drop function public.fiches_non_classees; -- Utilise public.indicateur_definitions +drop function public.import_sources; -- Utilise public.indicateur_definitions +drop function public.indicateur_action; -- Utilise public.indicateur_definitions +drop function public.indicateurs_gaz_effet_serre; +drop function public.personne; +drop function public.pilotes; -- Utilise public.indicateur_defintions +drop function public.plan_action_export; -- Utilise public.fiches_action +drop view public.indicateur_summary; -- Utilise public.rempli et private.rempli +drop function public.rempli(indicateur_definitions); -- Utilise private.rempli +drop trigger rewrite_indicateur_id on public.indicateur_confidentiel; -- Utilise public.rewrite_indicateur_id +drop trigger rewrite_indicateur_id on public.indicateur_objectif; -- Utilise public.rewrite_indicateur_id +drop trigger rewrite_indicateur_id on public.indicateur_pilote; -- Utilise public.rewrite_indicateur_id +drop trigger rewrite_indicateur_id on public.indicateur_resultat; -- Utilise public.rewrite_indicateur_id +drop trigger rewrite_indicateur_id on public.indicateur_service_tag; -- Utilise public.rewrite_indicateur_id +drop trigger rewrite_indicateur_id on public.fiche_action_indicateur; -- Utilise public.rewrite_indicateur_id +drop function public.rewrite_indicateur_id; -- trigger +drop function public.services; -- Utilise public.indicateur_definitions +drop function public.thematiques; -- Utilise public.indicateur_definitions +drop trigger upsert on public.fiches_action; -- Utilise public.upsert_fiche_action +drop function public.upsert_fiche_action; -- Utilise private.ajouter_indicateur & trigger +drop function private.ajouter_indicateur; +drop function private.enlever_indicateur; +drop function private.indicateur_personnalise_collectivite_id; +drop function private.is_valeur_confidentielle(integer, indicateur_id, integer); +drop function private.is_valeur_confidentielle(integer, integer); +drop function private.rempli(integer); +drop function private.rempli(integer, indicateur_id); +drop trigger after_indicateurs_json on indicateurs_json; -- Utilise private.upsert_indicateurs_after_json_insert +drop function if exists private.upsert_indicateurs_after_json_insert; -- Utilise private.upsert_indicateurs & trigger +drop function if exists private.upsert_indicateurs; +drop function stats.refresh_reporting; -- Utilise stats indicateurs +drop function stats.refresh_views; -- Utilise stats indicateurs +drop function stats.refresh_views_crm; -- Utilise stats indicateurs +drop function public.definition_referentiel; -- Utilise public.indicateur_definitions +drop function private.get_personne(indicateur_pilote); +drop function private.can_write(indicateur_pilote); +drop function private.can_read(indicateur_pilote); +drop function private.can_write(indicateur_service_tag); +drop function private.can_read(indicateur_service_tag); +drop function private.can_write(indicateur_confidentiel); +drop function private.can_read(indicateur_confidentiel); +drop view public.crm_indicateurs; -- Utilise stats.crm_indicateurs +drop materialized view stats.crm_indicateurs; +drop view public.crm_usages; -- Utilise stats.crm_usages +drop materialized view stats.crm_usages; +drop view public.fiches_action; -- Utilise private.fiches_action +drop view private.fiches_action; +drop view public.indicateur_definitions; +drop view public.indicateur_rempli; +drop view public.indicateurs; +drop view public.indicateurs_collectivite; +drop view public.stats_evolution_indicateur_referentiel; -- Utilise stats.evolution_indicateur_referentiel +drop materialized view stats.evolution_indicateur_referentiel; +drop view public.stats_evolution_resultat_indicateur_personnalise; -- Utilise stats.evolution_resultat_indicateur_personnalise +drop materialized view stats.evolution_resultat_indicateur_personnalise; +drop view public.stats_evolution_resultat_indicateur_referentiel; -- Utilise stats.evolution_resultat_indicateur_referentiel +drop materialized view stats.evolution_resultat_indicateur_referentiel; +drop view public.stats_locales_evolution_collectivite_avec_indicateur; -- Utilise stats.locales_evolution_collectivite_avec_indicateur_referentiel +drop materialized view stats.locales_evolution_collectivite_avec_indicateur_referentiel; +drop view public.stats_locales_evolution_indicateur_referentiel; -- Utilise stats.locales_evolution_indicateur_referentiel +drop materialized view stats.locales_evolution_indicateur_referentiel; +drop view public.stats_locales_evolution_resultat_indicateur_personnalise; -- Utilise stats.locales_evolution_resultat_indicateur_personnalise +drop materialized view stats.locales_evolution_resultat_indicateur_personnalise; +drop view public.stats_locales_evolution_resultat_indicateur_referentiel; -- Utilise stats.locales_evolution_resultat_indicateur_referentiel +drop materialized view stats.locales_evolution_resultat_indicateur_referentiel; +drop materialized view stats.report_indicateur_personnalise; +drop materialized view stats.report_indicateur_resultat; + +-- Supprime les tables indicateurs du schéma public +drop table public.action_impact_indicateur; +drop table public.fiche_action_indicateur; +drop table public.indicateur_action; +drop table public.indicateur_pilote; +drop table public.indicateur_service_tag; +drop table public.indicateur_personnalise_thematique; +drop table public.indicateur_confidentiel; +drop table public.indicateur_resultat; +drop table public.indicateur_resultat_commentaire; +drop table public.indicateur_resultat_import; +drop table public.indicateur_objectif; +drop table public.indicateur_objectif_commentaire; +drop table public.indicateur_definition; +drop table public.indicateur_parent; +drop table public.indicateur_personnalise_resultat; +drop table public.indicateur_perso_resultat_commentaire; +drop table public.indicateur_personnalise_objectif; +drop table public.indicateur_perso_objectif_commentaire; +drop table public.indicateur_personnalise_definition; +drop table public.indicateur_terristory_json; + +-- Renomme les types indicateurs en conflit +alter type indicateur_thematique rename to old_indicateur_thematique; + +-- CREATION DES TABLES -- +-- Modifie la table indicateur_source pour ajouter un attribut ordre +alter table public.indicateur_source add column ordre_affichage integer; + +create table public.groupement +( + id serial primary key, + nom text not null +); +comment on table public.groupement is 'Groupement de collectivités'; + +create table public.groupement_collectivite +( + groupement_id integer references groupement on delete cascade, + collectivite_id integer references collectivite on delete cascade, + primary key (groupement_id, collectivite_id) +); +comment on table public.groupement_collectivite is 'Table de passage entre un groupement et ses collectivités'; + +create table public.indicateur_source_metadonnee +( + id serial primary key, + source_id text references indicateur_source not null, + date_version timestamp not null, + nom_donnees text, + diffuseur text, + producteur text, + methodologie text, + limites text +); +comment on table public.indicateur_source_metadonnee is + 'Métadonnées d''une version d''une source pour les indicateurs'; + +-- Modifie la table indicateur_definition pour accueillir les indicateurs personnalisés +create table public.indicateur_definition +( + id serial primary key, + groupement_id integer references public.groupement on delete cascade, + collectivite_id integer references public.collectivite on delete cascade, + identifiant_referentiel text, + titre text not null, + titre_long text, + description text, + unite text not null, + borne_min double precision, + borne_max double precision, + participation_score boolean default false not null, + sans_valeur_utilisateur boolean default false not null, + valeur_calcule text, + modified_at timestamp with time zone default CURRENT_TIMESTAMP not null, + created_at timestamp with time zone default CURRENT_TIMESTAMP not null, + modified_by uuid default auth.uid() references auth.users, + created_by uuid default auth.uid() references auth.users, + old_id integer, + unique(identifiant_referentiel) +); +comment on table public.indicateur_definition is + 'Définition d''un indicateur. + Peut être commun (indicateur prédéfini) ou propre à une collectivité (indicateur personnalisé)'; +comment on column public.indicateur_definition.groupement_id is + 'Renseigné si l''indicateur appartient à un groupement de collectivité'; +comment on column public.indicateur_definition.collectivite_id is + 'Renseigné si l''indicateur appartient à une collectivité'; +comment on column public.indicateur_definition.identifiant_referentiel is + 'Ancien identifiant des indicateurs prédéfinis. Est affiché dans les url et permet une recherche rapide'; +comment on column public.indicateur_definition.valeur_calcule is + 'Formule pour calculer automatiquement des valeurs selon les liens de parentés'; + +create trigger modified_at + before insert or update + on indicateur_definition + for each row +execute procedure update_modified_at(); + +create trigger modified_by + before insert or update + on indicateur_definition + for each row +execute procedure enforce_modified_by(); + +create table public.indicateur_valeur +( + id serial primary key, + indicateur_id integer references public.indicateur_definition on delete cascade not null, + collectivite_id integer references public.collectivite on delete cascade not null, + date_valeur date not null, + metadonnee_id integer references public.indicateur_source_metadonnee, + resultat double precision, + resultat_commentaire text, + objectif double precision, + objectif_commentaire text, + estimation double precision, + modified_at timestamp with time zone default CURRENT_TIMESTAMP not null, + created_at timestamp with time zone default CURRENT_TIMESTAMP not null, + modified_by uuid default auth.uid() references auth.users, + created_by uuid default auth.uid() references auth.users +); +comment on table public.indicateur_valeur is + 'Valeurs d''un indicateur, d''une collectivité et d''une date + (et d''une version de source de données dans le cas de valeurs importés)'; +comment on column public.indicateur_valeur.metadonnee_id is + 'Lien vers une version d''une source. Renseigné pour des valeurs importés, vide pour des valeurs utilisateur'; +comment on column public.indicateur_valeur.resultat is + 'Résultat d''une année et d''un indicateur observé par une collectivité'; +comment on column public.indicateur_valeur.objectif is + 'Objectif d''une année et d''un indicateur prévu par une collectivité'; +comment on column public.indicateur_valeur.estimation is + 'Estimation du résultat d''une année et d''un indicateur prévu pour une collectivité'; + +create unique index unique_indicateur_valeur_utilisateur + on public.indicateur_valeur (indicateur_id, collectivite_id, date_valeur) + where metadonnee_id is null; + +create unique index unique_indicateur_valeur_importee + on public.indicateur_valeur (indicateur_id, collectivite_id, date_valeur, metadonnee_id) + where metadonnee_id is not null; + +create trigger modified_at + before insert or update + on indicateur_valeur + for each row +execute procedure update_modified_at(); + +create trigger modified_by + before insert or update + on indicateur_valeur + for each row +execute procedure enforce_modified_by(); + +create table public.indicateur_groupe +( + parent integer references public.indicateur_definition on delete cascade not null, + enfant integer references public.indicateur_definition on delete cascade not null, + primary key (parent, enfant) +); +comment on table public.indicateur_groupe is + 'Liens de parenté entre les indicateurs.'; + +create table public.indicateur_collectivite +( + indicateur_id integer references public.indicateur_definition on delete cascade not null, + collectivite_id integer references public.collectivite on delete cascade not null, + commentaire text, + confidentiel boolean default false not null, + favoris boolean default false not null, + primary key (indicateur_id, collectivite_id) +); +comment on table public.indicateur_collectivite is + 'Infos supplémentaire propre à une collectivité pour un indicateur'; + +create table public.categorie_tag +( + id serial primary key, + groupement_id integer references public.groupement on delete cascade, + collectivite_id integer references public.collectivite on delete cascade, + nom text not null, + visible boolean not null default true, + created_at timestamp with time zone default CURRENT_TIMESTAMP not null, + created_by uuid default auth.uid() references auth.users +); +comment on table public.categorie_tag is + 'Tags décrivant un indicateur + Peut être commun (défini par TeT) ou propre à une collectivité'; +comment on column public.categorie_tag.groupement_id is + 'Renseigné si tag appartenant à un groupement de collectivité'; +comment on column public.categorie_tag.collectivite_id is + 'Renseigné si tag appartenant à un collectivité'; +comment on column public.categorie_tag.visible is + 'Faux si le tag est défini par TeT et sert à des règles métiers interne'; + +create table public.indicateur_categorie_tag +( + categorie_tag_id integer references public.categorie_tag on delete cascade not null, + indicateur_id integer references public.indicateur_definition on delete cascade not null, + primary key (categorie_tag_id, indicateur_id) +); +comment on table public.indicateur_categorie_tag is + 'Table de passage entre un indicateur et ses catégories'; + + +create table public.indicateur_thematique +( + indicateur_id integer references public.indicateur_definition on delete cascade not null, + thematique_id integer references public.thematique on delete cascade not null, + primary key (indicateur_id, thematique_id) +); +comment on table public.indicateur_thematique is + 'Table de passage entre un indicateur et ses thématiques'; + +create table public.indicateur_sous_thematique +( + indicateur_id integer references public.indicateur_definition on delete cascade not null, + sous_thematique_id integer references public.sous_thematique on delete cascade not null, + primary key (indicateur_id, sous_thematique_id) +); +comment on table public.indicateur_sous_thematique is + 'Table de passage entre un indicateur et ses sous-thématiques'; + +create table public.indicateur_service_tag +( + indicateur_id integer references public.indicateur_definition on delete cascade not null, + service_tag_id integer references public.service_tag on delete cascade not null, + collectivite_id integer references public.collectivite on delete cascade not null, + primary key (indicateur_id, service_tag_id, collectivite_id) +); +comment on table public.indicateur_service_tag is + 'Table de passage entre un indicateur et ses services'; + +create table public.indicateur_pilote +( + id serial primary key, + indicateur_id integer references public.indicateur_definition on delete cascade not null, + user_id uuid references auth.users on delete cascade, + tag_id integer references personne_tag on delete cascade, + collectivite_id integer references public.collectivite on delete cascade not null, + unique (indicateur_id, user_id, tag_id, collectivite_id), + check((user_id is null and tag_id is not null) or (user_id is not null and tag_id is null)) +); +comment on table public.indicateur_pilote is + 'Table de passage entre un indicateur et ses pilotes'; + +create unique index unique_indicateur_pilote_user + on indicateur_pilote (indicateur_id, user_id, collectivite_id) + where user_id is not null; + +create unique index unique_indicateur_pilote_tag + on indicateur_pilote (indicateur_id, tag_id, collectivite_id) + where tag_id is not null; + +create table public.indicateur_action +( + indicateur_id integer references public.indicateur_definition on delete cascade not null, + action_id action_id references public.action_relation on delete cascade not null, + primary key (indicateur_id, action_id) +); +comment on table public.indicateur_action is + 'Table de passage entre un indicateur et ses actions'; + +create table public.fiche_action_indicateur +( + indicateur_id integer references public.indicateur_definition on delete cascade not null, + fiche_id integer references public.fiche_action on delete cascade not null, + primary key (indicateur_id, fiche_id) +); +comment on table public.fiche_action_indicateur is + 'Table de passage entre un indicateur et ses fiches action'; + +create table action_impact_indicateur +( + action_impact_id integer not null references action_impact, + indicateur_id integer not null references indicateur_definition on delete cascade, + primary key (action_impact_id, indicateur_id) +); +comment on table public.action_impact_indicateur is + 'Table de passage entre un indicateur et ses actions à impact'; + +-- MIGRATION DONNEES + +-- categorie_tag <- indicateur_programme + indicateur_referentiel_type + "prioritaire" (ancien selection) +insert into public.categorie_tag (collectivite_id, nom, visible, created_at, created_by) +values (null, 'clef', true, now(), null), + (null, 'eci', true, now(), null), + (null, 'cae', true, now(), null), + (null, 'pcaet', true, now(), null), + (null, 'crte', true, now(), null), + (null, 'resultat', false, now(), null), + (null, 'impact', false, now(), null), + (null, 'prioritaire', true, now(), null); + +-- indicateur_source_metadonnee <- indicateur_resultat_import +insert into public.indicateur_source_metadonnee(source_id, date_version, nom_donnees) +select s.source_id, now(), s.source +from (select distinct source, source_id from archive.indicateur_resultat_import) s; + +-- indicateur_definition <- indicateur_definition + indicateur_personnalise_definition +insert into public.indicateur_definition (collectivite_id, identifiant_referentiel, titre, titre_long, description, unite, borne_min, borne_max, participation_score, sans_valeur_utilisateur, valeur_calcule, modified_at, created_at, modified_by, created_by, old_id) +select null, id, nom, titre_long, description, unite, null, null, participation_score, sans_valeur, null, modified_at, modified_at, null, null, null +from archive.indicateur_definition; + +insert into public.indicateur_definition (collectivite_id, identifiant_referentiel, titre, titre_long, description, unite, borne_min, borne_max, participation_score, sans_valeur_utilisateur, valeur_calcule, modified_at, created_at, modified_by, created_by, old_id) +select collectivite_id, null, titre, null, description, unite, null, null, false, false, null, modified_at, modified_at, modified_by, modified_by, id +from archive.indicateur_personnalise_definition; + +-- indicateur_categorie_tag <- indicateur_definition.programmes + indicateur_definition.type + indicateur_definition.selection +insert into public.indicateur_categorie_tag (categorie_tag_id, indicateur_id) +select (select categorie_tag.id + from categorie_tag + where categorie_tag.nom = aid.programme::text limit 1), pid.id +from (select id, unnest(programmes) as programme from archive.indicateur_definition) aid +join public.indicateur_definition pid on aid.id = pid.identifiant_referentiel; + +insert into public.indicateur_categorie_tag (categorie_tag_id, indicateur_id) +select (select categorie_tag.id + from categorie_tag + where categorie_tag.nom = aid.type::text limit 1), pid.id +from archive.indicateur_definition aid +join public.indicateur_definition pid on aid.id = pid.identifiant_referentiel +where aid.type is not null; + +insert into public.indicateur_categorie_tag (categorie_tag_id, indicateur_id) +select (select categorie_tag.id + from categorie_tag + where categorie_tag.nom = 'prioritaire' limit 1), pid.id +from archive.indicateur_definition aid +join public.indicateur_definition pid on aid.id = pid.identifiant_referentiel +where aid.selection = true; + +-- indicateur_valeur <- public.indicateur_resultat + public.indicateur_resultat_commentaire + public.indicateur_resultat_import + public.indicateur_objectif + public.indicateur_objectif_commentaire + public.indicateur_personnalise_resultat + public.indicateur_perso_resultat_commentaire + public.indicateur_personnalise_objectif + public.indicateur_perso_objectif_commentaire +insert into public.indicateur_valeur (indicateur_id, collectivite_id, date_valeur, metadonnee_id, resultat, resultat_commentaire, objectif, objectif_commentaire) +select pid.id, v.collectivite_id, to_date(v.annee::varchar, 'yyyy'), null, v.valeur, null, null, null +from archive.indicateur_resultat v +join archive.indicateur_definition aid on v.indicateur_id = aid.id +join public.indicateur_definition pid on pid.identifiant_referentiel = coalesce(aid.valeur_indicateur, aid.id) +on conflict (indicateur_id, collectivite_id, date_valeur) where metadonnee_id is null do nothing ; + +insert into public.indicateur_valeur (indicateur_id, collectivite_id, date_valeur, metadonnee_id, resultat, resultat_commentaire, objectif, objectif_commentaire) +select pid.id, v.collectivite_id, to_date(v.annee::varchar, 'yyyy'), null, null, v.commentaire, null, null +from archive.indicateur_resultat_commentaire v +join archive.indicateur_definition aid on v.indicateur_id = aid.id +join public.indicateur_definition pid on pid.identifiant_referentiel = coalesce(aid.valeur_indicateur, aid.id) +where v.annee is not null +on conflict (indicateur_id, collectivite_id, date_valeur) where metadonnee_id is null do update + set resultat_commentaire = excluded.resultat_commentaire; + +insert into public.indicateur_valeur (indicateur_id, collectivite_id, date_valeur, metadonnee_id, resultat, resultat_commentaire, objectif, objectif_commentaire) +select pid.id, v.collectivite_id, to_date(v.annee::varchar, 'yyyy'), null, null, null, v.valeur, null +from archive.indicateur_objectif v +join archive.indicateur_definition aid on v.indicateur_id = aid.id +join public.indicateur_definition pid on pid.identifiant_referentiel = coalesce(aid.valeur_indicateur, aid.id) +on conflict (indicateur_id, collectivite_id, date_valeur) where metadonnee_id is null do update + set objectif = excluded.objectif; + +insert into public.indicateur_valeur (indicateur_id, collectivite_id, date_valeur, metadonnee_id, resultat, resultat_commentaire, objectif, objectif_commentaire) +select pid.id, v.collectivite_id, to_date(v.annee::varchar, 'yyyy'), null, null, null, null, v.commentaire +from archive.indicateur_objectif_commentaire v +join archive.indicateur_definition aid on v.indicateur_id = aid.id +join public.indicateur_definition pid on pid.identifiant_referentiel = coalesce(aid.valeur_indicateur, aid.id) +on conflict (indicateur_id, collectivite_id, date_valeur) where metadonnee_id is null do update + set objectif_commentaire = excluded.objectif_commentaire; + +insert into public.indicateur_valeur (indicateur_id, collectivite_id, date_valeur, metadonnee_id, resultat, resultat_commentaire, objectif, objectif_commentaire) +select pid.id, v.collectivite_id, to_date(v.annee::varchar, 'yyyy'), null, v.valeur, null, null, null +from archive.indicateur_personnalise_resultat v +join archive.indicateur_personnalise_definition aid on v.indicateur_id = aid.id +join public.indicateur_definition pid on pid.old_id = aid.id +on conflict (indicateur_id, collectivite_id, date_valeur) where metadonnee_id is null do nothing ; + +insert into public.indicateur_valeur (indicateur_id, collectivite_id, date_valeur, metadonnee_id, resultat, resultat_commentaire, objectif, objectif_commentaire) +select pid.id, v.collectivite_id, to_date(v.annee::varchar, 'yyyy'), null, null, v.commentaire, null, null +from archive.indicateur_perso_resultat_commentaire v +join archive.indicateur_personnalise_definition aid on v.indicateur_id = aid.id +join public.indicateur_definition pid on pid.old_id = aid.id +on conflict (indicateur_id, collectivite_id, date_valeur) where metadonnee_id is null do update + set resultat_commentaire = excluded.resultat_commentaire; + +insert into public.indicateur_valeur (indicateur_id, collectivite_id, date_valeur, metadonnee_id, resultat, resultat_commentaire, objectif, objectif_commentaire) +select pid.id, v.collectivite_id, to_date(v.annee::varchar, 'yyyy'), null, null, null, v.valeur, null +from archive.indicateur_personnalise_objectif v +join archive.indicateur_personnalise_definition aid on v.indicateur_id = aid.id +join public.indicateur_definition pid on pid.old_id = aid.id +on conflict (indicateur_id, collectivite_id, date_valeur) where metadonnee_id is null do update + set objectif = excluded.objectif; + +insert into public.indicateur_valeur (indicateur_id, collectivite_id, date_valeur, metadonnee_id, resultat, resultat_commentaire, objectif, objectif_commentaire) +select pid.id, v.collectivite_id, to_date(v.annee::varchar, 'yyyy'), null, null, null, null, v.commentaire +from archive.indicateur_perso_objectif_commentaire v +join archive.indicateur_personnalise_definition aid on v.indicateur_id = aid.id +join public.indicateur_definition pid on pid.old_id = aid.id +on conflict (indicateur_id, collectivite_id, date_valeur) where metadonnee_id is null do update + set objectif_commentaire = excluded.objectif_commentaire; + +insert into public.indicateur_valeur (indicateur_id, collectivite_id, date_valeur, metadonnee_id, resultat, resultat_commentaire, objectif, objectif_commentaire) +select pid.id, v.collectivite_id, to_date(v.annee::varchar, 'yyyy'), aim.id, v.valeur, null, null, null +from archive.indicateur_resultat_import v +join archive.indicateur_definition aid on v.indicateur_id = aid.id +join public.indicateur_definition pid on pid.identifiant_referentiel = coalesce(aid.valeur_indicateur, aid.id) +join public.indicateur_source_metadonnee aim on v.source = aim.source_id and v.source = aim.nom_donnees; + +-- indicateur_groupe <- indicateur_definition.parent +insert into public.indicateur_groupe (parent, enfant) +select parent.id, enfant.id +from archive.indicateur_definition aid +join public.indicateur_definition enfant on aid.id = enfant.identifiant_referentiel +join public.indicateur_definition parent on aid.parent = parent.identifiant_referentiel +where aid.parent is not null; + +-- fiche_action_indicateur <- fiche_action_indicateur +insert into public.fiche_action_indicateur (fiche_id, indicateur_id) +select afai.fiche_id, pid.id +from archive.fiche_action_indicateur afai +join public.indicateur_definition pid on + case when afai.indicateur_id is null then + afai.indicateur_personnalise_id = pid.old_id + else + afai.indicateur_id = pid.identifiant_referentiel + end; + +-- action_impact_indicateur <- action_impact_indicateur +insert into public.action_impact_indicateur (action_impact_id, indicateur_id) +select aii.action_impact_id, pid.id +from archive.action_impact_indicateur aii +join public.indicateur_definition pid on aii.indicateur_id = pid.identifiant_referentiel; + +-- indicateur_action <- indicateur_action +insert into public.indicateur_action (indicateur_id, action_id) +select pid.id, pia.action_id +from archive.indicateur_action pia +join public.indicateur_definition pid on pia.indicateur_id = pid.identifiant_referentiel; + +-- indicateur_pilote <- indicateur_pilote +insert into public.indicateur_pilote (indicateur_id, user_id, tag_id, collectivite_id) +select pid.id, aip.user_id, aip.tag_id, aip.collectivite_id +from archive.indicateur_pilote aip +join public.indicateur_definition pid on + case when aip.indicateur_id is null then + aip.indicateur_perso_id = pid.old_id + else + aip.indicateur_id = pid.identifiant_referentiel + end; + +-- indicateur_service_tag <- indicateur_service_tag +insert into public.indicateur_service_tag (indicateur_id, service_tag_id, collectivite_id) +select pid.id, aist.service_tag_id, aist.collectivite_id +from archive.indicateur_service_tag aist +join public.indicateur_definition pid on + case when aist.indicateur_id is null then + aist.indicateur_perso_id = pid.old_id + else + aist.indicateur_id = pid.identifiant_referentiel + end; + +-- indicateur_collectivite <- indicateur_confidentiel + indicateur_resultat_commentaire sans annee +insert into public.indicateur_collectivite (indicateur_id, collectivite_id, commentaire, confidentiel) +select pid.id, aic.collectivite_id, null, true +from archive.indicateur_confidentiel aic +join public.indicateur_definition pid on + case when aic.indicateur_id is null then + aic.indicateur_perso_id = pid.old_id + else + aic.indicateur_id = pid.identifiant_referentiel + end; + +insert into public.indicateur_collectivite (indicateur_id, collectivite_id, commentaire) +select pid.id, irc.collectivite_id, irc.commentaire +from archive.indicateur_resultat_commentaire irc +join public.indicateur_definition pid on irc.indicateur_id = pid.identifiant_referentiel +where irc.annee is null +on conflict (indicateur_id, collectivite_id) do update + set commentaire = excluded.commentaire; + +-- indicateur_thematique <- public.indicateur_personnalise_thematique + indicateur_definition.thematiques +insert into public.indicateur_thematique (indicateur_id, thematique_id) +select pid.id, aipt.thematique_id +from archive.indicateur_personnalise_thematique aipt +join public.indicateur_definition pid on aipt.indicateur_id = pid.old_id; + +insert into public.indicateur_thematique (indicateur_id, thematique_id) +select pid.id, t.id +from (select id, unnest(thematiques) as thematique from archive.indicateur_definition) aid +join public.indicateur_definition pid on aid.id = pid.identifiant_referentiel +join public.thematique t on t.md_id = aid.thematique; + +-- Supprime la colonne de migration +alter table indicateur_definition drop column old_id; + + +-- DROITS -- +-- Fonctions de vérification des droits +create function is_indicateur_collectivite(indicateur_id integer, collectivite_id integer) + returns boolean +as +$$ +select count(*)>0 +from indicateur_definition id +where id.id = is_indicateur_collectivite.indicateur_id + and ( + (id.collectivite_id is null and id.groupement_id is null) or + (id.groupement_id is null and id.collectivite_id = is_indicateur_collectivite.collectivite_id) or + (is_indicateur_collectivite.collectivite_id in ( + select gc.collectivite_id + from groupement_collectivite gc + where gc.groupement_id = id.groupement_id + )) + ); +$$ language sql security definer; + +create function is_indicateur_confidential(indicateur_id integer, collectivite_id integer) + returns boolean +as +$$ +select ic.confidentiel = true +from indicateur_collectivite ic +where ic.collectivite_id = is_indicateur_confidential.collectivite_id + and ic.indicateur_id = is_indicateur_confidential.indicateur_id; +$$ language sql security definer; + +create function peut_lire_l_indicateur(indicateur_id integer) + returns boolean +as +$$ +declare + indicateur indicateur_definition; +begin + select * + from indicateur_definition + where id = peut_lire_l_indicateur.indicateur_id + into indicateur; + + if indicateur.collectivite_id is null then + return is_authenticated(); + elsif is_indicateur_confidential(indicateur.id, indicateur.collectivite_id) then + return have_lecture_acces(indicateur.collectivite_id); + else + return can_read_acces_restreint(indicateur.collectivite_id); + end if; +end +$$ language plpgsql security definer; + +create function peut_modifier_l_indicateur(indicateur_id integer) + returns boolean +as +$$ +select have_edition_acces(collectivite_id) +from indicateur_definition +where id = peut_modifier_l_indicateur.indicateur_id; +$$ language sql security definer; + +create function peut_ajouter_une_valeur_a_l_indicateur(indicateur_id integer) + returns boolean +as +$$ +select not sans_valeur_utilisateur +from indicateur_definition +where id = peut_ajouter_une_valeur_a_l_indicateur.indicateur_id; +$$ language sql security definer; + +create function peut_lire_la_categorie_d_indicateur(indicateur_id integer, categorie_tag_id integer) + returns boolean +as +$$ +declare + category categorie_tag; +begin + if not peut_lire_l_indicateur(peut_lire_la_categorie_d_indicateur.indicateur_id) then + return false; + end if; + select * from categorie_tag where id = peut_lire_la_categorie_d_indicateur.categorie_tag_id into category; + + if category.collectivite_id is null and category.groupement_id is null then + return category.visible; + end if; + if category.groupement_id is null then + return can_read_acces_restreint(category.collectivite_id); + end if; + return (select bool_or(can_read_acces_restreint(collectivite_id)) + from groupement_collectivite + where groupement_id = category.groupement_id); +end; +$$ language plpgsql security definer; + +create function peut_modifier_la_categorie_d_indicateur(indicateur_id integer, categorie_tag_id integer) + returns boolean +as +$$ +declare + category categorie_tag; +begin + if not peut_lire_l_indicateur(peut_modifier_la_categorie_d_indicateur.indicateur_id) then + return false; + end if; + select * from categorie_tag where id = peut_modifier_la_categorie_d_indicateur.categorie_tag_id into category; + + if category.collectivite_id is null then + return false; + else + return have_edition_acces(category.collectivite_id); + end if; +end; +$$ language plpgsql security definer; + + +-- Row level security +-- DROITS groupement +alter table public.groupement enable row level security; +create policy allow_read on public.groupement for select using (is_authenticated()); + +alter table public.groupement_collectivite enable row level security; +create policy allow_read on public.groupement_collectivite for select using (is_authenticated()); + +-- DROITS indicateur_medatonnee +alter table public.indicateur_source_metadonnee enable row level security; +create policy allow_read on public.indicateur_source_metadonnee for select using (is_authenticated()); + +-- DROITS indicateur_definition +alter table public.indicateur_definition enable row level security; +create policy allow_read on public.indicateur_definition for select using ( + case when collectivite_id is null then + is_authenticated() + else + case when is_indicateur_confidential(id, collectivite_id) then + have_lecture_acces(collectivite_id) + else + can_read_acces_restreint(collectivite_id) + end + end + ); +create policy allow_insert on public.indicateur_definition + for insert with check (have_edition_acces(collectivite_id)); +create policy allow_update on public.indicateur_definition + for update using (have_edition_acces(collectivite_id)); +create policy allow_delete on public.indicateur_definition + for delete using (have_edition_acces(collectivite_id)); + +-- DROITS indicateur_valeur +alter table public.indicateur_valeur enable row level security; +create policy allow_read on public.indicateur_valeur for select using( + case when is_indicateur_confidential(indicateur_id, collectivite_id) then + have_lecture_acces(collectivite_id) + else + can_read_acces_restreint(collectivite_id) + end); +create policy allow_insert on public.indicateur_valeur for insert with check ( + have_edition_acces(collectivite_id) and peut_ajouter_une_valeur_a_l_indicateur(indicateur_id) + and is_indicateur_collectivite(indicateur_id, collectivite_id)); +create policy allow_update on public.indicateur_valeur for update using ( + have_edition_acces(collectivite_id) and peut_ajouter_une_valeur_a_l_indicateur(indicateur_id) + and is_indicateur_collectivite(indicateur_id, collectivite_id)); +create policy allow_delete on public.indicateur_valeur for delete using ( + have_edition_acces(collectivite_id) and peut_ajouter_une_valeur_a_l_indicateur(indicateur_id) + and is_indicateur_collectivite(indicateur_id, collectivite_id)); + +-- DROITS indicateur_groupe +alter table public.indicateur_groupe enable row level security; +create policy allow_read on public.indicateur_groupe for select using( + peut_lire_l_indicateur(parent) and peut_lire_l_indicateur(enfant)); +create policy allow_insert on public.indicateur_groupe for insert with check ( + peut_lire_l_indicateur(parent) and peut_lire_l_indicateur(enfant) and + (peut_modifier_l_indicateur(parent) or peut_modifier_l_indicateur(enfant))); +create policy allow_update on public.indicateur_groupe for update using ( + peut_lire_l_indicateur(parent) and peut_lire_l_indicateur(enfant) and + (peut_modifier_l_indicateur(parent) or peut_modifier_l_indicateur(enfant))); +create policy allow_delete on public.indicateur_groupe for delete using ( + peut_lire_l_indicateur(parent) and peut_lire_l_indicateur(enfant) and + (peut_modifier_l_indicateur(parent) or peut_modifier_l_indicateur(enfant))); + +-- DROITS indicateur_collectivite +alter table public.indicateur_collectivite enable row level security; +create policy allow_read on public.indicateur_collectivite for select using ( + can_read_acces_restreint(collectivite_id)); +create policy allow_insert on public.indicateur_collectivite for insert with check ( + have_edition_acces(collectivite_id)); +create policy allow_update on public.indicateur_collectivite for update using ( + have_edition_acces(collectivite_id)); +create policy allow_delete on public.indicateur_collectivite for delete using ( + have_edition_acces(collectivite_id)); + +-- DROITS categorie_tag +alter table public.categorie_tag enable row level security; +create policy allow_read on public.categorie_tag for select using ( + case when collectivite_id is null then + is_authenticated() + else + can_read_acces_restreint(collectivite_id) + end); +create policy allow_insert on public.categorie_tag for insert with check (have_edition_acces(collectivite_id)); +create policy allow_update on public.categorie_tag for update using (have_edition_acces(collectivite_id)); +create policy allow_delete on public.categorie_tag for delete using (have_edition_acces(collectivite_id)); + +-- DROITS indicateur_categorie_tag +alter table public.indicateur_categorie_tag enable row level security; +create policy allow_read on public.indicateur_categorie_tag for select using ( + peut_lire_la_categorie_d_indicateur( + indicateur_categorie_tag.indicateur_id, categorie_tag_id)); +create policy allow_insert on public.indicateur_categorie_tag for insert with check ( + peut_modifier_la_categorie_d_indicateur( + indicateur_categorie_tag.indicateur_id, categorie_tag_id)); +create policy allow_update on public.indicateur_categorie_tag for update using ( + peut_modifier_la_categorie_d_indicateur( + indicateur_categorie_tag.indicateur_id, categorie_tag_id)); +create policy allow_delete on public.indicateur_categorie_tag for delete using ( + peut_modifier_la_categorie_d_indicateur( + indicateur_categorie_tag.indicateur_id, categorie_tag_id)); + +-- DROITS indicateur_thematique +alter table public.indicateur_thematique enable row level security; +create policy allow_read on public.indicateur_thematique for select using ( + peut_lire_l_indicateur(indicateur_id)); +create policy allow_insert on public.indicateur_thematique for insert with check ( + peut_modifier_l_indicateur(indicateur_id)); +create policy allow_update on public.indicateur_thematique for update using ( + peut_modifier_l_indicateur(indicateur_id)); +create policy allow_delete on public.indicateur_thematique for delete using ( + peut_modifier_l_indicateur(indicateur_id)); + +-- DROITS indicateur_sous_thematique +alter table public.indicateur_sous_thematique enable row level security; +create policy allow_read on public.indicateur_sous_thematique for select using ( + peut_lire_l_indicateur(indicateur_id)); +create policy allow_insert on public.indicateur_sous_thematique for insert with check ( + peut_modifier_l_indicateur(indicateur_id)); +create policy allow_update on public.indicateur_sous_thematique for update using ( + peut_modifier_l_indicateur(indicateur_id)); +create policy allow_delete on public.indicateur_sous_thematique for delete using ( + peut_modifier_l_indicateur(indicateur_id)); + +-- DROITS indicateur_service_tag +alter table public.indicateur_service_tag enable row level security; +create policy allow_read on public.indicateur_service_tag for select using ( + peut_lire_l_indicateur(indicateur_id)); +create policy allow_insert on public.indicateur_service_tag for insert with check ( + peut_lire_l_indicateur(indicateur_id) and have_edition_acces(collectivite_id)); +create policy allow_update on public.indicateur_service_tag for update using ( + peut_lire_l_indicateur(indicateur_id) and have_edition_acces(collectivite_id)); +create policy allow_delete on public.indicateur_service_tag for delete using ( + peut_lire_l_indicateur(indicateur_id) and have_edition_acces(collectivite_id)); + +-- DROITS indicateur_pilote +alter table public.indicateur_pilote enable row level security; +create policy allow_read on public.indicateur_pilote for select using ( + peut_lire_l_indicateur(indicateur_id)); +create policy allow_insert on public.indicateur_pilote for insert with check ( + peut_lire_l_indicateur(indicateur_id) and have_edition_acces(collectivite_id)); +create policy allow_update on public.indicateur_pilote for update using ( + peut_lire_l_indicateur(indicateur_id) and have_edition_acces(collectivite_id)); +create policy allow_delete on public.indicateur_pilote for delete using ( + peut_lire_l_indicateur(indicateur_id) and have_edition_acces(collectivite_id)); + +-- DROITS indicateur_action +alter table public.indicateur_action enable row level security; +create policy allow_read on public.indicateur_action for select using ( + peut_lire_l_indicateur(indicateur_id)); +create policy allow_insert on public.indicateur_action for insert with check ( + peut_modifier_l_indicateur(indicateur_id)); +create policy allow_update on public.indicateur_action for update using ( + peut_modifier_l_indicateur(indicateur_id)); +create policy allow_delete on public.indicateur_action for delete using ( + peut_modifier_l_indicateur(indicateur_id)); + +-- DROITS fiche_action_indicateur +alter table public.fiche_action_indicateur enable row level security; +create policy allow_read on public.fiche_action_indicateur for select using ( + peut_lire_l_indicateur(indicateur_id)); +create policy allow_insert on public.fiche_action_indicateur for insert with check ( + peut_lire_l_indicateur(indicateur_id) and peut_modifier_la_fiche(fiche_id)); +create policy allow_update on public.fiche_action_indicateur for update using ( + peut_lire_l_indicateur(indicateur_id) and peut_modifier_la_fiche(fiche_id)); +create policy allow_delete on public.fiche_action_indicateur for delete using ( + peut_lire_l_indicateur(indicateur_id) and peut_modifier_la_fiche(fiche_id)); + +-- DROITS action_impact_indicateur +alter table public.action_impact_indicateur enable row level security; +create policy allow_read on public.action_impact_indicateur for select using ( + peut_lire_l_indicateur(indicateur_id)); +create policy allow_insert on public.action_impact_indicateur for insert with check ( + peut_modifier_l_indicateur(indicateur_id)); +create policy allow_update on public.action_impact_indicateur for update using ( + peut_modifier_l_indicateur(indicateur_id)); +create policy allow_delete on public.action_impact_indicateur for delete using ( + peut_modifier_l_indicateur(indicateur_id)); + +-- Recrée les éléments indirectement concernés + +-- stats.report_indicateur_resultat; +create materialized view stats.report_indicateur_resultat as +SELECT c.collectivite_id, + c.code_siren_insee, + c.nom, + ir.indicateur_id, + extract(year from ir.date_valeur) as annee, + ir.resultat +FROM stats.collectivite c +JOIN indicateur_valeur ir USING (collectivite_id) +WHERE ir.resultat IS NOT NULL +ORDER BY c.collectivite_id, ir.date_valeur; + +-- stats.report_indicateur_personnalise; +create materialized view stats.report_indicateur_personnalise as +SELECT ipd.collectivite_id, + ipd.titre, + ipd.description, + ipd.unite, + ic.commentaire, + count(ipo.*) filter (where ipo.objectif is not null) AS objectifs, + count(ipo.*) filter (where ipo.resultat is not null) AS resultats +FROM indicateur_definition ipd +LEFT JOIN indicateur_collectivite ic on ipd.id = ic.indicateur_id and ipd.collectivite_id = ic.collectivite_id +LEFT JOIN indicateur_valeur ipo ON ipd.id = ipo.indicateur_id +WHERE ipd.collectivite_id is not null +GROUP BY ipd.collectivite_id, ipd.titre, ipd.description, ipd.unite, ic.commentaire; + + +-- stats.locales_evolution_resultat_indicateur_referentiel; +create materialized view stats.locales_evolution_resultat_indicateur_referentiel as +WITH resultats AS ( + SELECT iv.collectivite_id, + sc.region_code, + sc.departement_code, + iv.modified_at + FROM indicateur_valeur iv + JOIN indicateur_definition id on iv.indicateur_id = id.id + JOIN stats.collectivite sc on sc.collectivite_id = iv.collectivite_id + WHERE iv.resultat is not null + AND id.collectivite_id is null + ) +SELECT m.first_day AS mois, + NULL::character varying(2) AS code_region, + NULL::character varying(2) AS code_departement, + count(i.*) AS indicateurs +FROM stats.monthly_bucket m +LEFT JOIN resultats i ON i.modified_at <= m.last_day +GROUP BY m.first_day +UNION ALL +SELECT m.first_day AS mois, + r.code AS code_region, + NULL::character varying AS code_departement, + count(i.*) AS indicateurs +FROM imports.region r +JOIN stats.monthly_bucket m ON true +LEFT JOIN resultats i ON i.modified_at <= m.last_day AND i.region_code::text = r.code::text +GROUP BY m.first_day, r.code +UNION ALL +SELECT m.first_day AS mois, + NULL::character varying AS code_region, + d.code AS code_departement, + count(i.*) AS indicateurs +FROM imports.departement d +JOIN stats.monthly_bucket m ON true +LEFT JOIN resultats i ON i.modified_at <= m.last_day AND i.departement_code::text = d.code::text +GROUP BY m.first_day, d.code +ORDER BY 1; + + +-- public.stats_locales_evolution_resultat_indicateur_referentiel; +create view public.stats_locales_evolution_resultat_indicateur_referentiel as +SELECT mois, + code_region, + code_departement, + indicateurs +FROM stats.locales_evolution_resultat_indicateur_referentiel; + +-- stats.locales_evolution_resultat_indicateur_personnalise; +create materialized view stats.locales_evolution_resultat_indicateur_personnalise as +WITH resultats AS ( + SELECT iv.collectivite_id, + sc.region_code, + sc.departement_code, + iv.modified_at + FROM indicateur_valeur iv + JOIN indicateur_definition id on iv.indicateur_id = id.id + JOIN stats.collectivite sc on iv.collectivite_id = sc.collectivite_id + WHERE iv.resultat is not null + AND id.collectivite_id is not null + ) +SELECT m.first_day AS mois, + NULL::character varying(2) AS code_region, + NULL::character varying(2) AS code_departement, + count(i.*) AS indicateurs +FROM stats.monthly_bucket m +LEFT JOIN resultats i ON i.modified_at <= m.last_day +GROUP BY m.first_day +UNION ALL +SELECT m.first_day AS mois, + r.code AS code_region, + NULL::character varying AS code_departement, + count(i.*) AS indicateurs +FROM imports.region r +JOIN stats.monthly_bucket m ON true +LEFT JOIN resultats i ON i.modified_at <= m.last_day AND i.region_code::text = r.code::text +GROUP BY m.first_day, r.code +UNION ALL +SELECT m.first_day AS mois, + NULL::character varying AS code_region, + d.code AS code_departement, + count(i.*) AS indicateurs +FROM imports.departement d +JOIN stats.monthly_bucket m ON true +LEFT JOIN resultats i ON i.modified_at <= m.last_day AND i.departement_code::text = d.code::text +GROUP BY m.first_day, d.code +ORDER BY 1; + + +-- public.stats_locales_evolution_resultat_indicateur_personnalise; +create view public.stats_locales_evolution_resultat_indicateur_personnalise as +SELECT mois, + code_region, + code_departement, + indicateurs +FROM stats.locales_evolution_resultat_indicateur_personnalise; + +-- stats.locales_evolution_indicateur_referentiel; +create materialized view stats.locales_evolution_indicateur_referentiel as +WITH indicateurs AS ( + SELECT iv.collectivite_id, + sc.region_code, + sc.departement_code, + iv.indicateur_id, + min(iv.modified_at) AS first_modified_at + FROM indicateur_valeur iv + JOIN stats.collectivite sc on iv.collectivite_id = sc.collectivite_id + JOIN indicateur_definition id on iv.indicateur_id = id.id + WHERE iv.resultat is not null + AND id.collectivite_id is null + GROUP BY iv.collectivite_id, sc.region_code, + sc.departement_code, iv.indicateur_id + ) +SELECT m.first_day AS mois, + NULL::character varying(2) AS code_region, + NULL::character varying(2) AS code_departement, + count(i.*) AS indicateurs +FROM stats.monthly_bucket m +LEFT JOIN indicateurs i ON i.first_modified_at <= m.last_day +GROUP BY m.first_day +UNION ALL +SELECT m.first_day AS mois, + r.code AS code_region, + NULL::character varying AS code_departement, + count(i.*) AS indicateurs +FROM imports.region r +JOIN stats.monthly_bucket m ON true +LEFT JOIN indicateurs i ON i.first_modified_at <= m.last_day AND i.region_code::text = r.code::text +GROUP BY m.first_day, r.code +UNION ALL +SELECT m.first_day AS mois, + NULL::character varying AS code_region, + d.code AS code_departement, + count(i.*) AS indicateurs +FROM imports.departement d +JOIN stats.monthly_bucket m ON true +LEFT JOIN indicateurs i ON i.first_modified_at <= m.last_day AND i.departement_code::text = d.code::text +GROUP BY m.first_day, d.code; + + +-- public.stats_locales_evolution_indicateur_referentiel; +create view public.stats_locales_evolution_indicateur_referentiel as +SELECT mois, + code_region, + code_departement, + indicateurs +FROM stats.locales_evolution_indicateur_referentiel; + +-- stats.locales_evolution_collectivite_avec_indicateur_referentiel; +create materialized view stats.locales_evolution_collectivite_avec_indicateur_referentiel as +WITH indicateur_collectivite AS ( + SELECT mb.first_day AS mois, + c.collectivite_id, + c.region_code, + c.departement_code, + COALESCE(count(*) FILTER (WHERE ir.modified_at <= mb.last_day), + 0::bigint) AS resultats + FROM stats.monthly_bucket mb + JOIN stats.collectivite c ON true + LEFT JOIN (select iv.* + from indicateur_valeur iv + join indicateur_definition id on iv.indicateur_id = id.id + where id.collectivite_id is null + and iv.resultat is not null) + ir USING (collectivite_id) + GROUP BY mb.first_day, c.collectivite_id, c.departement_code, c.region_code + ) +SELECT indicateur_collectivite.mois, + NULL::character varying(2) AS code_region, + NULL::character varying(2) AS code_departement, + count(*) FILTER (WHERE indicateur_collectivite.resultats > 0) AS collectivites +FROM indicateur_collectivite +GROUP BY indicateur_collectivite.mois +UNION ALL +SELECT indicateur_collectivite.mois, + indicateur_collectivite.region_code AS code_region, + NULL::character varying AS code_departement, + count(*) FILTER (WHERE indicateur_collectivite.resultats > 0) AS collectivites +FROM indicateur_collectivite +GROUP BY indicateur_collectivite.mois, indicateur_collectivite.region_code +UNION ALL +SELECT indicateur_collectivite.mois, + NULL::character varying AS code_region, + indicateur_collectivite.departement_code AS code_departement, + count(*) FILTER (WHERE indicateur_collectivite.resultats > 0) AS collectivites +FROM indicateur_collectivite +GROUP BY indicateur_collectivite.mois, indicateur_collectivite.departement_code +ORDER BY 1; + +-- public.stats_locales_evolution_collectivite_avec_indicateur; +create view public.stats_locales_evolution_collectivite_avec_indicateur as +SELECT mois, + code_region, + code_departement, + collectivites +FROM stats.locales_evolution_collectivite_avec_indicateur_referentiel; + +-- stats.evolution_resultat_indicateur_referentiel; +create materialized view stats.evolution_resultat_indicateur_referentiel as +SELECT m.first_day AS mois, + count(*) AS resultats +FROM stats.monthly_bucket m +LEFT JOIN (select iv.* + from indicateur_valeur iv + join indicateur_definition id on iv.indicateur_id = id.id + where iv.resultat is not null + and id.collectivite_id is null) ir + ON ir.modified_at <= m.last_day +JOIN stats.collectivite_active USING (collectivite_id) +GROUP BY m.first_day +ORDER BY m.first_day; + +-- public.stats_evolution_resultat_indicateur_referentiel; +create view public.stats_evolution_resultat_indicateur_referentiel as +SELECT mois, + resultats +FROM stats.evolution_resultat_indicateur_referentiel; + +-- stats.evolution_resultat_indicateur_personnalise; +create materialized view stats.evolution_resultat_indicateur_personnalise as +SELECT m.first_day AS mois, + count(*) AS resultats +FROM stats.monthly_bucket m +LEFT JOIN (select iv.* + from indicateur_valeur iv + join indicateur_definition id on iv.indicateur_id = id.id + where iv.resultat is not null + and id.collectivite_id is not null) + ipr ON ipr.modified_at <= m.last_day +JOIN stats.collectivite_active USING (collectivite_id) +GROUP BY m.first_day +ORDER BY m.first_day; + +-- public.stats_evolution_resultat_indicateur_personnalise; +create view public.stats_evolution_resultat_indicateur_personnalise as +SELECT mois, + resultats +FROM stats.evolution_resultat_indicateur_personnalise; + +-- stats.evolution_indicateur_referentiel; +create materialized view stats.evolution_indicateur_referentiel as +WITH indicateurs AS ( + SELECT iv.collectivite_id, + iv.indicateur_id, + min(iv.modified_at) AS first_modified_at + FROM indicateur_valeur iv + JOIN indicateur_definition id on iv.indicateur_id = id.id + JOIN stats.collectivite_active sc on iv.collectivite_id = sc.collectivite_id + WHERE iv.resultat is not null + AND id.collectivite_id is null + GROUP BY iv.collectivite_id, iv.indicateur_id + ) +SELECT m.first_day AS mois, + count(*) AS indicateurs +FROM stats.monthly_bucket m +LEFT JOIN indicateurs ON indicateurs.first_modified_at <= m.last_day +GROUP BY m.first_day +ORDER BY m.first_day; + + +-- public.stats_evolution_indicateur_referentiel; +create view public.stats_evolution_indicateur_referentiel as +SELECT mois, + indicateurs +FROM stats.evolution_indicateur_referentiel; + +-- private.fiches_action; +create view private.fiches_action as +SELECT fa.modified_at, + fa.id, + fa.titre, + fa.description, + fa.piliers_eci, + fa.objectifs, + fa.resultats_attendus, + fa.cibles, + fa.ressources, + fa.financements, + fa.budget_previsionnel, + fa.statut, + fa.niveau_priorite, + fa.date_debut, + fa.date_fin_provisoire, + fa.amelioration_continue, + fa.calendrier, + fa.notes_complementaires, + fa.maj_termine, + fa.collectivite_id, + fa.created_at, + fa.modified_by, + t.thematiques, + st.sous_thematiques, + p.partenaires, + s.structures, + (SELECT array_agg(ROW (pil.nom, pil.collectivite_id, pil.tag_id, pil.user_id)::personne) AS array_agg + FROM (SELECT COALESCE(pt.nom, concat(dcp.prenom, ' ', dcp.nom)) AS nom, + pt.collectivite_id, + fap.tag_id, + fap.user_id + FROM fiche_action_pilote fap + LEFT JOIN personne_tag pt ON fap.tag_id = pt.id + LEFT JOIN dcp ON fap.user_id = dcp.user_id + WHERE fap.fiche_id = fa.id) pil) AS pilotes, + (SELECT array_agg(ROW (ref.nom, ref.collectivite_id, ref.tag_id, ref.user_id)::personne) AS array_agg + FROM (SELECT COALESCE(pt.nom, concat(dcp.prenom, ' ', dcp.nom)) AS nom, + pt.collectivite_id, + far.tag_id, + far.user_id + FROM fiche_action_referent far + LEFT JOIN personne_tag pt ON far.tag_id = pt.id + LEFT JOIN dcp ON far.user_id = dcp.user_id + WHERE far.fiche_id = fa.id) ref) AS referents, + pla.axes, + act.actions, + (SELECT array_agg(indi.*::indicateur_definition) AS array_agg + FROM (SELECT id.* + FROM fiche_action_indicateur fai + JOIN indicateur_definition id ON fai.indicateur_id::text = id.id::text + WHERE fai.fiche_id = fa.id) indi) AS indicateurs, + ser.services, + (SELECT array_agg(ROW (fin.financeur_tag, fin.montant_ttc, fin.id)::financeur_montant) AS financeurs + FROM (SELECT ft.*::financeur_tag AS financeur_tag, + faft.montant_ttc, + faft.id + FROM financeur_tag ft + JOIN fiche_action_financeur_tag faft ON ft.id = faft.financeur_tag_id + WHERE faft.fiche_id = fa.id) fin) AS financeurs, + fic.fiches_liees, + fa.restreint +FROM fiche_action fa +LEFT JOIN (SELECT fath.fiche_id, + array_agg(th.*) AS thematiques + FROM thematique th + JOIN fiche_action_thematique fath ON fath.thematique_id = th.id + GROUP BY fath.fiche_id) t ON t.fiche_id = fa.id +LEFT JOIN (SELECT fasth.fiche_id, + array_agg(sth.*) AS sous_thematiques + FROM sous_thematique sth + JOIN fiche_action_sous_thematique fasth ON fasth.thematique_id = sth.id + GROUP BY fasth.fiche_id) st ON st.fiche_id = fa.id +LEFT JOIN (SELECT fapt.fiche_id, + array_agg(pt.*) AS partenaires + FROM partenaire_tag pt + JOIN fiche_action_partenaire_tag fapt ON fapt.partenaire_tag_id = pt.id + GROUP BY fapt.fiche_id) p ON p.fiche_id = fa.id +LEFT JOIN (SELECT fast.fiche_id, + array_agg(st_1.*) AS structures + FROM structure_tag st_1 + JOIN fiche_action_structure_tag fast ON fast.structure_tag_id = st_1.id + GROUP BY fast.fiche_id) s ON s.fiche_id = fa.id +LEFT JOIN (SELECT fapa.fiche_id, + array_agg(pa.*) AS axes + FROM axe pa + JOIN fiche_action_axe fapa ON fapa.axe_id = pa.id + GROUP BY fapa.fiche_id) pla ON pla.fiche_id = fa.id +LEFT JOIN (SELECT faa.fiche_id, + array_agg(ar.*) AS actions + FROM action_relation ar + JOIN fiche_action_action faa ON faa.action_id::text = ar.id::text + GROUP BY faa.fiche_id) act ON act.fiche_id = fa.id +LEFT JOIN (SELECT fast.fiche_id, + array_agg(st_1.*) AS services + FROM service_tag st_1 + JOIN fiche_action_service_tag fast ON fast.service_tag_id = st_1.id + GROUP BY fast.fiche_id) ser ON ser.fiche_id = fa.id +LEFT JOIN (SELECT falpf.fiche_id, + array_agg(fr.*) AS fiches_liees + FROM private.fiche_resume fr + JOIN fiches_liees_par_fiche falpf ON falpf.fiche_liee_id = fr.id + GROUP BY falpf.fiche_id) fic ON fic.fiche_id = fa.id; + +-- public.fiches_action; +create view public.fiches_action as +SELECT fiches_action.modified_at, + fiches_action.id, + fiches_action.titre, + fiches_action.description, + fiches_action.piliers_eci, + fiches_action.objectifs, + fiches_action.resultats_attendus, + fiches_action.cibles, + fiches_action.ressources, + fiches_action.financements, + fiches_action.budget_previsionnel, + fiches_action.statut, + fiches_action.niveau_priorite, + fiches_action.date_debut, + fiches_action.date_fin_provisoire, + fiches_action.amelioration_continue, + fiches_action.calendrier, + fiches_action.notes_complementaires, + fiches_action.maj_termine, + fiches_action.collectivite_id, + fiches_action.created_at, + fiches_action.modified_by, + fiches_action.thematiques, + fiches_action.sous_thematiques, + fiches_action.partenaires, + fiches_action.structures, + fiches_action.pilotes, + fiches_action.referents, + fiches_action.axes, + fiches_action.actions, + fiches_action.indicateurs, + fiches_action.services, + fiches_action.financeurs, + fiches_action.fiches_liees, + fiches_action.restreint +FROM private.fiches_action +WHERE CASE + WHEN fiches_action.restreint = true THEN have_lecture_acces(fiches_action.collectivite_id) OR est_support() + ELSE can_read_acces_restreint(fiches_action.collectivite_id) + END; + + +-- stats.crm_usages; +create materialized view stats.crm_usages as +WITH premier_rattachements AS ( + SELECT private_utilisateur_droit.collectivite_id, + min(private_utilisateur_droit.created_at)::date AS date + FROM private_utilisateur_droit + WHERE private_utilisateur_droit.active + GROUP BY private_utilisateur_droit.collectivite_id + ), + comptes AS ( + SELECT c_1.collectivite_id, + ( + SELECT count(*) AS count + FROM fiche_action x_1 + WHERE x_1.collectivite_id = c_1.collectivite_id + ) AS fiches, + ( + SELECT count(*) AS count + FROM axe x_1 + WHERE x_1.collectivite_id = c_1.collectivite_id + AND x_1.parent IS NULL + ) AS plans, + ( + SELECT count(*) AS count + FROM indicateur_valeur x_1 + JOIN indicateur_definition id on x_1.indicateur_id = id.id + WHERE x_1.collectivite_id = c_1.collectivite_id + AND x_1.resultat is not null + AND id.collectivite_id is null + ) AS resultats_indicateurs, + ( + SELECT count(*) AS count + FROM indicateur_definition x_1 + WHERE x_1.collectivite_id is not null + AND x_1.collectivite_id = c_1.collectivite_id + ) AS indicateurs_perso, + ( + SELECT count(*) AS count + FROM indicateur_valeur x_1 + JOIN indicateur_definition id on x_1.indicateur_id = id.id + WHERE x_1.collectivite_id = c_1.collectivite_id + AND x_1.resultat is not null + AND id.collectivite_id is not null + ) AS resultats_indicateurs_perso + FROM stats.collectivite c_1 + ) +SELECT c.collectivite_id, + ((c.nom::text || ' ('::text) || c.collectivite_id) || ')'::text AS key, + pc.completude_eci, + pc.completude_cae, + x.fiches, + x.plans, + x.resultats_indicateurs, + x.indicateurs_perso, + x.resultats_indicateurs_perso, + pr.date AS premier_rattachement, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND f.titre IS NOT NULL + AND (f.description IS NOT NULL OR f.objectifs IS NOT NULL) + ) AS fiches_initiees, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND (f.statut IS NOT NULL OR f.niveau_priorite IS NOT NULL OR f.date_debut IS NOT NULL OR + f.date_fin_provisoire IS NOT NULL OR (f.id IN ( + SELECT fiche_action_structure_tag.fiche_id + FROM fiche_action_structure_tag + )) OR (f.id IN ( + SELECT st.fiche_id + FROM fiche_action_pilote st + )) OR (f.id IN ( + SELECT fiche_action_service_tag.fiche_id + FROM fiche_action_service_tag + ))) + ) AS fiches_pilotage, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND (f.id IN ( + SELECT fiche_action_indicateur.fiche_id + FROM fiche_action_indicateur + )) + ) AS fiches_indicateur, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND (f.id IN ( + SELECT fiche_action_action.fiche_id + FROM fiche_action_action + )) + ) AS fiches_action_referentiel, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND (f.id IN ( + SELECT fiches_liees_par_fiche.fiche_id + FROM fiches_liees_par_fiche + )) + ) AS fiches_fiche_liee, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND f.modified_at > (CURRENT_TIMESTAMP - '1 mon'::interval) + ) AS fiches_mod_1mois, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND f.modified_at > (CURRENT_TIMESTAMP - '3 mons'::interval) + ) AS fiches_mod_3mois, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND f.modified_at > (CURRENT_TIMESTAMP - '6 mons'::interval) + ) AS fiches_mod_6mois, + ( + SELECT min(f.created_at) AS min + FROM ( + SELECT p.created_at, + count(f_1.*) AS nb_fiche + FROM fiche_action f_1 + JOIN fiche_action_axe faa ON f_1.id = faa.fiche_id + JOIN axe a ON a.id = faa.axe_id + JOIN axe p ON a.plan = p.id + WHERE f_1.collectivite_id = c.collectivite_id + AND (f_1.titre IS NOT NULL OR f_1.titre::text <> 'Nouvelle fiche'::text) + AND p.nom IS NOT NULL + GROUP BY p.id, p.created_at + ) f + WHERE f.nb_fiche > 4 + ) AS pa_date_creation, + ( + SELECT count(*) AS count + FROM visite + WHERE visite.page = 'plan'::visite_page + AND visite.collectivite_id = c.collectivite_id + AND visite."time" > (CURRENT_TIMESTAMP - '1 mon'::interval) + ) AS pa_view_1mois, + ( + SELECT count(*) AS count + FROM visite + WHERE visite.page = 'plan'::visite_page + AND visite.collectivite_id = c.collectivite_id + AND visite."time" > (CURRENT_TIMESTAMP - '3 mons'::interval) + ) AS pa_view_3mois, + ( + SELECT count(*) AS count + FROM visite + WHERE visite.page = 'plan'::visite_page + AND visite.collectivite_id = c.collectivite_id + AND visite."time" > (CURRENT_TIMESTAMP - '6 mons'::interval) + ) AS pa_view_6mois, + ( + SELECT count(*) AS count + FROM ( + SELECT p.id, + count(f_1.*) AS nb_fiche + FROM fiche_action f_1 + JOIN fiche_action_axe faa ON f_1.id = faa.fiche_id + JOIN axe a ON a.id = faa.axe_id + JOIN axe p ON a.plan = p.id + WHERE f_1.collectivite_id = c.collectivite_id + AND (f_1.titre IS NOT NULL OR f_1.titre::text <> 'Nouvelle fiche'::text) + AND p.nom IS NOT NULL + GROUP BY p.id + ) f + WHERE f.nb_fiche > 4 + ) AS pa_non_vides, + ( + SELECT count(*) AS count + FROM ( + SELECT p.id, + count(f_1.*) AS nb_fiche + FROM fiche_action f_1 + JOIN fiche_action_pilote fap ON f_1.id = fap.fiche_id + JOIN fiche_action_axe faa ON f_1.id = faa.fiche_id + JOIN axe a ON a.id = faa.axe_id + JOIN axe p ON a.plan = p.id + WHERE f_1.collectivite_id = c.collectivite_id + AND (f_1.titre IS NOT NULL OR f_1.titre::text <> 'Nouvelle fiche'::text) + AND f_1.statut IS NOT NULL + AND p.nom IS NOT NULL + GROUP BY p.id + ) f + WHERE f.nb_fiche > 4 + ) AS pa_pilotables, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND (f.titre IS NOT NULL OR f.titre::text <> 'Nouvelle fiche'::text) + ) AS fiches_non_vides, + ( + SELECT count(*) AS count + FROM fiche_action f + JOIN fiche_action_pilote fap ON f.id = fap.fiche_id + WHERE f.collectivite_id = c.collectivite_id + AND (f.titre IS NOT NULL OR f.titre::text <> 'Nouvelle fiche'::text) + AND f.statut IS NOT NULL + ) AS fiches_pilotables, + ( + SELECT count(*) > 4 + FROM fiche_action f + LEFT JOIN fiche_action_pilote fap ON f.id = fap.fiche_id + WHERE f.collectivite_id = c.collectivite_id + AND (f.titre IS NOT NULL OR f.titre::text <> 'Nouvelle fiche'::text) + AND (f.statut IS NOT NULL OR f.niveau_priorite IS NOT NULL OR f.date_fin_provisoire IS NOT NULL OR + fap.* IS NOT NULL) + ) AS _5fiches_1pilotage, + ( + SELECT count(*) AS count + FROM historique.fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND (f.previous_statut <> f.statut OR f.previous_statut IS NULL AND f.statut IS NOT NULL OR + f.previous_statut IS NOT NULL AND f.statut IS NULL) + AND f.modified_at > (CURRENT_TIMESTAMP - '6 mons'::interval) + ) AS fiches_changement_statut, + CASE + WHEN x.fiches = 0 THEN 0::numeric + ELSE (( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND f.restreint = true + ) + )::numeric / x.fiches::numeric * 100::numeric + END AS pourcentage_fa_privee, + CASE + WHEN x.fiches = 0 THEN 0::numeric + ELSE (( + SELECT count(*) AS count + FROM fiche_action f + JOIN fiche_action_pilote fap ON f.id = fap.fiche_id + WHERE f.collectivite_id = c.collectivite_id + AND f.restreint = true + AND (f.titre IS NOT NULL OR f.titre::text <> 'Nouvelle fiche'::text) + AND f.statut IS NOT NULL + ) + )::numeric / x.fiches::numeric * 100::numeric + END AS pourcentage_fa_pilotable_privee, + ( + SELECT count(ic.*) AS count + FROM indicateur_collectivite ic + WHERE ic.collectivite_id = c.collectivite_id + AND ic.confidentiel = true + ) AS indicateur_prive, + ( + SELECT count(ic.*) > 0 + FROM indicateur_collectivite ic + WHERE ic.collectivite_id = c.collectivite_id + AND ic.confidentiel = true + ) AS min1_indicateur_prive, + ( + SELECT count(ic.*) > 0 + FROM indicateur_collectivite ic + JOIN indicateur_definition id on ic.indicateur_id = id.id + WHERE ic.collectivite_id = c.collectivite_id + AND id.collectivite_id is null + AND ic.confidentiel = true + ) AS min1_indicateur_predef_prive, + ( + SELECT count(ic.*) > 0 + FROM indicateur_collectivite ic + JOIN indicateur_definition id on ic.indicateur_id = id.id + WHERE ic.collectivite_id = c.collectivite_id + AND id.collectivite_id is not null + AND ic.confidentiel = true + ) AS min1_indicateur_perso_prive, + ( + SELECT i.pourcentage + FROM ( + SELECT c_1.id AS collectivite_id, + case when (( + SELECT count(*) AS count + FROM indicateur_definition + WHERE collectivite_id is null + ) + ) = 0 then 0::double precision + else + count(ic.*)::double precision / (( + SELECT count(*) AS count + FROM indicateur_definition + WHERE collectivite_id is null + ) + )::double precision * 100::double precision + end AS pourcentage + FROM collectivite c_1 + LEFT JOIN (select i.* from indicateur_collectivite i + join indicateur_definition id on i.indicateur_id = id.id + where i.confidentiel = true + and id.collectivite_id is null) ic + ON ic.collectivite_id = c_1.id + GROUP BY c_1.id + ) i + WHERE i.collectivite_id = c.collectivite_id + ) AS pourcentage_indicateur_predef_prives, + ( + SELECT array_agg(DISTINCT pat.type) AS array_agg + FROM ( + SELECT p.id, + count(f_1.*) AS nb_fiche + FROM fiche_action f_1 + JOIN fiche_action_pilote fap ON f_1.id = fap.fiche_id + JOIN fiche_action_axe faa ON f_1.id = faa.fiche_id + JOIN axe a_1 ON a_1.id = faa.axe_id + JOIN axe p ON a_1.plan = p.id + WHERE f_1.collectivite_id = c.collectivite_id + AND (f_1.titre IS NOT NULL OR f_1.titre::text <> 'Nouvelle fiche'::text) + AND f_1.statut IS NOT NULL + AND p.nom IS NOT NULL + GROUP BY p.id + ) f + JOIN axe a ON f.id = a.id + LEFT JOIN plan_action_type pat ON a.type = pat.id + WHERE f.nb_fiche > 4 + ) AS type_pa +FROM stats.collectivite c +JOIN stats.collectivite_active USING (collectivite_id) +LEFT JOIN comptes x USING (collectivite_id) +LEFT JOIN stats.pourcentage_completude pc USING (collectivite_id) +LEFT JOIN premier_rattachements pr USING (collectivite_id) +ORDER BY c.nom; +comment on column stats.crm_usages.pa_date_creation is 'Date de création du premier plan (avec +5 FA non vides) pour chaque collectivité concernées'; +comment on column stats.crm_usages.pa_view_1mois is 'Nombre de consultations de Plans d''action (tous plans confondus, non vides) au cours du mois dernier'; +comment on column stats.crm_usages.pa_view_3mois is 'Nombre de consultations de Plans d''action (tous plans confondus, non vides) au cours des 3 derniers mois'; +comment on column stats.crm_usages.pa_view_6mois is 'Nombre de consultations de Plans d''action (tous plans confondus, non vides) au cours des 6 derniers mois.'; +comment on column stats.crm_usages.pa_non_vides is 'Nombre de plans non vides (minimum un titre de PA et 5 FA non vides)'; +comment on column stats.crm_usages.pa_pilotables is 'Nombre de plans “pilotables” (= avec min. 5 FA, qui ont à minima, le titre, le pilote et le statut renseigné)'; +comment on column stats.crm_usages.fiches_non_vides is 'Nombre de fiches actions non vides'; +comment on column stats.crm_usages.fiches_pilotables is 'Nombre de fiches actions pilotables ( = à minima le titre, le pilote et le statut renseigné)'; +comment on column stats.crm_usages._5fiches_1pilotage is 'Nombre de collectivités qui ont au moins 5 FA avec au moins le titre + 1 critère de pilotage renseigné (soit statut ou priorité ou date prévisionnelle ou responsable)'; +comment on column stats.crm_usages.fiches_changement_statut is 'Nombre de changements de statut de fiches actions dans les 6 derniers mois par collectivité (tous les status)'; +comment on column stats.crm_usages.pourcentage_fa_privee is '% de fiches action privées par collectivité'; +comment on column stats.crm_usages.pourcentage_fa_pilotable_privee is '% de fiches action pilotables privées (avec au moins un titre rempli, le pilote et le statut)'; +comment on column stats.crm_usages.indicateur_prive is 'Nombre d''indicateurs privés par collectivité'; +comment on column stats.crm_usages.min1_indicateur_prive is 'Vrai si au moins un indicateur privé'; +comment on column stats.crm_usages.min1_indicateur_predef_prive is 'Vrai si au moins un indicateur prédéfini privé'; +comment on column stats.crm_usages.min1_indicateur_perso_prive is 'Vrai si au moins un indicateur perso privé'; +comment on column stats.crm_usages.pourcentage_indicateur_predef_prives is '% d''indicateur prédéfini privé par collectivité'; +comment on column stats.crm_usages.type_pa is 'Liste de tous les types des plans pilotables de la collectivité'; + +-- public.crm_usages; +create view public.crm_usages as +SELECT crm_usages.collectivite_id, + crm_usages.key, + crm_usages.completude_eci, + crm_usages.completude_cae, + crm_usages.fiches, + crm_usages.plans, + crm_usages.resultats_indicateurs, + crm_usages.indicateurs_perso, + crm_usages.resultats_indicateurs_perso, + crm_usages.premier_rattachement, + crm_usages.fiches_initiees, + crm_usages.fiches_pilotage, + crm_usages.fiches_indicateur, + crm_usages.fiches_action_referentiel, + crm_usages.fiches_fiche_liee, + crm_usages.fiches_mod_1mois, + crm_usages.fiches_mod_3mois, + crm_usages.fiches_mod_6mois, + crm_usages.pa_date_creation, + crm_usages.pa_view_1mois, + crm_usages.pa_view_3mois, + crm_usages.pa_view_6mois, + crm_usages.pa_non_vides, + crm_usages.pa_pilotables, + crm_usages.fiches_non_vides, + crm_usages.fiches_pilotables, + crm_usages._5fiches_1pilotage, + crm_usages.fiches_changement_statut, + crm_usages.pourcentage_fa_privee, + crm_usages.pourcentage_fa_pilotable_privee, + crm_usages.indicateur_prive, + crm_usages.min1_indicateur_prive, + crm_usages.min1_indicateur_predef_prive, + crm_usages.min1_indicateur_perso_prive, + crm_usages.pourcentage_indicateur_predef_prives, + crm_usages.type_pa +FROM stats.crm_usages +WHERE is_service_role(); + +-- stats.crm_indicateurs; +create materialized view stats.crm_indicateurs as +SELECT i.id, + id.titre, + i.nb_prive, + i.nb_prive::double precision / (( + SELECT count(*) AS count + FROM indicateur_definition + WHERE collectivite_id is null + ) + )::double precision * 100::double precision AS pourcentage_prive +FROM ( + SELECT id_1.id, + count(ic.*) FILTER (WHERE ic.confidentiel = true) AS nb_prive + FROM indicateur_definition id_1 + LEFT JOIN indicateur_collectivite ic ON id_1.id = ic.indicateur_id + WHERE id_1.collectivite_id is null + GROUP BY id_1.id + ) i +JOIN indicateur_definition id ON i.id = id.id +ORDER BY i.nb_prive DESC; + + +-- public.crm_indicateurs; +create view public.crm_indicateurs as +SELECT id, + titre, + nb_prive, + pourcentage_prive +FROM stats.crm_indicateurs +WHERE is_service_role(); + + +-- stats.refresh_views_crm; +create function stats.refresh_views_crm() returns void + security definer + language plpgsql +as +$$ +begin + refresh materialized view stats.crm_usages; + refresh materialized view stats.crm_indicateurs; + refresh materialized view stats.crm_plans; +end ; +$$; + +-- stats.refresh_views; +create function stats.refresh_views() returns void + security definer + language plpgsql +as +$$ +begin + refresh materialized view stats.collectivite; + refresh materialized view stats.collectivite_utilisateur; + refresh materialized view stats.collectivite_referentiel; + refresh materialized view stats.collectivite_labellisation; + refresh materialized view stats.collectivite_plan_action; + refresh materialized view stats.collectivite_action_statut; + refresh materialized view stats.evolution_activation; + refresh materialized view stats.rattachement; + refresh materialized view stats.utilisateur; + refresh materialized view stats.evolution_utilisateur; + refresh materialized view stats.connection; + refresh materialized view stats.evolution_connection; + refresh materialized view stats.carte_collectivite_active; + refresh materialized view stats.evolution_total_activation_par_type; + refresh materialized view stats.collectivite_actives_et_total_par_type; + refresh materialized view stats.evolution_nombre_utilisateur_par_collectivite; + refresh materialized view stats.carte_epci_par_departement; + refresh materialized view stats.pourcentage_completude; + refresh materialized view stats.evolution_collectivite_avec_minimum_fiches; + refresh materialized view stats.evolution_indicateur_referentiel; + refresh materialized view stats.evolution_resultat_indicateur_referentiel; + refresh materialized view stats.evolution_resultat_indicateur_personnalise; + refresh materialized view stats.engagement_collectivite; + refresh materialized view stats.evolution_nombre_fiches; + refresh materialized view stats.evolution_nombre_plans; + refresh materialized view stats.evolution_nombre_labellisations; +end ; +$$; + + +-- stats.refresh_reporting; +create function stats.refresh_reporting() returns void + language plpgsql +as +$$ +begin + refresh materialized view stats.report_scores; + refresh materialized view stats.report_reponse_choix; + refresh materialized view stats.report_reponse_binaire; + refresh materialized view stats.report_reponse_proportion; + refresh materialized view stats.report_indicateur_resultat; + refresh materialized view stats.report_indicateur_personnalise; +end; +$$; +comment on function stats.refresh_reporting() is 'Rafraichit les vues matérialisées.'; + +-- private.enlever_indicateur; +create function private.enlever_indicateur(fiche_id integer, indicateur indicateur_definition) returns void + language plpgsql +as +$$ +begin + delete from fiche_action_indicateur + where fiche_action_indicateur.fiche_id = enlever_indicateur.fiche_id + and fiche_action_indicateur.indicateur_id = enlever_indicateur.indicateur.id; +end; +$$; +comment on function private.enlever_indicateur(integer, indicateur_definition) is 'Enlever une indicateur à la fiche'; + +-- private.ajouter_indicateur; +create function private.ajouter_indicateur(fiche_id integer, indicateur indicateur_definition) returns void + language plpgsql +as +$$ +begin + insert into fiche_action_indicateur (fiche_id, indicateur_id) + values (ajouter_indicateur.fiche_id, indicateur.id); +end; +$$; + + +-- public.upsert_fiche_action; +create function public.upsert_fiche_action() returns trigger + security definer + language plpgsql +as +$$ +declare + id_fiche integer; + thematique thematique; + sous_thematique sous_thematique; + axe axe; + partenaire partenaire_tag; + structure structure_tag; + pilote personne; + referent personne; + action action_relation; + indicateur indicateur_definition; + service service_tag; + financeur financeur_montant; + fiche_liee fiche_resume; +begin + id_fiche = new.id; + if not have_edition_acces(new.collectivite_id) and not is_service_role() then + perform set_config('response.status', '401', true); + raise 'Modification non autorisé.'; + end if; + -- Fiche action + if id_fiche is null then + insert into fiche_action (titre, + description, + piliers_eci, + objectifs, + resultats_attendus, + cibles, + ressources, + financements, + budget_previsionnel, + statut, + niveau_priorite, + date_debut, + date_fin_provisoire, + amelioration_continue, + calendrier, + notes_complementaires, + maj_termine, + collectivite_id, + restreint) + values (new.titre, + new.description, + new.piliers_eci, + new.objectifs, + new.resultats_attendus, + new.cibles, + new.ressources, + new.financements, + new.budget_previsionnel, + new.statut, + new.niveau_priorite, + new.date_debut, + new.date_fin_provisoire, + new.amelioration_continue, + new.calendrier, + new.notes_complementaires, + new.maj_termine, + new.collectivite_id, + new.restreint) + returning id into id_fiche; + new.id = id_fiche; + else + update fiche_action + set titre = new.titre, + description= new.description, + piliers_eci= new.piliers_eci, + objectifs= new.objectifs, + resultats_attendus= new.resultats_attendus, + cibles= new.cibles, + ressources= new.ressources, + financements= new.financements, + budget_previsionnel= new.budget_previsionnel, + statut= new.statut, + niveau_priorite= new.niveau_priorite, + date_debut= new.date_debut, + date_fin_provisoire= new.date_fin_provisoire, + amelioration_continue= new.amelioration_continue, + calendrier= new.calendrier, + notes_complementaires= new.notes_complementaires, + maj_termine= new.maj_termine, + collectivite_id = new.collectivite_id, + restreint = new.restreint + where id = id_fiche; + end if; + + -- Thématiques + delete from fiche_action_thematique where fiche_id = id_fiche; + if new.thematiques is not null then + foreach thematique in array new.thematiques::thematique[] + loop + perform private.ajouter_thematique(id_fiche, thematique.nom); + end loop; + end if; + delete from fiche_action_sous_thematique where fiche_id = id_fiche; + if new.sous_thematiques is not null then + foreach sous_thematique in array new.sous_thematiques::sous_thematique[] + loop + perform private.ajouter_sous_thematique(id_fiche, sous_thematique.id); + end loop; + end if; + + -- Axes + delete from fiche_action_axe where fiche_id = id_fiche; + if new.axes is not null then + foreach axe in array new.axes::axe[] + loop + perform ajouter_fiche_action_dans_un_axe(id_fiche, axe.id); + end loop; + end if; + + -- Partenaires + delete from fiche_action_partenaire_tag where fiche_id = id_fiche; + if new.partenaires is not null then + foreach partenaire in array new.partenaires::partenaire_tag[] + loop + perform private.ajouter_partenaire(id_fiche, partenaire); + end loop; + end if; + + -- Structures + delete from fiche_action_structure_tag where fiche_id = id_fiche; + if new.structures is not null then + foreach structure in array new.structures + loop + perform private.ajouter_structure(id_fiche, structure); + end loop; + end if; + + -- Pilotes + delete from fiche_action_pilote where fiche_id = id_fiche; + if new.pilotes is not null then + foreach pilote in array new.pilotes::personne[] + loop + perform private.ajouter_pilote(id_fiche, pilote); + end loop; + end if; + -- Referents + delete from fiche_action_referent where fiche_id = id_fiche; + if new.referents is not null then + foreach referent in array new.referents::personne[] + loop + perform private.ajouter_referent(id_fiche, referent); + end loop; + end if; + + -- Actions + delete from fiche_action_action where fiche_id = id_fiche; + if new.actions is not null then + foreach action in array new.actions::action_relation[] + loop + perform private.ajouter_action(id_fiche, action.id); + end loop; + end if; + + -- Indicateurs + delete from fiche_action_indicateur where fiche_id = id_fiche; + if new.indicateurs is not null then + foreach indicateur in array new.indicateurs::indicateur_definition[] + loop + perform private.ajouter_indicateur(id_fiche, indicateur); + end loop; + end if; + + -- Services + delete from fiche_action_service_tag where fiche_id = id_fiche; + if new.services is not null then + foreach service in array new.services + loop + perform private.ajouter_service(id_fiche, service); + end loop; + end if; + -- Financeurs + delete from fiche_action_financeur_tag where fiche_id = id_fiche; + if new.financeurs is not null then + foreach financeur in array new.financeurs::financeur_montant[] + loop + perform private.ajouter_financeur(id_fiche, financeur); + end loop; + end if; + + -- Fiches liees + delete from fiche_action_lien where fiche_une = id_fiche or fiche_deux = id_fiche; + if new.fiches_liees is not null then + foreach fiche_liee in array new.fiches_liees::private.fiche_resume[] + loop + insert into fiche_action_lien (fiche_une, fiche_deux) + values (id_fiche, fiche_liee.id); + end loop; + end if; + + return new; +end; +$$; + +-- upsert on public.fiches_action; +create trigger upsert + instead of insert or update + on public.fiches_action + for each row +execute procedure upsert_fiche_action(); + +-- public.plan_action_export; +create function public.plan_action_export(id integer) returns SETOF fiche_action_export + language sql +BEGIN ATOMIC +WITH RECURSIVE parents AS ( + SELECT axe.id, + axe.nom, + axe.collectivite_id, + 0 AS depth, + ARRAY[]::text[] AS path, + ('0 '::text || axe.nom) AS sort_path + FROM axe + WHERE ((axe.parent IS NULL) AND (axe.id = plan_action_export.id) AND can_read_acces_restreint(axe.collectivite_id)) + UNION ALL + SELECT a.id, + a.nom, + a.collectivite_id, + (p_1.depth + 1), + (p_1.path || p_1.nom), + ((((p_1.sort_path || ' '::text) || (p_1.depth + 1)) || ' '::text) || a.nom) + FROM (parents p_1 + JOIN axe a ON ((a.parent = p_1.id))) + ), fiches AS ( + SELECT a.id AS axe_id, + f_1.*::fiches_action AS fiche, + f_1.titre + FROM ((parents a + JOIN fiche_action_axe faa ON ((a.id = faa.axe_id))) + JOIN fiches_action f_1 ON (((f_1.collectivite_id = a.collectivite_id) AND (faa.fiche_id = f_1.id)))) + ) +SELECT p.id, + p.nom, + p.path, + to_jsonb(f.*) AS to_jsonb +FROM (parents p + LEFT JOIN fiches f ON ((p.id = f.axe_id))) +ORDER BY (naturalsort((p.sort_path || (COALESCE(f.titre, ''::character varying))::text))); +END; + + +-- public.fiche_resume(fiche_action_indicateur); +create function public.fiche_resume(fiche_action_indicateur fiche_action_indicateur) returns SETOF fiche_resume + stable + security definer + rows 1 + language sql +BEGIN ATOMIC +SELECT fr.plans, + fr.titre, + fr.id, + fr.statut, + fr.collectivite_id, + fr.pilotes, + fr.modified_at, + fr.date_fin_provisoire, + fr.niveau_priorite, + fr.restreint, + fr.amelioration_continue +FROM private.fiche_resume fr +WHERE fr.id = fiche_resume.fiche_action_indicateur.fiche_id + AND can_read_acces_restreint(fr.collectivite_id); +END; + +-- public.delete_fiche_action; +create function public.delete_fiche_action() returns trigger + security definer + language plpgsql +as +$$ +declare +begin + delete from fiche_action_thematique where fiche_id = old.id; + delete from fiche_action_sous_thematique where fiche_id = old.id; + delete from fiche_action_partenaire_tag where fiche_id = old.id; + delete from fiche_action_structure_tag where fiche_id = old.id; + alter table fiche_action_pilote disable trigger save_history; + delete from fiche_action_pilote where fiche_id = old.id; + alter table fiche_action_pilote enable trigger save_history; + delete from fiche_action_referent where fiche_id = old.id; + delete from fiche_action_indicateur where fiche_id = old.id; + delete from fiche_action_action where fiche_id = old.id; + delete from fiche_action_axe where fiche_id = old.id; + delete from fiche_action_financeur_tag where fiche_id = old.id; + delete from fiche_action_service_tag where fiche_id = old.id; + delete from fiche_action_lien where fiche_une = old.id or fiche_deux = old.id; + return old; +end; +$$; + + +-- delete on public.fiche_action; +create trigger delete + before delete + on fiche_action + for each row +execute procedure delete_fiche_action(); + +-- public.create_fiche; +create function public.create_fiche( + collectivite_id integer, + axe_id integer DEFAULT NULL::integer, + action_id action_id DEFAULT NULL::character varying, + indicateur_id integer DEFAULT NULL::integer +) returns fiche_resume + security definer + language plpgsql +as +$$ +declare + new_fiche_id int; + resume fiche_resume; +begin + if not have_edition_acces(create_fiche.collectivite_id) and not is_service_role() + then + perform set_config('response.status', '403', true); + raise 'L''utilisateur n''a pas de droit en édition sur la collectivité.'; + end if; + + insert into fiche_action (collectivite_id, titre) + values (create_fiche.collectivite_id, '') + returning id into new_fiche_id; + + if create_fiche.axe_id is not null + then + insert into fiche_action_axe (fiche_id, axe_id) + values (new_fiche_id, create_fiche.axe_id); + end if; + + if create_fiche.action_id is not null + then + insert into fiche_action_action (fiche_id, action_id) + values (new_fiche_id, create_fiche.action_id); + end if; + + if create_fiche.indicateur_id is not null + then + insert into fiche_action_indicateur (fiche_id, indicateur_id) + values (new_fiche_id, create_fiche.indicateur_id); + end if; + + select * from fiche_resume where id = new_fiche_id limit 1 into resume; + return resume; +end; +$$; +comment on function public.create_fiche(integer, integer, action_id, integer) is + 'Crée une nouvelle fiche action dans un axe, une action ou un indicateur.'; + +-- public.indicateurs_gaz_effet_serre; +create function public.indicateurs_gaz_effet_serre(site_labellisation) returns SETOF indicateur_valeur[] + security definer + rows 1 + language sql +BEGIN ATOMIC +SELECT COALESCE( + ( + SELECT array_agg(iri.*) AS array_agg + FROM indicateur_valeur iri + JOIN indicateur_definition id on iri.indicateur_id = id.id + WHERE iri.collectivite_id = ($1).collectivite_id AND + iri.metadonnee_id is not null AND + id.identifiant_referentiel::text = ANY ( + ARRAY[ + 'cae_1.g'::character varying, + 'cae_1.f'::character varying, + 'cae_1.h'::character varying, + 'cae_1.j'::character varying, + 'cae_1.i'::character varying, + 'cae_1.c'::character varying, + 'cae_1.e'::character varying, + 'cae_1.d'::character varying, + 'cae_1.a'::character varying + ]::text[]) + ), + '{}'::indicateur_valeur[] + ) AS "coalesce"; +END; +comment on function indicateurs_gaz_effet_serre(site_labellisation) is 'Indicateurs gaz à effet de serre.'; + +-- public.indicateur_summary +create view public.indicateur_summary as +SELECT c.id AS collectivite_id, + ct.nom AS categorie, + count(def.*) AS nombre, + count(iv.*) AS rempli +FROM collectivite c +CROSS JOIN categorie_tag ct +LEFT JOIN indicateur_categorie_tag ict on ct.id = ict.categorie_tag_id +LEFT JOIN indicateur_definition def on ict.indicateur_id = def.id +LEFT JOIN (select indicateur_id, collectivite_id + from indicateur_valeur + where resultat is not null + group by indicateur_id, collectivite_id + ) iv on def.id = iv.indicateur_id and c.id = iv.collectivite_id +WHERE ct.collectivite_id is null + and ct.nom not in ('resultat', 'impact', 'prioritaire') + and def.collectivite_id is null +GROUP BY c.id, ct.id +UNION ALL +SELECT perso.collectivite_id, + 'perso'::text AS categorie, + count(perso.*) AS nombre, + count(iv.*) AS rempli +FROM indicateur_definition perso +LEFT JOIN (select indicateur_id, collectivite_id + from indicateur_valeur + where resultat is not null + group by indicateur_id, collectivite_id + ) iv on perso.id = iv.indicateur_id and perso.collectivite_id = iv.collectivite_id +WHERE perso.collectivite_id is not null +GROUP BY perso.collectivite_id; +comment on view indicateur_summary is + 'Permet d''obtenir le nombre de résultats saisis par indicateur pour chaque collectivité.'; + + +-- Crée les éléments concernés +-- public.indicateur_pilote_user(indicateur_pilote) +create or replace function public.indicateur_pilote_user(indicateur_pilote) returns dcp + stable + security definer + language sql +BEGIN ATOMIC +SELECT * +FROM dcp +WHERE user_id = ($1).user_id +limit 1; +END; + +-- public.indicateur_enfants +create function public.indicateur_enfants(indicateur_definition) returns SETOF indicateur_definition + stable + security definer + language sql +BEGIN ATOMIC +SELECT def.*::indicateur_definition AS def +FROM indicateur_definition def +JOIN indicateur_groupe ig on def.id = ig.enfant +WHERE ig.parent = ($1).id AND is_authenticated(); +END; +comment on function public.indicateur_enfants(indicateur_definition) is 'Définitions des indicateurs enfants'; + +-- public.indicateur_parents +create function public.indicateur_parents(indicateur_definition) returns SETOF indicateur_definition + stable + security definer + language sql +BEGIN ATOMIC +SELECT def.*::indicateur_definition AS def +FROM indicateur_definition def +JOIN indicateur_groupe ig on def.id = ig.parent +WHERE ig.enfant = ($1).id AND is_authenticated(); +END; +comment on function public.indicateur_parents(indicateur_definition) is 'Définitions des indicateurs parents'; + + +-- Trigger json indicateur + +create or replace function + private.upsert_indicateurs_after_json_insert() + returns trigger +as +$$ +declare + indicateur jsonb; + id_courant integer; +begin + for indicateur in select * from jsonb_array_elements(new.indicateurs) + loop + insert into indicateur_definition(identifiant_referentiel, + titre, + titre_long, + description, + unite, + participation_score, + sans_valeur_utilisateur, + modified_at) + values (indicateur ->> 'id', + indicateur ->> 'nom', + indicateur ->> 'titre_long', + indicateur ->> 'description', + indicateur ->> 'unite', + (indicateur -> 'participation_score')::bool, + (indicateur -> 'sans_valeur')::bool, + now() + ) + on conflict (identifiant_referentiel) do update + set identifiant_referentiel = excluded.identifiant_referentiel, + titre = excluded.titre, + titre_long = excluded.titre_long, + description = excluded.description, + unite = excluded.unite, + participation_score = excluded.participation_score, + sans_valeur_utilisateur = excluded.sans_valeur_utilisateur, + modified_at = excluded.modified_at + returning id into id_courant; + + --- Enlève les tags TeT s'ils existent déjà + delete + from indicateur_categorie_tag ict + where ict.indicateur_id = id_courant + and ict.categorie_tag_id in ( + select id + from categorie_tag + where collectivite_id is null and groupement_id is null); + --- Met les tags TeT + -- selection + if (indicateur -> 'selection')::bool then + insert into indicateur_categorie_tag (indicateur_id, categorie_tag_id) + select id_courant, (select id + from categorie_tag + where nom = 'prioritaire' + and collectivite_id is null and groupement_id is null + limit 1); + end if; + -- type + if indicateur -> 'type' != 'null' and (indicateur -> 'type')::text in ('resultat','impact') then + insert into indicateur_categorie_tag (indicateur_id, categorie_tag_id) + select id_courant, (select id + from categorie_tag + where nom = (indicateur -> 'type')::text + and collectivite_id is null and groupement_id is null + limit 1); + end if; + -- programmes + if indicateur -> 'programmes' != 'null' then + insert into indicateur_categorie_tag (indicateur_id, categorie_tag_id) + select id_courant, (select id + from categorie_tag + where nom = pg::text + and collectivite_id is null and groupement_id is null + limit 1) + from jsonb_array_elements_text(indicateur -> 'programmes') as pg + where pg::text in (select nom from categorie_tag where collectivite_id is null); + end if; + + -- actions + if indicateur -> 'action_ids' != 'null' then + --- insert les liens + insert into indicateur_action (indicateur_id, action_id) + select id_courant, id::action_id + from jsonb_array_elements_text(indicateur -> 'action_ids') as id + on conflict (indicateur_id, action_id) do nothing; + --- enlève les liens qui n'existent plus + delete + from indicateur_action ia + where ia.indicateur_id = id_courant + and ia.action_id not in + (select id::action_id from jsonb_array_elements_text(indicateur -> 'action_ids') as id); + end if; + + -- thematiques + --- enlève les thématiques déjà existante + delete + from indicateur_thematique ia + where ia.indicateur_id = id_courant; + if indicateur -> 'thematiques' != 'null' then + --- insert les nouvelles thématiques + insert into indicateur_thematique (indicateur_id, thematique_id) + select id_courant, (select id + from thematique + where md_id = th::old_indicateur_thematique + limit 1) + from jsonb_array_elements_text(indicateur -> 'thematiques') as th + where th::old_indicateur_thematique in ( + select distinct md_id + from thematique + ) + on conflict (indicateur_id, thematique_id) do nothing; + end if; + + -- Supprime les liens de parentés qu'on recréera dans une autre itération + delete + from indicateur_groupe + where enfant = id_courant; + end loop; + + -- parent + for indicateur in select * from jsonb_array_elements(new.indicateurs) + loop + if indicateur -> 'parent' != 'null' + and (select count(*)>0 + from indicateur_definition + where identifiant_referentiel = (indicateur -> 'parent')::text) then + insert into indicateur_groupe (parent, enfant) + values ((select id + from indicateur_definition + where identifiant_referentiel = (indicateur -> 'parent')::text + limit 1), + (select id + from indicateur_definition + where identifiant_referentiel = (indicateur -> 'id')::text + limit 1)); + end if; + end loop; + + return new; +end; +$$ language plpgsql; + +comment on function private.upsert_indicateurs_after_json_insert() is 'Mets à jour les définitions des indicateurs ansi que les liens avec les actions.'; + + +create trigger after_indicateurs_json + after insert + on indicateurs_json + for each row +execute procedure private.upsert_indicateurs_after_json_insert(); + + +COMMIT; diff --git a/data_layer/sqitch/revert/indicateur/fusion.sql b/data_layer/sqitch/revert/indicateur/fusion.sql new file mode 100644 index 0000000000..e328a92595 --- /dev/null +++ b/data_layer/sqitch/revert/indicateur/fusion.sql @@ -0,0 +1,2865 @@ +-- Revert tet:indicateur/fusion from pg + +BEGIN; + +-- Supprimer trigger insert indicateur json +drop trigger after_indicateurs_json on indicateurs_json; +drop function private.upsert_indicateurs_after_json_insert; + +-- Supprime les nouveaux éléments autres que les tables +drop function public.indicateur_pilote_user(indicateur_pilote); +drop function public.indicateur_enfants(indicateur_definition); +drop function public.indicateur_parents(indicateur_definition); + +-- Supprime les éléments indirectement liés aux indicateurs +drop view public.indicateur_summary; +drop function public.indicateurs_gaz_effet_serre(site_labellisation); +drop function public.create_fiche; +drop trigger delete on public.fiche_action; -- Utilise public.delete_fiche_action +drop function public.delete_fiche_action; -- trigger +drop function public.fiche_resume(fiche_action_indicateur); +drop function public.plan_action_export; -- Utilise public.fiches_action +drop trigger upsert on public.fiches_action; -- Utilise public.upsert_fiche_action +drop function public.upsert_fiche_action; -- Utilise private.ajouter_indicateur & trigger +drop function private.ajouter_indicateur; +drop function private.enlever_indicateur; +drop function stats.refresh_reporting; -- Utilise stats indicateurs +drop function stats.refresh_views; -- Utilise stats indicateurs +drop function stats.refresh_views_crm; -- Utilise stats indicateurs +drop view public.crm_indicateurs; -- Utilise stats.crm_indicateurs +drop materialized view stats.crm_indicateurs; +drop view public.crm_usages; -- Utilise stats.crm_usages +drop materialized view stats.crm_usages; +drop view public.fiches_action; -- Utilise private.fiches_action +drop view private.fiches_action; +drop view public.stats_evolution_indicateur_referentiel; -- Utilise stats.evolution_indicateur_referentiel +drop materialized view stats.evolution_indicateur_referentiel; +drop view public.stats_evolution_resultat_indicateur_personnalise; -- Utilise stats.evolution_resultat_indicateur_personnalise +drop materialized view stats.evolution_resultat_indicateur_personnalise; +drop view public.stats_evolution_resultat_indicateur_referentiel; -- Utilise stats.evolution_resultat_indicateur_referentiel +drop materialized view stats.evolution_resultat_indicateur_referentiel; +drop view public.stats_locales_evolution_collectivite_avec_indicateur; -- Utilise stats.locales_evolution_collectivite_avec_indicateur_referentiel +drop materialized view stats.locales_evolution_collectivite_avec_indicateur_referentiel; +drop view public.stats_locales_evolution_indicateur_referentiel; -- Utilise stats.locales_evolution_indicateur_referentiel +drop materialized view stats.locales_evolution_indicateur_referentiel; +drop view public.stats_locales_evolution_resultat_indicateur_personnalise; -- Utilise stats.locales_evolution_resultat_indicateur_personnalise +drop materialized view stats.locales_evolution_resultat_indicateur_personnalise; +drop view public.stats_locales_evolution_resultat_indicateur_referentiel; -- Utilise stats.locales_evolution_resultat_indicateur_referentiel +drop materialized view stats.locales_evolution_resultat_indicateur_referentiel; +drop materialized view stats.report_indicateur_personnalise; +drop materialized view stats.report_indicateur_resultat; + +-- Supprime les droits des nouvelles tables +drop policy allow_read on public.indicateur_pilote; +drop policy allow_insert on public.indicateur_pilote; +drop policy allow_update on public.indicateur_pilote; +drop policy allow_delete on public.indicateur_pilote; + +drop policy allow_read on public.indicateur_service_tag; +drop policy allow_insert on public.indicateur_service_tag; +drop policy allow_update on public.indicateur_service_tag; +drop policy allow_delete on public.indicateur_service_tag; + +drop policy allow_read on public.indicateur_sous_thematique; +drop policy allow_insert on public.indicateur_sous_thematique; +drop policy allow_update on public.indicateur_sous_thematique; +drop policy allow_delete on public.indicateur_sous_thematique; + +drop policy allow_read on public.indicateur_thematique; +drop policy allow_insert on public.indicateur_thematique; +drop policy allow_update on public.indicateur_thematique; +drop policy allow_delete on public.indicateur_thematique; + +drop policy allow_read on public.indicateur_categorie_tag; +drop policy allow_insert on public.indicateur_categorie_tag; +drop policy allow_update on public.indicateur_categorie_tag; +drop policy allow_delete on public.indicateur_categorie_tag; + +drop policy allow_read on public.categorie_tag; +drop policy allow_insert on public.categorie_tag; +drop policy allow_update on public.categorie_tag; +drop policy allow_delete on public.categorie_tag; + +drop policy allow_read on public.indicateur_collectivite; +drop policy allow_insert on public.indicateur_collectivite; +drop policy allow_update on public.indicateur_collectivite; +drop policy allow_delete on public.indicateur_collectivite; + +drop policy allow_read on public.indicateur_groupe; +drop policy allow_insert on public.indicateur_groupe; +drop policy allow_update on public.indicateur_groupe; +drop policy allow_delete on public.indicateur_groupe; + +drop policy allow_read on public.indicateur_valeur; +drop policy allow_insert on public.indicateur_valeur; +drop policy allow_update on public.indicateur_valeur; +drop policy allow_delete on public.indicateur_valeur; + +drop policy allow_read on public.indicateur_definition; +drop policy allow_insert on public.indicateur_definition; +drop policy allow_update on public.indicateur_definition; +drop policy allow_delete on public.indicateur_definition; + +drop policy allow_read on public.indicateur_action; +drop policy allow_insert on public.indicateur_action; +drop policy allow_update on public.indicateur_action; +drop policy allow_delete on public.indicateur_action; + +drop policy allow_read on public.fiche_action_indicateur; +drop policy allow_insert on public.fiche_action_indicateur; +drop policy allow_update on public.fiche_action_indicateur; +drop policy allow_delete on public.fiche_action_indicateur; + +drop policy allow_read on public.action_impact_indicateur; +drop policy allow_insert on public.action_impact_indicateur; +drop policy allow_update on public.action_impact_indicateur; +drop policy allow_delete on public.action_impact_indicateur; + +drop policy allow_read on public.indicateur_source_metadonnee; + +drop policy allow_read on public.groupement_collectivite; + +drop policy allow_read on public.groupement; + +-- Supprime les fonctions permettant de gérer les droits des nouvelles tables +drop function peut_modifier_la_categorie_d_indicateur; +drop function peut_lire_la_categorie_d_indicateur; +drop function peut_ajouter_une_valeur_a_l_indicateur; +drop function peut_modifier_l_indicateur; +drop function peut_lire_l_indicateur; +drop function is_indicateur_confidential; +drop function is_indicateur_collectivite; + +-- Supprime les nouvelles tables +drop table public.action_impact_indicateur; +drop table public.fiche_action_indicateur; +drop table public.indicateur_action; +drop table public.indicateur_pilote; +drop table public.indicateur_service_tag; +drop table public.indicateur_sous_thematique; +drop table public.indicateur_thematique; +drop table public.indicateur_categorie_tag; +drop table public.categorie_tag; +drop table public.indicateur_collectivite; +drop table public.indicateur_groupe; +drop table public.indicateur_valeur; +drop table public.indicateur_definition; +drop table public.indicateur_source_metadonnee; +drop table public.groupement_collectivite; +drop table public.groupement; + +-- Recrée les types indicateurs en conflit +alter type old_indicateur_thematique rename to indicateur_thematique; + +-- Recrée anciennes tables +-- Modifie la table indicateur_source pour supprimer l'attribut ordre +alter table public.indicateur_source drop column ordre_affichage; + +-- indicateur_parent; (table vide) +create table public.indicateur_parent +( + id serial + primary key, + numero text not null + unique, + nom text not null +); +comment on table indicateur_parent is 'An optional parent used to group indicateurs together.'; + +-- indicateur_definition; +create table public.indicateur_definition +( + id indicateur_id not null + primary key, + identifiant text, + valeur_indicateur indicateur_id + references indicateur_definition, + nom text not null, + description text not null, + unite text not null, + participation_score boolean default false not null, + selection boolean default false not null, + titre_long text default ''::text not null, + parent indicateur_id, + source text, + type indicateur_referentiel_type, + thematiques indicateur_thematique[] default ARRAY []::indicateur_thematique[] not null, + programmes indicateur_programme[] default ARRAY []::indicateur_programme[] not null, + sans_valeur boolean default false not null +) + inherits (abstract_modified_at); +comment on table indicateur_definition is 'Indicateur definition from markdown. Populated by business'; +comment on column indicateur_definition.participation_score is 'Vrai si il est prévu que l''indicateur participe au score du référentiel.'; +comment on column indicateur_definition.titre_long is 'Le titre complet.'; +comment on column indicateur_definition.parent is 'L''id de l''indicateur parent.'; +comment on column indicateur_definition.source is 'La source de la donnée.'; +comment on column indicateur_definition.type is 'Le type d''indicateur, résultat ou impact.'; + +insert into public.indicateur_definition select * from archive.indicateur_definition; + +-- indicateur_action; +create table public.indicateur_action +( + indicateur_id indicateur_id not null + references indicateur_definition + on delete cascade, + action_id action_id not null + references action_relation + on delete cascade, + primary key (indicateur_id, action_id) +) + inherits (abstract_modified_at); +comment on table indicateur_action is 'Indicateur <-> Action many-to-many relationship'; + +insert into indicateur_action select * from archive.indicateur_action; + +-- indicateur_resultat; +create table public.indicateur_resultat +( + collectivite_id integer not null + references collectivite, + indicateur_id indicateur_id not null + references indicateur_definition, + modified_by uuid, + primary key (collectivite_id, annee, indicateur_id) +) + inherits (abstract_any_indicateur_value); + +insert into public.indicateur_resultat select * from archive.indicateur_resultat; + +-- indicateur_resultat_commentaire; +create table public.indicateur_resultat_commentaire +( + collectivite_id integer not null + constraint indicateur_commentaire_collectivite_id_fkey + references collectivite, + indicateur_id indicateur_id not null + constraint indicateur_commentaire_indicateur_id_fkey + references indicateur_definition, + commentaire text not null, + modified_by uuid default auth.uid() not null + constraint indicateur_commentaire_modified_by_fkey + references auth.users, + annee integer, + constraint unique_collectivite_indicateur_annee + unique (collectivite_id, indicateur_id, annee) +) + inherits (abstract_modified_at); +comment on column indicateur_resultat_commentaire.annee is 'L''année du résultat sur lequel porte le commentaire.'; + +insert into public.indicateur_resultat_commentaire select * from archive.indicateur_resultat_commentaire; + +-- indicateur_resultat_import; +create table public.indicateur_resultat_import +( + collectivite_id integer not null + references collectivite, + indicateur_id indicateur_id not null + references indicateur_definition, + annee integer not null, + valeur double precision not null, + modified_at timestamp with time zone not null, + source text not null, + source_id text not null + references indicateur_source, + primary key (collectivite_id, indicateur_id, annee, source_id) +); +comment on table indicateur_resultat_import is 'Les résultats importés de sources extérieures'; + +insert into public.indicateur_resultat_import select * from archive.indicateur_resultat_import; + +-- indicateur_objectif; +create table public.indicateur_objectif +( + collectivite_id integer not null + references collectivite, + indicateur_id indicateur_id not null + references indicateur_definition, + modified_by uuid, + primary key (collectivite_id, annee, indicateur_id) +) + inherits (abstract_any_indicateur_value); + +insert into public.indicateur_objectif select * from archive.indicateur_objectif; + +-- indicateur_objectif_commentaire; +create table public.indicateur_objectif_commentaire +( + collectivite_id integer not null + references collectivite, + indicateur_id indicateur_id not null + references indicateur_definition, + annee integer not null, + commentaire text not null, + modified_by uuid not null + references auth.users, + modified_at timestamp with time zone not null, + constraint indicateur_objectif_commentai_collectivite_id_indicateur_id_key + unique (collectivite_id, indicateur_id, annee) +); + +insert into public.indicateur_objectif_commentaire select * from archive.indicateur_objectif_commentaire; + +-- indicateur_personnalise_definition; +create table public.indicateur_personnalise_definition +( + id serial + primary key, + collectivite_id integer not null + references collectivite, + titre text not null, + description text not null, + unite text not null, + commentaire text not null, + modified_by uuid default auth.uid() not null + references auth.users +) + inherits (abstract_modified_at); + +insert into public.indicateur_personnalise_definition select * from archive.indicateur_personnalise_definition; + +-- indicateur_personnalise_resultat; +create table public.indicateur_personnalise_resultat +( + collectivite_id integer not null + references collectivite, + indicateur_id integer not null + references indicateur_personnalise_definition, + modified_by uuid, + primary key (indicateur_id, annee, collectivite_id) +) + inherits (abstract_any_indicateur_value); + +insert into public.indicateur_personnalise_resultat select * from archive.indicateur_personnalise_resultat; + +-- indicateur_perso_resultat_commentaire; +create table public.indicateur_perso_resultat_commentaire +( + collectivite_id integer not null + references collectivite, + indicateur_id integer not null + references indicateur_personnalise_definition, + annee integer not null, + commentaire text not null, + modified_by uuid not null + references auth.users, + modified_at timestamp with time zone not null, + constraint indicateur_perso_resultat_com_collectivite_id_indicateur_id_key + unique (collectivite_id, indicateur_id, annee) +); + +insert into public.indicateur_perso_resultat_commentaire select * from archive.indicateur_perso_resultat_commentaire; + +-- indicateur_personnalise_objectif; +create table public.indicateur_personnalise_objectif +( + collectivite_id integer not null + references collectivite, + indicateur_id integer not null + references indicateur_personnalise_definition, + modified_by uuid, + primary key (indicateur_id, annee, collectivite_id) +) + inherits (abstract_any_indicateur_value); + +insert into public.indicateur_personnalise_objectif select * from archive.indicateur_personnalise_objectif; + +-- indicateur_perso_objectif_commentaire; +create table public.indicateur_perso_objectif_commentaire +( + collectivite_id integer not null + references collectivite, + indicateur_id integer not null + references indicateur_personnalise_definition, + annee integer not null, + commentaire text not null, + modified_by uuid not null + references auth.users, + modified_at timestamp with time zone not null, + constraint indicateur_perso_objectif_com_collectivite_id_indicateur_id_key + unique (collectivite_id, indicateur_id, annee) +); + +insert into public.indicateur_perso_objectif_commentaire select * from archive.indicateur_perso_objectif_commentaire; + +-- fiche_action_indicateur +create table public.fiche_action_indicateur +( + fiche_id integer not null + references fiche_action, + indicateur_id indicateur_id + references indicateur_definition, + indicateur_personnalise_id integer + references indicateur_personnalise_definition, + constraint fiche_action_indicateur_fiche_id_indicateur_id_indicateur_p_key + unique (fiche_id, indicateur_id, indicateur_personnalise_id) +); + +insert into public.fiche_action_indicateur select * from archive.fiche_action_indicateur; + +-- indicateur_pilote; +create table public.indicateur_pilote +( + indicateur_id indicateur_id default NULL::character varying + references indicateur_definition, + collectivite_id integer + references collectivite, + user_id uuid + references auth.users, + tag_id integer + references personne_tag + on delete cascade, + indicateur_perso_id integer + constraint indicateur_pilote_indicateur_personnalise_definition_id_fk + references indicateur_personnalise_definition, + constraint indicateur_pilote_indicateur_id_collectivite_id_user_id_tag_key + unique (indicateur_id, indicateur_perso_id, collectivite_id, user_id, tag_id), + constraint perso_ou_predefini + check (((indicateur_id IS NOT NULL) AND (collectivite_id IS NOT NULL) AND (indicateur_perso_id IS NULL)) OR + ((indicateur_perso_id IS NOT NULL) AND (indicateur_id IS NULL) AND (collectivite_id IS NULL))), + constraint tag_ou_utilisateur + check (((tag_id IS NOT NULL) AND (user_id IS NULL)) OR ((user_id IS NOT NULL) AND (tag_id IS NULL))) +); +comment on constraint perso_ou_predefini on indicateur_pilote is 'Vérifie que l''on référence un indicateur perso ou un indicateur prédéfini.'; +comment on constraint tag_ou_utilisateur on indicateur_pilote is 'Vérifie que le pilote est un tag ou un utilisateur.'; + +insert into public.indicateur_pilote select * from archive.indicateur_pilote; + +-- indicateur_service_tag; +create table public.indicateur_service_tag +( + indicateur_id indicateur_id default NULL::character varying + references indicateur_definition, + collectivite_id integer + references collectivite, + service_tag_id integer not null + references service_tag + on delete cascade, + indicateur_perso_id integer + constraint indicateur_service_tag_indicateur_personnalise_definition_id_fk + references indicateur_personnalise_definition, + constraint indicateur_service_tag_indicateur_collectivite_tag_key + unique (indicateur_id, indicateur_perso_id, collectivite_id, service_tag_id), + constraint perso_ou_predefini + check (((indicateur_id IS NOT NULL) AND (collectivite_id IS NOT NULL) AND (indicateur_perso_id IS NULL)) OR + ((indicateur_perso_id IS NOT NULL) AND (indicateur_id IS NULL) AND (collectivite_id IS NULL))) +); +comment on constraint perso_ou_predefini on indicateur_service_tag is 'Vérifie que l''on référence un indicateur perso ou un indicateur prédéfini.'; + +insert into public.indicateur_service_tag select * from archive.indicateur_service_tag; + +-- indicateur_personnalise_thematique; +create table public.indicateur_personnalise_thematique +( + indicateur_id integer not null + references indicateur_personnalise_definition, + thematique_id integer not null + references thematique, + primary key (indicateur_id, thematique_id) +); +insert into public.indicateur_personnalise_thematique select * from archive.indicateur_personnalise_thematique; + +-- indicateur_confidentiel; +create table public.indicateur_confidentiel +( + indicateur_id text + references indicateur_definition, + indicateur_perso_id integer + references indicateur_personnalise_definition, + collectivite_id integer + references collectivite, + constraint indicateur_confidentiel_indicateur_id_collectivite_id_indic_key + unique (indicateur_id, collectivite_id, indicateur_perso_id), + constraint perso_ou_predefini + check (((indicateur_id IS NOT NULL) AND (collectivite_id IS NOT NULL) AND (indicateur_perso_id IS NULL)) OR + ((indicateur_perso_id IS NOT NULL) AND (indicateur_id IS NULL) AND (collectivite_id IS NULL))) +); +comment on constraint perso_ou_predefini on indicateur_confidentiel is 'Vérifie que l''on référence un indicateur perso ou un indicateur prédéfini.'; + +insert into public.indicateur_confidentiel select * from archive.indicateur_confidentiel; + +-- action_impact_indicateur +create table action_impact_indicateur +( + action_impact_id integer not null + references action_impact, + indicateur_id indicateur_id not null + references indicateur_definition, + primary key (action_impact_id, indicateur_id) +); +insert into public.action_impact_indicateur select * from archive.action_impact_indicateur; + + +-- indicateur_terristory_json +create table public.indicateur_terristory_json +( + indicateurs jsonb not null + constraint indicateur_terristory_json_indicateurs_check + check (jsonb_matches_schema(schema => '{ + "type": "object", + "properties": { + "type": {"type":"string"}, + "contenu": { + "type":"array", + "items" : { + "type": "object", + "properties": { + "code": {"type":"string"}, + "nom": {"type":"string"}, + "x": {"type":"number"}, + "y": {"type":"number"}, + "val": {"type":"number"}, + "confidentiel": {"type":"boolean"}, + "annee": {"type":"string"} + }, + "required" : ["code", "nom", "x", "y", "val", "confidentiel", "annee"], + "additionalProperties": false + } + } + }, + "required" : ["type", "contenu"], + "additionalProperties": false + }'::json, instance => indicateurs)), + created_at timestamp with time zone default now() not null +); + + +-- Supprime les copies dans archive +drop table archive.action_impact_indicateur; +drop table archive.fiche_action_indicateur; +drop table archive.indicateur_action; +drop table archive.indicateur_pilote; +drop table archive.indicateur_service_tag; +drop table archive.indicateur_personnalise_thematique; +drop table archive.indicateur_confidentiel; +drop table archive.indicateur_resultat; +drop table archive.indicateur_resultat_commentaire; +drop table archive.indicateur_resultat_import; +drop table archive.indicateur_objectif; +drop table archive.indicateur_objectif_commentaire; +drop table archive.indicateur_definition; +drop table archive.indicateur_personnalise_resultat; +drop table archive.indicateur_perso_resultat_commentaire; +drop table archive.indicateur_personnalise_objectif; +drop table archive.indicateur_perso_objectif_commentaire; +drop table archive.indicateur_personnalise_definition; + +-- Recrée les éléments concernés +-- stats.report_indicateur_resultat; +create materialized view stats.report_indicateur_resultat as +SELECT c.collectivite_id, + c.code_siren_insee, + c.nom, + ir.indicateur_id, + ir.annee, + ir.valeur +FROM stats.collectivite c +JOIN indicateur_resultat ir USING (collectivite_id) +WHERE ir.valeur IS NOT NULL +ORDER BY c.collectivite_id, ir.annee; + +-- stats.report_indicateur_personnalise; +create materialized view stats.report_indicateur_personnalise as +SELECT ipd.collectivite_id, + ipd.titre, + ipd.description, + ipd.unite, + ipd.commentaire, + count(ipo.*) AS objectifs, + count(ipr.*) AS resultats +FROM indicateur_personnalise_definition ipd +LEFT JOIN indicateur_personnalise_objectif ipo ON ipd.id = ipo.indicateur_id +LEFT JOIN indicateur_personnalise_resultat ipr ON ipd.id = ipr.indicateur_id +WHERE ipo IS NOT NULL + OR ipr IS NOT NULL +GROUP BY ipd.collectivite_id, ipd.titre, ipd.description, ipd.unite, ipd.commentaire; + +-- stats.locales_evolution_resultat_indicateur_referentiel; +create materialized view stats.locales_evolution_resultat_indicateur_referentiel as +WITH resultats AS ( + SELECT indicateur_resultat.collectivite_id, + collectivite.region_code, + collectivite.departement_code, + indicateur_resultat.modified_at + FROM indicateur_resultat + JOIN stats.collectivite USING (collectivite_id) + ) +SELECT m.first_day AS mois, + NULL::character varying(2) AS code_region, + NULL::character varying(2) AS code_departement, + count(i.*) AS indicateurs +FROM stats.monthly_bucket m +LEFT JOIN resultats i ON i.modified_at <= m.last_day +GROUP BY m.first_day +UNION ALL +SELECT m.first_day AS mois, + r.code AS code_region, + NULL::character varying AS code_departement, + count(i.*) AS indicateurs +FROM imports.region r +JOIN stats.monthly_bucket m ON true +LEFT JOIN resultats i ON i.modified_at <= m.last_day AND i.region_code::text = r.code::text +GROUP BY m.first_day, r.code +UNION ALL +SELECT m.first_day AS mois, + NULL::character varying AS code_region, + d.code AS code_departement, + count(i.*) AS indicateurs +FROM imports.departement d +JOIN stats.monthly_bucket m ON true +LEFT JOIN resultats i ON i.modified_at <= m.last_day AND i.departement_code::text = d.code::text +GROUP BY m.first_day, d.code +ORDER BY 1; + +-- public.stats_locales_evolution_resultat_indicateur_referentiel; +create view public.stats_locales_evolution_resultat_indicateur_referentiel as +SELECT locales_evolution_resultat_indicateur_referentiel.mois, + locales_evolution_resultat_indicateur_referentiel.code_region, + locales_evolution_resultat_indicateur_referentiel.code_departement, + locales_evolution_resultat_indicateur_referentiel.indicateurs +FROM stats.locales_evolution_resultat_indicateur_referentiel; + +-- stats.locales_evolution_resultat_indicateur_personnalise; +create materialized view stats.locales_evolution_resultat_indicateur_personnalise as +WITH resultats AS ( + SELECT indicateur_personnalise_resultat.collectivite_id, + collectivite.region_code, + collectivite.departement_code, + indicateur_personnalise_resultat.modified_at + FROM indicateur_personnalise_resultat + JOIN stats.collectivite USING (collectivite_id) + ) +SELECT m.first_day AS mois, + NULL::character varying(2) AS code_region, + NULL::character varying(2) AS code_departement, + count(i.*) AS indicateurs +FROM stats.monthly_bucket m +LEFT JOIN resultats i ON i.modified_at <= m.last_day +GROUP BY m.first_day +UNION ALL +SELECT m.first_day AS mois, + r.code AS code_region, + NULL::character varying AS code_departement, + count(i.*) AS indicateurs +FROM imports.region r +JOIN stats.monthly_bucket m ON true +LEFT JOIN resultats i ON i.modified_at <= m.last_day AND i.region_code::text = r.code::text +GROUP BY m.first_day, r.code +UNION ALL +SELECT m.first_day AS mois, + NULL::character varying AS code_region, + d.code AS code_departement, + count(i.*) AS indicateurs +FROM imports.departement d +JOIN stats.monthly_bucket m ON true +LEFT JOIN resultats i ON i.modified_at <= m.last_day AND i.departement_code::text = d.code::text +GROUP BY m.first_day, d.code +ORDER BY 1; + +-- public.stats_locales_evolution_resultat_indicateur_personnalise; +create view public.stats_locales_evolution_resultat_indicateur_personnalise as +SELECT locales_evolution_resultat_indicateur_personnalise.mois, + locales_evolution_resultat_indicateur_personnalise.code_region, + locales_evolution_resultat_indicateur_personnalise.code_departement, + locales_evolution_resultat_indicateur_personnalise.indicateurs +FROM stats.locales_evolution_resultat_indicateur_personnalise; + +-- stats.locales_evolution_indicateur_referentiel; +create materialized view stats.locales_evolution_indicateur_referentiel as +WITH indicateurs AS ( + SELECT indicateur_resultat.collectivite_id, + collectivite.region_code, + collectivite.departement_code, + indicateur_resultat.indicateur_id, + min(indicateur_resultat.modified_at) AS first_modified_at + FROM indicateur_resultat + JOIN stats.collectivite USING (collectivite_id) + GROUP BY indicateur_resultat.collectivite_id, collectivite.region_code, + collectivite.departement_code, indicateur_resultat.indicateur_id + ) +SELECT m.first_day AS mois, + NULL::character varying(2) AS code_region, + NULL::character varying(2) AS code_departement, + count(i.*) AS indicateurs +FROM stats.monthly_bucket m +LEFT JOIN indicateurs i ON i.first_modified_at <= m.last_day +GROUP BY m.first_day +UNION ALL +SELECT m.first_day AS mois, + r.code AS code_region, + NULL::character varying AS code_departement, + count(i.*) AS indicateurs +FROM imports.region r +JOIN stats.monthly_bucket m ON true +LEFT JOIN indicateurs i ON i.first_modified_at <= m.last_day AND i.region_code::text = r.code::text +GROUP BY m.first_day, r.code +UNION ALL +SELECT m.first_day AS mois, + NULL::character varying AS code_region, + d.code AS code_departement, + count(i.*) AS indicateurs +FROM imports.departement d +JOIN stats.monthly_bucket m ON true +LEFT JOIN indicateurs i ON i.first_modified_at <= m.last_day AND i.departement_code::text = d.code::text +GROUP BY m.first_day, d.code; + +-- public.stats_locales_evolution_indicateur_referentiel; +create view public.stats_locales_evolution_indicateur_referentiel as +SELECT locales_evolution_indicateur_referentiel.mois, + locales_evolution_indicateur_referentiel.code_region, + locales_evolution_indicateur_referentiel.code_departement, + locales_evolution_indicateur_referentiel.indicateurs +FROM stats.locales_evolution_indicateur_referentiel; + +-- stats.locales_evolution_collectivite_avec_indicateur_referentiel; +create materialized view stats.locales_evolution_collectivite_avec_indicateur_referentiel as +WITH indicateur_collectivite AS ( + SELECT mb.first_day AS mois, + c.collectivite_id, + c.region_code, + c.departement_code, + COALESCE(count(*) FILTER (WHERE ir.modified_at <= mb.last_day), + 0::bigint) AS resultats + FROM stats.monthly_bucket mb + JOIN stats.collectivite c ON true + LEFT JOIN indicateur_resultat ir USING (collectivite_id) + GROUP BY mb.first_day, c.collectivite_id, c.departement_code, c.region_code + ) +SELECT indicateur_collectivite.mois, + NULL::character varying(2) AS code_region, + NULL::character varying(2) AS code_departement, + count(*) FILTER (WHERE indicateur_collectivite.resultats > 0) AS collectivites +FROM indicateur_collectivite +GROUP BY indicateur_collectivite.mois +UNION ALL +SELECT indicateur_collectivite.mois, + indicateur_collectivite.region_code AS code_region, + NULL::character varying AS code_departement, + count(*) FILTER (WHERE indicateur_collectivite.resultats > 0) AS collectivites +FROM indicateur_collectivite +GROUP BY indicateur_collectivite.mois, indicateur_collectivite.region_code +UNION ALL +SELECT indicateur_collectivite.mois, + NULL::character varying AS code_region, + indicateur_collectivite.departement_code AS code_departement, + count(*) FILTER (WHERE indicateur_collectivite.resultats > 0) AS collectivites +FROM indicateur_collectivite +GROUP BY indicateur_collectivite.mois, indicateur_collectivite.departement_code +ORDER BY 1; + + +-- public.stats_locales_evolution_collectivite_avec_indicateur; +create view public.stats_locales_evolution_collectivite_avec_indicateur as +SELECT locales_evolution_collectivite_avec_indicateur_referentiel.mois, + locales_evolution_collectivite_avec_indicateur_referentiel.code_region, + locales_evolution_collectivite_avec_indicateur_referentiel.code_departement, + locales_evolution_collectivite_avec_indicateur_referentiel.collectivites +FROM stats.locales_evolution_collectivite_avec_indicateur_referentiel; + +-- stats.evolution_resultat_indicateur_referentiel; +create materialized view stats.evolution_resultat_indicateur_referentiel as +SELECT m.first_day AS mois, + count(*) AS resultats +FROM stats.monthly_bucket m +LEFT JOIN indicateur_resultat ir ON ir.modified_at <= m.last_day +JOIN stats.collectivite_active USING (collectivite_id) +GROUP BY m.first_day +ORDER BY m.first_day; + +-- public.stats_evolution_resultat_indicateur_referentiel; +create view public.stats_evolution_resultat_indicateur_referentiel as +SELECT evolution_resultat_indicateur_referentiel.mois, + evolution_resultat_indicateur_referentiel.resultats +FROM stats.evolution_resultat_indicateur_referentiel; + +-- stats.evolution_resultat_indicateur_personnalise; +create materialized view stats.evolution_resultat_indicateur_personnalise as +SELECT m.first_day AS mois, + count(*) AS resultats +FROM stats.monthly_bucket m +LEFT JOIN indicateur_personnalise_resultat ipr ON ipr.modified_at <= m.last_day +JOIN stats.collectivite_active USING (collectivite_id) +GROUP BY m.first_day +ORDER BY m.first_day; + +-- public.stats_evolution_resultat_indicateur_personnalise; +create view public.stats_evolution_resultat_indicateur_personnalise as +SELECT evolution_resultat_indicateur_personnalise.mois, + evolution_resultat_indicateur_personnalise.resultats +FROM stats.evolution_resultat_indicateur_personnalise; + +-- stats.evolution_indicateur_referentiel; +create materialized view stats.evolution_indicateur_referentiel as +WITH indicateurs AS ( + SELECT indicateur_resultat.collectivite_id, + indicateur_resultat.indicateur_id, + min(indicateur_resultat.modified_at) AS first_modified_at + FROM indicateur_resultat + JOIN stats.collectivite_active USING (collectivite_id) + GROUP BY indicateur_resultat.collectivite_id, indicateur_resultat.indicateur_id + ) +SELECT m.first_day AS mois, + count(*) AS indicateurs +FROM stats.monthly_bucket m +LEFT JOIN indicateurs ON indicateurs.first_modified_at <= m.last_day +GROUP BY m.first_day +ORDER BY m.first_day; + +-- public.stats_evolution_indicateur_referentiel; +create view public.stats_evolution_indicateur_referentiel as +SELECT evolution_indicateur_referentiel.mois, + evolution_indicateur_referentiel.indicateurs +FROM stats.evolution_indicateur_referentiel; + + +-- public.indicateurs_collectivite; +create view public.indicateurs_collectivite as +SELECT NULL::character varying AS indicateur_id, + ipd.id AS indicateur_personnalise_id, + ipd.titre AS nom, + ipd.description, + ipd.unite, + NULL::indicateur_programme[] AS programmes, + ipd.collectivite_id +FROM indicateur_personnalise_definition ipd +WHERE can_read_acces_restreint(ipd.collectivite_id) +UNION +SELECT id.id AS indicateur_id, + NULL::integer AS indicateur_personnalise_id, + id.nom, + id.description, + id.unite, + id.programmes, + NULL::integer AS collectivite_id +FROM indicateur_definition id; +comment on view indicateurs_collectivite is 'Liste les indicateurs (globaux et personnalisés) d''une collectivite'; + +-- public.indicateurs; +create view public.indicateurs as +SELECT 'resultat'::indicateur_valeur_type AS type, + r.collectivite_id, + r.indicateur_id, + NULL::integer AS indicateur_perso_id, + r.annee, + r.valeur, + c.commentaire, + NULL::text AS source, + NULL::text AS source_id +FROM indicateur_resultat r +JOIN indicateur_definition d ON r.indicateur_id::text = d.id::text +LEFT JOIN indicateur_resultat_commentaire c + ON r.indicateur_id::text = c.indicateur_id::text AND r.collectivite_id = c.collectivite_id AND + r.annee = c.annee +WHERE can_read_acces_restreint(r.collectivite_id) +UNION ALL +SELECT 'resultat'::indicateur_valeur_type AS type, + r.collectivite_id, + alt.id AS indicateur_id, + NULL::integer AS indicateur_perso_id, + r.annee, + r.valeur, + c.commentaire, + NULL::text AS source, + NULL::text AS source_id +FROM indicateur_resultat r +JOIN indicateur_definition alt ON r.indicateur_id::text = alt.valeur_indicateur::text +LEFT JOIN indicateur_confidentiel confidentiel + ON r.indicateur_id::text = confidentiel.indicateur_id AND r.collectivite_id = confidentiel.collectivite_id +LEFT JOIN indicateur_resultat_commentaire c + ON alt.id::text = c.indicateur_id::text AND r.collectivite_id = c.collectivite_id AND r.annee = c.annee +WHERE can_read_acces_restreint(r.collectivite_id) +UNION ALL +SELECT 'objectif'::indicateur_valeur_type AS type, + o.collectivite_id, + d.id AS indicateur_id, + NULL::integer AS indicateur_perso_id, + o.annee, + o.valeur, + c.commentaire, + NULL::text AS source, + NULL::text AS source_id +FROM indicateur_objectif o +JOIN indicateur_definition d ON o.indicateur_id::text = d.id::text +LEFT JOIN indicateur_objectif_commentaire c + ON o.indicateur_id::text = c.indicateur_id::text AND o.collectivite_id = c.collectivite_id AND + o.annee = c.annee +WHERE can_read_acces_restreint(o.collectivite_id) +UNION ALL +SELECT 'objectif'::indicateur_valeur_type AS type, + o.collectivite_id, + alt.id AS indicateur_id, + NULL::integer AS indicateur_perso_id, + o.annee, + o.valeur, + c.commentaire, + NULL::text AS source, + NULL::text AS source_id +FROM indicateur_objectif o +JOIN indicateur_definition alt ON o.indicateur_id::text = alt.valeur_indicateur::text +LEFT JOIN indicateur_objectif_commentaire c + ON alt.id::text = c.indicateur_id::text AND o.collectivite_id = c.collectivite_id AND o.annee = c.annee +WHERE can_read_acces_restreint(o.collectivite_id) +UNION ALL +SELECT 'import'::indicateur_valeur_type AS type, + indicateur_resultat_import.collectivite_id, + indicateur_resultat_import.indicateur_id, + NULL::integer AS indicateur_perso_id, + indicateur_resultat_import.annee, + indicateur_resultat_import.valeur, + NULL::text AS commentaire, + indicateur_resultat_import.source, + indicateur_resultat_import.source_id +FROM indicateur_resultat_import +WHERE can_read_acces_restreint(indicateur_resultat_import.collectivite_id) +UNION ALL +SELECT 'import'::indicateur_valeur_type AS type, + i.collectivite_id, + alt.id AS indicateur_id, + NULL::integer AS indicateur_perso_id, + i.annee, + i.valeur, + NULL::text AS commentaire, + i.source, + i.source_id +FROM indicateur_resultat_import i +JOIN indicateur_definition alt ON i.indicateur_id::text = alt.valeur_indicateur::text +WHERE can_read_acces_restreint(i.collectivite_id) +UNION ALL +SELECT 'resultat'::indicateur_valeur_type AS type, + r.collectivite_id, + NULL::character varying AS indicateur_id, + r.indicateur_id AS indicateur_perso_id, + r.annee, + r.valeur, + c.commentaire, + NULL::text AS source, + NULL::text AS source_id +FROM indicateur_personnalise_resultat r +LEFT JOIN indicateur_perso_resultat_commentaire c USING (collectivite_id, indicateur_id, annee) +WHERE can_read_acces_restreint(r.collectivite_id) +UNION ALL +SELECT 'objectif'::indicateur_valeur_type AS type, + r.collectivite_id, + NULL::character varying AS indicateur_id, + r.indicateur_id AS indicateur_perso_id, + r.annee, + r.valeur, + c.commentaire, + NULL::text AS source, + NULL::text AS source_id +FROM indicateur_personnalise_objectif r +LEFT JOIN indicateur_perso_objectif_commentaire c USING (collectivite_id, indicateur_id, annee) +WHERE can_read_acces_restreint(r.collectivite_id); + +-- public.indicateur_rempli; +create view public.indicateur_rempli as +SELECT i.indicateur_id, + NULL::integer AS perso_id, + i.collectivite_id, + count(i.valeur) > 0 AS rempli +FROM (SELECT ir.indicateur_id, + ir.collectivite_id, + ir.valeur + FROM indicateur_resultat ir + UNION ALL + SELECT indicateur_resultat_import.indicateur_id, + indicateur_resultat_import.collectivite_id, + indicateur_resultat_import.valeur + FROM indicateur_resultat_import) i +GROUP BY i.indicateur_id, i.collectivite_id +UNION ALL +SELECT alt.id AS indicateur_id, + NULL::integer AS perso_id, + i.collectivite_id, + count(i.valeur) > 0 AS rempli +FROM (SELECT ir.indicateur_id, + ir.collectivite_id, + ir.valeur + FROM indicateur_resultat ir + UNION ALL + SELECT indicateur_resultat_import.indicateur_id, + indicateur_resultat_import.collectivite_id, + indicateur_resultat_import.valeur + FROM indicateur_resultat_import) i +JOIN indicateur_definition alt ON alt.valeur_indicateur::text = i.indicateur_id::text +GROUP BY alt.id, i.collectivite_id +UNION ALL +SELECT NULL::character varying AS indicateur_id, + ipr.indicateur_id AS perso_id, + ipr.collectivite_id, + count(ipr.valeur) > 0 AS rempli +FROM indicateur_personnalise_resultat ipr +GROUP BY ipr.indicateur_id, ipr.collectivite_id; +comment on view indicateur_rempli is 'Permet de filtrer les indicateurs par remplissage.'; +comment on column indicateur_rempli.rempli is 'Vrai si un résultat a été saisi.'; + + +-- public.indicateur_definitions; +create view public.indicateur_definitions as +SELECT c.id AS collectivite_id, + definition.id AS indicateur_id, + NULL::integer AS indicateur_perso_id, + definition.nom, + definition.description, + definition.unite +FROM collectivite c +CROSS JOIN indicateur_definition definition +WHERE is_authenticated() +UNION ALL +SELECT definition.collectivite_id, + NULL::character varying::indicateur_id AS indicateur_id, + definition.id AS indicateur_perso_id, + definition.titre AS nom, + definition.description, + definition.unite +FROM indicateur_personnalise_definition definition +WHERE can_read_acces_restreint(definition.collectivite_id); +comment on view indicateur_definitions is 'Les définitions des indicateurs prédéfinis et personnalisés'; + +-- private.fiches_action; +create view private.fiches_action as +SELECT fa.modified_at, + fa.id, + fa.titre, + fa.description, + fa.piliers_eci, + fa.objectifs, + fa.resultats_attendus, + fa.cibles, + fa.ressources, + fa.financements, + fa.budget_previsionnel, + fa.statut, + fa.niveau_priorite, + fa.date_debut, + fa.date_fin_provisoire, + fa.amelioration_continue, + fa.calendrier, + fa.notes_complementaires, + fa.maj_termine, + fa.collectivite_id, + fa.created_at, + fa.modified_by, + t.thematiques, + st.sous_thematiques, + p.partenaires, + s.structures, + (SELECT array_agg(ROW (pil.nom, pil.collectivite_id, pil.tag_id, pil.user_id)::personne) AS array_agg + FROM (SELECT COALESCE(pt.nom, concat(dcp.prenom, ' ', dcp.nom)) AS nom, + pt.collectivite_id, + fap.tag_id, + fap.user_id + FROM fiche_action_pilote fap + LEFT JOIN personne_tag pt ON fap.tag_id = pt.id + LEFT JOIN dcp ON fap.user_id = dcp.user_id + WHERE fap.fiche_id = fa.id) pil) AS pilotes, + (SELECT array_agg(ROW (ref.nom, ref.collectivite_id, ref.tag_id, ref.user_id)::personne) AS array_agg + FROM (SELECT COALESCE(pt.nom, concat(dcp.prenom, ' ', dcp.nom)) AS nom, + pt.collectivite_id, + far.tag_id, + far.user_id + FROM fiche_action_referent far + LEFT JOIN personne_tag pt ON far.tag_id = pt.id + LEFT JOIN dcp ON far.user_id = dcp.user_id + WHERE far.fiche_id = fa.id) ref) AS referents, + pla.axes, + act.actions, + (SELECT array_agg(ROW (indi.indicateur_id, indi.indicateur_personnalise_id, indi.nom, indi.description, indi.unite)::indicateur_generique) AS array_agg + FROM (SELECT fai.indicateur_id, + fai.indicateur_personnalise_id, + COALESCE(id.nom, ipd.titre) AS nom, + COALESCE(id.description, ipd.description) AS description, + COALESCE(id.unite, ipd.unite) AS unite + FROM fiche_action_indicateur fai + LEFT JOIN indicateur_definition id ON fai.indicateur_id::text = id.id::text + LEFT JOIN indicateur_personnalise_definition ipd ON fai.indicateur_personnalise_id = ipd.id + WHERE fai.fiche_id = fa.id) indi) AS indicateurs, + ser.services, + (SELECT array_agg(ROW (fin.financeur_tag, fin.montant_ttc, fin.id)::financeur_montant) AS financeurs + FROM (SELECT ft.*::financeur_tag AS financeur_tag, + faft.montant_ttc, + faft.id + FROM financeur_tag ft + JOIN fiche_action_financeur_tag faft ON ft.id = faft.financeur_tag_id + WHERE faft.fiche_id = fa.id) fin) AS financeurs, + fic.fiches_liees, + fa.restreint +FROM fiche_action fa +LEFT JOIN (SELECT fath.fiche_id, + array_agg(th.*) AS thematiques + FROM thematique th + JOIN fiche_action_thematique fath ON fath.thematique_id = th.id + GROUP BY fath.fiche_id) t ON t.fiche_id = fa.id +LEFT JOIN (SELECT fasth.fiche_id, + array_agg(sth.*) AS sous_thematiques + FROM sous_thematique sth + JOIN fiche_action_sous_thematique fasth ON fasth.thematique_id = sth.id + GROUP BY fasth.fiche_id) st ON st.fiche_id = fa.id +LEFT JOIN (SELECT fapt.fiche_id, + array_agg(pt.*) AS partenaires + FROM partenaire_tag pt + JOIN fiche_action_partenaire_tag fapt ON fapt.partenaire_tag_id = pt.id + GROUP BY fapt.fiche_id) p ON p.fiche_id = fa.id +LEFT JOIN (SELECT fast.fiche_id, + array_agg(st_1.*) AS structures + FROM structure_tag st_1 + JOIN fiche_action_structure_tag fast ON fast.structure_tag_id = st_1.id + GROUP BY fast.fiche_id) s ON s.fiche_id = fa.id +LEFT JOIN (SELECT fapa.fiche_id, + array_agg(pa.*) AS axes + FROM axe pa + JOIN fiche_action_axe fapa ON fapa.axe_id = pa.id + GROUP BY fapa.fiche_id) pla ON pla.fiche_id = fa.id +LEFT JOIN (SELECT faa.fiche_id, + array_agg(ar.*) AS actions + FROM action_relation ar + JOIN fiche_action_action faa ON faa.action_id::text = ar.id::text + GROUP BY faa.fiche_id) act ON act.fiche_id = fa.id +LEFT JOIN (SELECT fast.fiche_id, + array_agg(st_1.*) AS services + FROM service_tag st_1 + JOIN fiche_action_service_tag fast ON fast.service_tag_id = st_1.id + GROUP BY fast.fiche_id) ser ON ser.fiche_id = fa.id +LEFT JOIN (SELECT falpf.fiche_id, + array_agg(fr.*) AS fiches_liees + FROM private.fiche_resume fr + JOIN fiches_liees_par_fiche falpf ON falpf.fiche_liee_id = fr.id + GROUP BY falpf.fiche_id) fic ON fic.fiche_id = fa.id; + + +-- public.fiches_action; +create view public.fiches_action as +SELECT fiches_action.modified_at, + fiches_action.id, + fiches_action.titre, + fiches_action.description, + fiches_action.piliers_eci, + fiches_action.objectifs, + fiches_action.resultats_attendus, + fiches_action.cibles, + fiches_action.ressources, + fiches_action.financements, + fiches_action.budget_previsionnel, + fiches_action.statut, + fiches_action.niveau_priorite, + fiches_action.date_debut, + fiches_action.date_fin_provisoire, + fiches_action.amelioration_continue, + fiches_action.calendrier, + fiches_action.notes_complementaires, + fiches_action.maj_termine, + fiches_action.collectivite_id, + fiches_action.created_at, + fiches_action.modified_by, + fiches_action.thematiques, + fiches_action.sous_thematiques, + fiches_action.partenaires, + fiches_action.structures, + fiches_action.pilotes, + fiches_action.referents, + fiches_action.axes, + fiches_action.actions, + fiches_action.indicateurs, + fiches_action.services, + fiches_action.financeurs, + fiches_action.fiches_liees, + fiches_action.restreint +FROM private.fiches_action +WHERE CASE + WHEN fiches_action.restreint = true THEN have_lecture_acces(fiches_action.collectivite_id) OR est_support() + ELSE can_read_acces_restreint(fiches_action.collectivite_id) + END; + +-- stats.crm_usages; +create materialized view stats.crm_usages as +WITH premier_rattachements AS ( + SELECT private_utilisateur_droit.collectivite_id, + min(private_utilisateur_droit.created_at)::date AS date + FROM private_utilisateur_droit + WHERE private_utilisateur_droit.active + GROUP BY private_utilisateur_droit.collectivite_id + ), + comptes AS ( + SELECT c_1.collectivite_id, + ( + SELECT count(*) AS count + FROM fiche_action x_1 + WHERE x_1.collectivite_id = c_1.collectivite_id + ) AS fiches, + ( + SELECT count(*) AS count + FROM axe x_1 + WHERE x_1.collectivite_id = c_1.collectivite_id + AND x_1.parent IS NULL + ) AS plans, + ( + SELECT count(*) AS count + FROM indicateur_resultat x_1 + WHERE x_1.collectivite_id = c_1.collectivite_id + ) AS resultats_indicateurs, + ( + SELECT count(*) AS count + FROM indicateur_personnalise_definition x_1 + WHERE x_1.collectivite_id = c_1.collectivite_id + ) AS indicateurs_perso, + ( + SELECT count(*) AS count + FROM indicateur_personnalise_resultat x_1 + WHERE x_1.collectivite_id = c_1.collectivite_id + ) AS resultats_indicateurs_perso + FROM stats.collectivite c_1 + ) +SELECT c.collectivite_id, + ((c.nom::text || ' ('::text) || c.collectivite_id) || ')'::text AS key, + pc.completude_eci, + pc.completude_cae, + x.fiches, + x.plans, + x.resultats_indicateurs, + x.indicateurs_perso, + x.resultats_indicateurs_perso, + pr.date AS premier_rattachement, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND f.titre IS NOT NULL + AND (f.description IS NOT NULL OR f.objectifs IS NOT NULL) + ) AS fiches_initiees, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND (f.statut IS NOT NULL OR f.niveau_priorite IS NOT NULL OR f.date_debut IS NOT NULL OR + f.date_fin_provisoire IS NOT NULL OR (f.id IN ( + SELECT fiche_action_structure_tag.fiche_id + FROM fiche_action_structure_tag + )) OR (f.id IN ( + SELECT st.fiche_id + FROM fiche_action_pilote st + )) OR (f.id IN ( + SELECT fiche_action_service_tag.fiche_id + FROM fiche_action_service_tag + ))) + ) AS fiches_pilotage, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND (f.id IN ( + SELECT fiche_action_indicateur.fiche_id + FROM fiche_action_indicateur + )) + ) AS fiches_indicateur, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND (f.id IN ( + SELECT fiche_action_action.fiche_id + FROM fiche_action_action + )) + ) AS fiches_action_referentiel, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND (f.id IN ( + SELECT fiches_liees_par_fiche.fiche_id + FROM fiches_liees_par_fiche + )) + ) AS fiches_fiche_liee, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND f.modified_at > (CURRENT_TIMESTAMP - '1 mon'::interval) + ) AS fiches_mod_1mois, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND f.modified_at > (CURRENT_TIMESTAMP - '3 mons'::interval) + ) AS fiches_mod_3mois, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND f.modified_at > (CURRENT_TIMESTAMP - '6 mons'::interval) + ) AS fiches_mod_6mois, + ( + SELECT min(f.created_at) AS min + FROM ( + SELECT p.created_at, + count(f_1.*) AS nb_fiche + FROM fiche_action f_1 + JOIN fiche_action_axe faa ON f_1.id = faa.fiche_id + JOIN axe a ON a.id = faa.axe_id + JOIN axe p ON a.plan = p.id + WHERE f_1.collectivite_id = c.collectivite_id + AND (f_1.titre IS NOT NULL OR f_1.titre::text <> 'Nouvelle fiche'::text) + AND p.nom IS NOT NULL + GROUP BY p.id, p.created_at + ) f + WHERE f.nb_fiche > 4 + ) AS pa_date_creation, + ( + SELECT count(*) AS count + FROM visite + WHERE visite.page = 'plan'::visite_page + AND visite.collectivite_id = c.collectivite_id + AND visite."time" > (CURRENT_TIMESTAMP - '1 mon'::interval) + ) AS pa_view_1mois, + ( + SELECT count(*) AS count + FROM visite + WHERE visite.page = 'plan'::visite_page + AND visite.collectivite_id = c.collectivite_id + AND visite."time" > (CURRENT_TIMESTAMP - '3 mons'::interval) + ) AS pa_view_3mois, + ( + SELECT count(*) AS count + FROM visite + WHERE visite.page = 'plan'::visite_page + AND visite.collectivite_id = c.collectivite_id + AND visite."time" > (CURRENT_TIMESTAMP - '6 mons'::interval) + ) AS pa_view_6mois, + ( + SELECT count(*) AS count + FROM ( + SELECT p.id, + count(f_1.*) AS nb_fiche + FROM fiche_action f_1 + JOIN fiche_action_axe faa ON f_1.id = faa.fiche_id + JOIN axe a ON a.id = faa.axe_id + JOIN axe p ON a.plan = p.id + WHERE f_1.collectivite_id = c.collectivite_id + AND (f_1.titre IS NOT NULL OR f_1.titre::text <> 'Nouvelle fiche'::text) + AND p.nom IS NOT NULL + GROUP BY p.id + ) f + WHERE f.nb_fiche > 4 + ) AS pa_non_vides, + ( + SELECT count(*) AS count + FROM ( + SELECT p.id, + count(f_1.*) AS nb_fiche + FROM fiche_action f_1 + JOIN fiche_action_pilote fap ON f_1.id = fap.fiche_id + JOIN fiche_action_axe faa ON f_1.id = faa.fiche_id + JOIN axe a ON a.id = faa.axe_id + JOIN axe p ON a.plan = p.id + WHERE f_1.collectivite_id = c.collectivite_id + AND (f_1.titre IS NOT NULL OR f_1.titre::text <> 'Nouvelle fiche'::text) + AND f_1.statut IS NOT NULL + AND p.nom IS NOT NULL + GROUP BY p.id + ) f + WHERE f.nb_fiche > 4 + ) AS pa_pilotables, + ( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND (f.titre IS NOT NULL OR f.titre::text <> 'Nouvelle fiche'::text) + ) AS fiches_non_vides, + ( + SELECT count(*) AS count + FROM fiche_action f + JOIN fiche_action_pilote fap ON f.id = fap.fiche_id + WHERE f.collectivite_id = c.collectivite_id + AND (f.titre IS NOT NULL OR f.titre::text <> 'Nouvelle fiche'::text) + AND f.statut IS NOT NULL + ) AS fiches_pilotables, + ( + SELECT count(*) > 4 + FROM fiche_action f + LEFT JOIN fiche_action_pilote fap ON f.id = fap.fiche_id + WHERE f.collectivite_id = c.collectivite_id + AND (f.titre IS NOT NULL OR f.titre::text <> 'Nouvelle fiche'::text) + AND (f.statut IS NOT NULL OR f.niveau_priorite IS NOT NULL OR f.date_fin_provisoire IS NOT NULL OR + fap.* IS NOT NULL) + ) AS _5fiches_1pilotage, + ( + SELECT count(*) AS count + FROM historique.fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND (f.previous_statut <> f.statut OR f.previous_statut IS NULL AND f.statut IS NOT NULL OR + f.previous_statut IS NOT NULL AND f.statut IS NULL) + AND f.modified_at > (CURRENT_TIMESTAMP - '6 mons'::interval) + ) AS fiches_changement_statut, + CASE + WHEN x.fiches = 0 THEN 0::numeric + ELSE (( + SELECT count(*) AS count + FROM fiche_action f + WHERE f.collectivite_id = c.collectivite_id + AND f.restreint = true + ) + )::numeric / x.fiches::numeric * 100::numeric + END AS pourcentage_fa_privee, + CASE + WHEN x.fiches = 0 THEN 0::numeric + ELSE (( + SELECT count(*) AS count + FROM fiche_action f + JOIN fiche_action_pilote fap ON f.id = fap.fiche_id + WHERE f.collectivite_id = c.collectivite_id + AND f.restreint = true + AND (f.titre IS NOT NULL OR f.titre::text <> 'Nouvelle fiche'::text) + AND f.statut IS NOT NULL + ) + )::numeric / x.fiches::numeric * 100::numeric + END AS pourcentage_fa_pilotable_privee, + ( + SELECT count(ic.*) AS count + FROM indicateur_confidentiel ic + WHERE ic.collectivite_id = c.collectivite_id + ) AS indicateur_prive, + ( + SELECT count(ic.*) > 0 + FROM indicateur_confidentiel ic + WHERE ic.collectivite_id = c.collectivite_id + ) AS min1_indicateur_prive, + ( + SELECT count(ic.*) > 0 + FROM indicateur_confidentiel ic + WHERE ic.collectivite_id = c.collectivite_id + AND ic.indicateur_id IS NOT NULL + ) AS min1_indicateur_predef_prive, + ( + SELECT count(ic.*) > 0 + FROM indicateur_confidentiel ic + WHERE ic.collectivite_id = c.collectivite_id + AND ic.indicateur_perso_id IS NOT NULL + ) AS min1_indicateur_perso_prive, + ( + SELECT i.pourcentage + FROM ( + SELECT c_1.id AS collectivite_id, + case when ( + SELECT count(*) AS count + FROM indicateur_definition + ) = 0 then 0::double precision + else + count(ic.*)::double precision / (( + SELECT count(*) AS count + FROM indicateur_definition + ) + )::double precision * 100::double precision end AS pourcentage + FROM collectivite c_1 + LEFT JOIN indicateur_confidentiel ic ON ic.collectivite_id = c_1.id AND ic.indicateur_id IS NOT NULL + GROUP BY c_1.id + ) i + WHERE i.collectivite_id = c.collectivite_id + ) AS pourcentage_indicateur_predef_prives, + ( + SELECT array_agg(DISTINCT pat.type) AS array_agg + FROM ( + SELECT p.id, + count(f_1.*) AS nb_fiche + FROM fiche_action f_1 + JOIN fiche_action_pilote fap ON f_1.id = fap.fiche_id + JOIN fiche_action_axe faa ON f_1.id = faa.fiche_id + JOIN axe a_1 ON a_1.id = faa.axe_id + JOIN axe p ON a_1.plan = p.id + WHERE f_1.collectivite_id = c.collectivite_id + AND (f_1.titre IS NOT NULL OR f_1.titre::text <> 'Nouvelle fiche'::text) + AND f_1.statut IS NOT NULL + AND p.nom IS NOT NULL + GROUP BY p.id + ) f + JOIN axe a ON f.id = a.id + LEFT JOIN plan_action_type pat ON a.type = pat.id + WHERE f.nb_fiche > 4 + ) AS type_pa +FROM stats.collectivite c +JOIN stats.collectivite_active USING (collectivite_id) +LEFT JOIN comptes x USING (collectivite_id) +LEFT JOIN stats.pourcentage_completude pc USING (collectivite_id) +LEFT JOIN premier_rattachements pr USING (collectivite_id) +ORDER BY c.nom; +comment on column stats.crm_usages.pa_date_creation is 'Date de création du premier plan (avec +5 FA non vides) pour chaque collectivité concernées'; +comment on column stats.crm_usages.pa_view_1mois is 'Nombre de consultations de Plans d''action (tous plans confondus, non vides) au cours du mois dernier'; +comment on column stats.crm_usages.pa_view_3mois is 'Nombre de consultations de Plans d''action (tous plans confondus, non vides) au cours des 3 derniers mois'; +comment on column stats.crm_usages.pa_view_6mois is 'Nombre de consultations de Plans d''action (tous plans confondus, non vides) au cours des 6 derniers mois.'; +comment on column stats.crm_usages.pa_non_vides is 'Nombre de plans non vides (minimum un titre de PA et 5 FA non vides)'; +comment on column stats.crm_usages.pa_pilotables is 'Nombre de plans “pilotables” (= avec min. 5 FA, qui ont à minima, le titre, le pilote et le statut renseigné)'; +comment on column stats.crm_usages.fiches_non_vides is 'Nombre de fiches actions non vides'; +comment on column stats.crm_usages.fiches_pilotables is 'Nombre de fiches actions pilotables ( = à minima le titre, le pilote et le statut renseigné)'; +comment on column stats.crm_usages._5fiches_1pilotage is 'Nombre de collectivités qui ont au moins 5 FA avec au moins le titre + 1 critère de pilotage renseigné (soit statut ou priorité ou date prévisionnelle ou responsable)'; +comment on column stats.crm_usages.fiches_changement_statut is 'Nombre de changements de statut de fiches actions dans les 6 derniers mois par collectivité (tous les status)'; +comment on column stats.crm_usages.pourcentage_fa_privee is '% de fiches action privées par collectivité'; +comment on column stats.crm_usages.pourcentage_fa_pilotable_privee is '% de fiches action pilotables privées (avec au moins un titre rempli, le pilote et le statut)'; +comment on column stats.crm_usages.indicateur_prive is 'Nombre d''indicateurs privés par collectivité'; +comment on column stats.crm_usages.min1_indicateur_prive is 'Vrai si au moins un indicateur privé'; +comment on column stats.crm_usages.min1_indicateur_predef_prive is 'Vrai si au moins un indicateur prédéfini privé'; +comment on column stats.crm_usages.min1_indicateur_perso_prive is 'Vrai si au moins un indicateur perso privé'; +comment on column stats.crm_usages.pourcentage_indicateur_predef_prives is '% d''indicateur prédéfini privé par collectivité'; +comment on column stats.crm_usages.type_pa is 'Liste de tous les types des plans pilotables de la collectivité'; + + +-- public.crm_usages; +create view public.crm_usages as +SELECT crm_usages.collectivite_id, + crm_usages.key, + crm_usages.completude_eci, + crm_usages.completude_cae, + crm_usages.fiches, + crm_usages.plans, + crm_usages.resultats_indicateurs, + crm_usages.indicateurs_perso, + crm_usages.resultats_indicateurs_perso, + crm_usages.premier_rattachement, + crm_usages.fiches_initiees, + crm_usages.fiches_pilotage, + crm_usages.fiches_indicateur, + crm_usages.fiches_action_referentiel, + crm_usages.fiches_fiche_liee, + crm_usages.fiches_mod_1mois, + crm_usages.fiches_mod_3mois, + crm_usages.fiches_mod_6mois, + crm_usages.pa_date_creation, + crm_usages.pa_view_1mois, + crm_usages.pa_view_3mois, + crm_usages.pa_view_6mois, + crm_usages.pa_non_vides, + crm_usages.pa_pilotables, + crm_usages.fiches_non_vides, + crm_usages.fiches_pilotables, + crm_usages._5fiches_1pilotage, + crm_usages.fiches_changement_statut, + crm_usages.pourcentage_fa_privee, + crm_usages.pourcentage_fa_pilotable_privee, + crm_usages.indicateur_prive, + crm_usages.min1_indicateur_prive, + crm_usages.min1_indicateur_predef_prive, + crm_usages.min1_indicateur_perso_prive, + crm_usages.pourcentage_indicateur_predef_prives, + crm_usages.type_pa +FROM stats.crm_usages +WHERE is_service_role(); + +-- stats.crm_indicateurs; +create materialized view stats.crm_indicateurs as +SELECT i.id, + id.nom, + i.nb_prive, + i.nb_prive::double precision / (( + SELECT count(*) AS count + FROM indicateur_definition + ) + )::double precision * 100::double precision AS pourcentage_prive +FROM ( + SELECT id_1.id, + count(ic.*) AS nb_prive + FROM indicateur_definition id_1 + LEFT JOIN indicateur_confidentiel ic ON id_1.id::text = ic.indicateur_id + GROUP BY id_1.id + ) i +JOIN indicateur_definition id ON i.id::text = id.id::text +ORDER BY i.nb_prive DESC; + +-- public.crm_indicateurs; +create view public.crm_indicateurs as +SELECT crm_indicateurs.id, + crm_indicateurs.nom, + crm_indicateurs.nb_prive, + crm_indicateurs.pourcentage_prive +FROM stats.crm_indicateurs +WHERE is_service_role(); + +-- private.get_personne(indicateur_pilote); +create function private.get_personne(indicateur_pilote) returns personne + stable + security definer + language sql +BEGIN ATOMIC +SELECT + CASE + WHEN (($1).tag_id IS NOT NULL) THEN ( SELECT ROW(pt.nom, pt.collectivite_id, ($1).tag_id, NULL::uuid)::personne AS "row" + FROM personne_tag pt + WHERE (pt.id = ($1).tag_id)) + ELSE ( SELECT ROW(((u.prenom || ' '::text) || u.nom), ($1).collectivite_id, NULL::integer, u.user_id)::personne AS "row" + FROM utilisateur.dcp_display u + WHERE (u.user_id = ($1).user_id)) + END AS "row"; +END; +comment on function private.get_personne(indicateur_pilote) is 'Renvoie la personne pilote d''un indicateur.'; + +-- private.can_write(indicateur_service_tag); +create function private.can_write(indicateur_service_tag) returns boolean + language sql +BEGIN ATOMIC +SELECT + CASE + WHEN (($1).indicateur_id IS NOT NULL) THEN (have_edition_acces(($1).collectivite_id) OR private.est_auditeur(($1).collectivite_id)) + ELSE (have_edition_acces(( SELECT d.collectivite_id + FROM indicateur_personnalise_definition d + WHERE (d.id = ($1).indicateur_perso_id))) OR private.est_auditeur(( SELECT d.collectivite_id + FROM indicateur_personnalise_definition d + WHERE (d.id = ($1).indicateur_perso_id)))) + END AS "case"; +END; +comment on function private.can_write(indicateur_service_tag) is 'Vrai si l''utilisateur peut écrire un `indicateur_service_tag`.'; + +-- private.can_read(indicateur_service_tag); +create function private.can_read(indicateur_service_tag) returns boolean + language sql +BEGIN ATOMIC +SELECT + CASE + WHEN (($1).indicateur_id IS NOT NULL) THEN can_read_acces_restreint(($1).collectivite_id) + ELSE can_read_acces_restreint(( SELECT d.collectivite_id + FROM indicateur_personnalise_definition d + WHERE (d.id = ($1).indicateur_perso_id))) + END AS can_read_acces_restreint; +END; +comment on function private.can_read(indicateur_service_tag) is 'Vrai si l''utilisateur peut lire un `indicateur_service_tag`.'; + +-- private.can_write(indicateur_confidentiel); +create function private.can_write(indicateur_confidentiel) returns boolean + language sql +BEGIN ATOMIC +SELECT + CASE + WHEN (($1).indicateur_id IS NOT NULL) THEN (have_edition_acces(($1).collectivite_id) OR private.est_auditeur(($1).collectivite_id)) + ELSE (have_edition_acces(( SELECT d.collectivite_id + FROM indicateur_personnalise_definition d + WHERE (d.id = ($1).indicateur_perso_id))) OR private.est_auditeur(( SELECT d.collectivite_id + FROM indicateur_personnalise_definition d + WHERE (d.id = ($1).indicateur_perso_id)))) + END AS "case"; +END; +comment on function private.can_write(indicateur_confidentiel) is 'Vrai si l''utilisateur peut écrire un `indicateur_confidentiel`.'; + + +-- private.can_read(indicateur_confidentiel); +create function private.can_read(indicateur_confidentiel) returns boolean + language sql +BEGIN ATOMIC +SELECT + CASE + WHEN (($1).indicateur_id IS NOT NULL) THEN can_read_acces_restreint(($1).collectivite_id) + ELSE can_read_acces_restreint(( SELECT d.collectivite_id + FROM indicateur_personnalise_definition d + WHERE (d.id = ($1).indicateur_perso_id))) + END AS can_read_acces_restreint; +END; +comment on function private.can_read(indicateur_confidentiel) is 'Vrai si l''utilisateur peut lire un `indicateur_confidentiel`.'; + +-- private.can_write(indicateur_pilote); +create function private.can_write(indicateur_pilote) returns boolean + language sql +BEGIN ATOMIC +SELECT + CASE + WHEN (($1).indicateur_id IS NOT NULL) THEN (have_edition_acces(($1).collectivite_id) OR private.est_auditeur(($1).collectivite_id)) + ELSE (have_edition_acces(( SELECT d.collectivite_id + FROM indicateur_personnalise_definition d + WHERE (d.id = ($1).indicateur_perso_id))) OR private.est_auditeur(( SELECT d.collectivite_id + FROM indicateur_personnalise_definition d + WHERE (d.id = ($1).indicateur_perso_id)))) + END AS "case"; +END; +comment on function private.can_write(indicateur_pilote) is 'Vrai si l''utilisateur peut écrire un `indicateur_pilote`.'; + +-- private.can_read(indicateur_pilote); +create function private.can_read(indicateur_pilote) returns boolean + language sql +BEGIN ATOMIC +SELECT + CASE + WHEN (($1).indicateur_id IS NOT NULL) THEN can_read_acces_restreint(($1).collectivite_id) + ELSE can_read_acces_restreint(( SELECT d.collectivite_id + FROM indicateur_personnalise_definition d + WHERE (d.id = ($1).indicateur_perso_id))) + END AS can_read_acces_restreint; +END; +comment on function private.can_read(indicateur_pilote) is 'Vrai si l''utilisateur peut lire un `indicateur_pilote`.'; + +-- public.definition_referentiel; +create function public.definition_referentiel(indicateur_definitions) returns SETOF indicateur_definition + stable + security definer + rows 1 + language sql +BEGIN ATOMIC +SELECT ist.*::indicateur_definition AS ist +FROM indicateur_definition ist +WHERE (((ist.id)::text = (($1).indicateur_id)::text) AND is_authenticated()); +END; +comment on function public.definition_referentiel(indicateur_definitions) is 'La définition de l''indicateur provenant du référentiel.'; + + +-- stats.refresh_views_crm; +create function stats.refresh_views_crm() returns void + security definer + language plpgsql +as +$$ +begin + refresh materialized view stats.crm_usages; + refresh materialized view stats.crm_indicateurs; + refresh materialized view stats.crm_plans; +end ; +$$; + +-- stats.refresh_views; +create function stats.refresh_views() returns void + security definer + language plpgsql +as +$$ +begin + refresh materialized view stats.collectivite; + refresh materialized view stats.collectivite_utilisateur; + refresh materialized view stats.collectivite_referentiel; + refresh materialized view stats.collectivite_labellisation; + refresh materialized view stats.collectivite_plan_action; + refresh materialized view stats.collectivite_action_statut; + refresh materialized view stats.evolution_activation; + refresh materialized view stats.rattachement; + refresh materialized view stats.utilisateur; + refresh materialized view stats.evolution_utilisateur; + refresh materialized view stats.connection; + refresh materialized view stats.evolution_connection; + refresh materialized view stats.carte_collectivite_active; + refresh materialized view stats.evolution_total_activation_par_type; + refresh materialized view stats.collectivite_actives_et_total_par_type; + refresh materialized view stats.evolution_nombre_utilisateur_par_collectivite; + refresh materialized view stats.carte_epci_par_departement; + refresh materialized view stats.pourcentage_completude; + refresh materialized view stats.evolution_collectivite_avec_minimum_fiches; + refresh materialized view stats.evolution_indicateur_referentiel; + refresh materialized view stats.evolution_resultat_indicateur_referentiel; + refresh materialized view stats.evolution_resultat_indicateur_personnalise; + refresh materialized view stats.engagement_collectivite; + refresh materialized view stats.evolution_nombre_fiches; + refresh materialized view stats.evolution_nombre_plans; + refresh materialized view stats.evolution_nombre_labellisations; +end ; +$$; + +-- stats.refresh_reporting; +create function stats.refresh_reporting() returns void + language plpgsql +as +$$ +begin + refresh materialized view stats.report_scores; + refresh materialized view stats.report_reponse_choix; + refresh materialized view stats.report_reponse_binaire; + refresh materialized view stats.report_reponse_proportion; + refresh materialized view stats.report_indicateur_resultat; + refresh materialized view stats.report_indicateur_personnalise; +end; +$$; +comment on function stats.refresh_reporting() is 'Rafraichit les vues matérialisées.'; + +-- private.upsert_indicateurs; +create function private.upsert_indicateurs(indicateurs jsonb) returns void + security definer + language plpgsql +as +$$ +declare + indicateur jsonb; +begin + -- on utilise une table temporaire pour ne pas avoir les contraintes sur les `valeur_indicateur` + create temporary table definition + ( + like indicateur_definition + ) on commit drop; + + for indicateur in select * from jsonb_array_elements(indicateurs) + loop + insert into definition + (id, identifiant, valeur_indicateur, nom, description, unite, + parent, participation_score, selection, sans_valeur, source, titre_long, type, + thematiques, programmes, modified_at) + values ((indicateur ->> 'id')::indicateur_id, + indicateur ->> 'identifiant', + (indicateur ->> 'valeur_indicateur')::indicateur_id, + indicateur ->> 'nom', + indicateur ->> 'description', + indicateur ->> 'unite', + indicateur ->> 'parent', + (indicateur -> 'participation_score')::bool, + (indicateur -> 'selection')::bool, + (indicateur -> 'sans_valeur')::bool, + indicateur ->> 'source', + indicateur ->> 'titre_long', + (indicateur ->> 'type')::indicateur_referentiel_type, + (select array( + select jsonb_array_elements_text((indicateur -> 'thematiques')) + )::indicateur_thematique[]), + (select array( + select jsonb_array_elements_text((indicateur -> 'programmes')) + )::indicateur_programme[]), + now()); + end loop; + + -- on commence par insérer les définitions sans parents + insert into indicateur_definition + select * + from definition + where parent is null + and valeur_indicateur is null + on conflict (id) do update + set identifiant = excluded.identifiant, + valeur_indicateur = excluded.valeur_indicateur, + nom = excluded.nom, + description = excluded.description, + unite = excluded.unite, + parent = excluded.parent, + participation_score = excluded.participation_score, + selection = excluded.selection, + sans_valeur = excluded.sans_valeur, + source = excluded.source, + titre_long = excluded.titre_long, + type = excluded.type, + thematiques = excluded.thematiques, + programmes = excluded.programmes, + modified_at = excluded.modified_at; + + -- puis le reste + insert into indicateur_definition + select * + from definition + where not (parent is null and valeur_indicateur is null) + on conflict (id) do update + set identifiant = excluded.identifiant, + valeur_indicateur = excluded.valeur_indicateur, + nom = excluded.nom, + description = excluded.description, + unite = excluded.unite, + parent = excluded.parent, + participation_score = excluded.participation_score, + selection = excluded.selection, + sans_valeur = excluded.sans_valeur, + source = excluded.source, + titre_long = excluded.titre_long, + type = excluded.type, + thematiques = excluded.thematiques, + programmes = excluded.programmes, + modified_at = excluded.modified_at; + + -- les liens entre indicateur et action + for indicateur in select * from jsonb_array_elements(indicateurs) + loop + if indicateur -> 'action_ids' != 'null' + then + --- insert les liens + insert into indicateur_action (indicateur_id, action_id) + select indicateur ->> 'id', + jsonb_array_elements_text(indicateur -> 'action_ids')::action_id + on conflict (indicateur_id, action_id) do nothing; + --- enlève les liens qui n'existent plus + delete + from indicateur_action ia + where ia.indicateur_id = (indicateur ->> 'id')::indicateur_id + and ia.action_id not in + (select id::action_id from jsonb_array_elements_text(indicateur -> 'action_ids') as id); + end if; + end loop; +end ; +$$; +comment on function private.upsert_indicateurs(jsonb) is 'Mets à jour les définitions des indicateurs ansi que les liens avec les actions.'; + +-- private.upsert_indicateurs_after_json_insert; +create function private.upsert_indicateurs_after_json_insert() returns trigger + language plpgsql +as +$$ +declare +begin + perform private.upsert_indicateurs(new.indicateurs); + return new; +end; +$$; + +-- trigger after_indicateurs_json on indicateurs_json; +create trigger after_indicateurs_json + after insert + on public.indicateurs_json + for each row +execute procedure private.upsert_indicateurs_after_json_insert(); + + +-- private.rempli(integer, indicateur_id); +create function private.rempli(collectivite_id integer, indicateur_id indicateur_id) returns boolean + stable + security definer + language sql +BEGIN ATOMIC +WITH remplissage AS ( + SELECT (count(ir.valeur) > 0) AS rempli + FROM indicateur_resultat ir + WHERE ((ir.collectivite_id = rempli.collectivite_id) AND ((ir.indicateur_id)::text = (rempli.indicateur_id)::text) AND (ir.valeur IS NOT NULL)) + UNION + SELECT (count(ir.valeur) > 0) AS rempli + FROM (indicateur_resultat ir + JOIN indicateur_definition def ON (((ir.indicateur_id)::text = (def.valeur_indicateur)::text))) + WHERE ((ir.collectivite_id = rempli.collectivite_id) AND ((def.id)::text = (rempli.indicateur_id)::text) AND (ir.valeur IS NOT NULL)) + UNION + SELECT (count(iri.valeur) > 0) + FROM indicateur_resultat_import iri + WHERE ((iri.collectivite_id = rempli.collectivite_id) AND ((iri.indicateur_id)::text = (rempli.indicateur_id)::text)) + UNION + SELECT (count(iri.valeur) > 0) + FROM (indicateur_resultat_import iri + JOIN indicateur_definition def ON (((iri.indicateur_id)::text = (def.valeur_indicateur)::text))) + WHERE ((iri.collectivite_id = rempli.collectivite_id) AND ((def.id)::text = (rempli.indicateur_id)::text)) + ) +SELECT bool_or(remplissage.rempli) AS bool_or +FROM remplissage; +END; +comment on function private.rempli(integer, indicateur_id) is 'Vrai si l''indicateur est rempli.'; + +-- private.rempli(integer); +create function private.rempli(indicateur_perso_id integer) returns boolean + stable + security definer + language sql +BEGIN ATOMIC +SELECT (count(ipr.valeur) > 0) +FROM indicateur_personnalise_resultat ipr +WHERE (ipr.indicateur_id = rempli.indicateur_perso_id); +END; +comment on function private.rempli(integer) is 'Vrai si l''indicateur est rempli.'; + +-- private.is_valeur_confidentielle(integer, integer); +create function private.is_valeur_confidentielle(indicateur_perso_id integer, annee integer) returns boolean + stable + security definer + language sql +BEGIN ATOMIC +RETURN ((EXISTS ( SELECT c.indicateur_id, + c.indicateur_perso_id, + c.collectivite_id + FROM indicateur_confidentiel c + WHERE (c.indicateur_perso_id = is_valeur_confidentielle.indicateur_perso_id))) AND (annee = ( SELECT max(r.annee) AS max + FROM indicateur_personnalise_resultat r + WHERE ((r.indicateur_id = is_valeur_confidentielle.indicateur_perso_id) AND (r.valeur IS NOT NULL))))); +END; +comment on function private.is_valeur_confidentielle(integer, integer) is 'Vrai si la valeur annuelle de l''indicateur est confidentielle.'; + + +-- private.is_valeur_confidentielle(integer, indicateur_id, integer); +create function private.is_valeur_confidentielle(collectivite_id integer, indicateur_id indicateur_id, annee integer) returns boolean + stable + security definer + language sql +BEGIN ATOMIC +RETURN ((EXISTS ( SELECT c.indicateur_id, + c.indicateur_perso_id, + c.collectivite_id + FROM indicateur_confidentiel c + WHERE ((c.indicateur_id = (is_valeur_confidentielle.indicateur_id)::text) AND (c.collectivite_id = is_valeur_confidentielle.collectivite_id)))) AND (annee = ( SELECT max(r.annee) AS max + FROM indicateur_resultat r + WHERE (((r.indicateur_id)::text = (is_valeur_confidentielle.indicateur_id)::text) AND (r.collectivite_id = is_valeur_confidentielle.collectivite_id) AND (r.valeur IS NOT NULL))))); +END; +comment on function private.is_valeur_confidentielle(integer, indicateur_id, integer) is 'Vrai si la valeur annuelle de l''indicateur est confidentielle.'; + +-- private.indicateur_personnalise_collectivite_id; +create function private.indicateur_personnalise_collectivite_id(indicateur_id integer) returns integer + stable + security definer + language sql +BEGIN ATOMIC +SELECT indicateur_personnalise_definition.collectivite_id +FROM indicateur_personnalise_definition +WHERE (indicateur_personnalise_definition.id = indicateur_personnalise_collectivite_id.indicateur_id); +END; +comment on function private.indicateur_personnalise_collectivite_id(integer) is 'Renvoie la collectivité d''un indicateur à partir de son id'; + +-- private.enlever_indicateur; +create function private.enlever_indicateur(fiche_id integer, indicateur indicateur_generique) returns void + language plpgsql +as +$$ +begin + if indicateur.indicateur_id is null then + delete from fiche_action_indicateur + where fiche_action_indicateur.fiche_id = enlever_indicateur.fiche_id + and indicateur_personnalise_id = indicateur.indicateur_personnalise_id; + else + delete from fiche_action_indicateur + where fiche_action_indicateur.fiche_id = enlever_indicateur.fiche_id + and indicateur_id = indicateur.indicateur_id; + end if; +end; +$$; +comment on function private.enlever_indicateur(integer, indicateur_generique) is 'Enlever une indicateur à la fiche'; + +-- private.ajouter_indicateur; +create function private.ajouter_indicateur(fiche_id integer, indicateur indicateur_generique) returns void + language plpgsql +as +$$ +begin + insert into fiche_action_indicateur (fiche_id, indicateur_id, indicateur_personnalise_id) + values (ajouter_indicateur.fiche_id, indicateur.indicateur_id, indicateur.indicateur_personnalise_id); +end; +$$; +comment on function private.ajouter_indicateur(integer, indicateur_generique) is 'Ajouter une indicateur à la fiche'; + + +-- public.upsert_fiche_action; +create function public.upsert_fiche_action() returns trigger + security definer + language plpgsql +as +$$ +declare + id_fiche integer; + thematique thematique; + sous_thematique sous_thematique; + axe axe; + partenaire partenaire_tag; + structure structure_tag; + pilote personne; + referent personne; + action action_relation; + indicateur indicateur_generique; + service service_tag; + financeur financeur_montant; + fiche_liee fiche_resume; +begin + id_fiche = new.id; + if not have_edition_acces(new.collectivite_id) and not is_service_role() then + perform set_config('response.status', '401', true); + raise 'Modification non autorisé.'; + end if; + -- Fiche action + if id_fiche is null then + insert into fiche_action (titre, + description, + piliers_eci, + objectifs, + resultats_attendus, + cibles, + ressources, + financements, + budget_previsionnel, + statut, + niveau_priorite, + date_debut, + date_fin_provisoire, + amelioration_continue, + calendrier, + notes_complementaires, + maj_termine, + collectivite_id, + restreint) + values (new.titre, + new.description, + new.piliers_eci, + new.objectifs, + new.resultats_attendus, + new.cibles, + new.ressources, + new.financements, + new.budget_previsionnel, + new.statut, + new.niveau_priorite, + new.date_debut, + new.date_fin_provisoire, + new.amelioration_continue, + new.calendrier, + new.notes_complementaires, + new.maj_termine, + new.collectivite_id, + new.restreint) + returning id into id_fiche; + new.id = id_fiche; + else + update fiche_action + set titre = new.titre, + description= new.description, + piliers_eci= new.piliers_eci, + objectifs= new.objectifs, + resultats_attendus= new.resultats_attendus, + cibles= new.cibles, + ressources= new.ressources, + financements= new.financements, + budget_previsionnel= new.budget_previsionnel, + statut= new.statut, + niveau_priorite= new.niveau_priorite, + date_debut= new.date_debut, + date_fin_provisoire= new.date_fin_provisoire, + amelioration_continue= new.amelioration_continue, + calendrier= new.calendrier, + notes_complementaires= new.notes_complementaires, + maj_termine= new.maj_termine, + collectivite_id = new.collectivite_id, + restreint = new.restreint + where id = id_fiche; + end if; + + -- Thématiques + delete from fiche_action_thematique where fiche_id = id_fiche; + if new.thematiques is not null then + foreach thematique in array new.thematiques::thematique[] + loop + perform private.ajouter_thematique(id_fiche, thematique.nom); + end loop; + end if; + delete from fiche_action_sous_thematique where fiche_id = id_fiche; + if new.sous_thematiques is not null then + foreach sous_thematique in array new.sous_thematiques::sous_thematique[] + loop + perform private.ajouter_sous_thematique(id_fiche, sous_thematique.id); + end loop; + end if; + + -- Axes + delete from fiche_action_axe where fiche_id = id_fiche; + if new.axes is not null then + foreach axe in array new.axes::axe[] + loop + perform ajouter_fiche_action_dans_un_axe(id_fiche, axe.id); + end loop; + end if; + + -- Partenaires + delete from fiche_action_partenaire_tag where fiche_id = id_fiche; + if new.partenaires is not null then + foreach partenaire in array new.partenaires::partenaire_tag[] + loop + perform private.ajouter_partenaire(id_fiche, partenaire); + end loop; + end if; + + -- Structures + delete from fiche_action_structure_tag where fiche_id = id_fiche; + if new.structures is not null then + foreach structure in array new.structures + loop + perform private.ajouter_structure(id_fiche, structure); + end loop; + end if; + + -- Pilotes + delete from fiche_action_pilote where fiche_id = id_fiche; + if new.pilotes is not null then + foreach pilote in array new.pilotes::personne[] + loop + perform private.ajouter_pilote(id_fiche, pilote); + end loop; + end if; + -- Referents + delete from fiche_action_referent where fiche_id = id_fiche; + if new.referents is not null then + foreach referent in array new.referents::personne[] + loop + perform private.ajouter_referent(id_fiche, referent); + end loop; + end if; + + -- Actions + delete from fiche_action_action where fiche_id = id_fiche; + if new.actions is not null then + foreach action in array new.actions::action_relation[] + loop + perform private.ajouter_action(id_fiche, action.id); + end loop; + end if; + + -- Indicateurs + delete from fiche_action_indicateur where fiche_id = id_fiche; + if new.indicateurs is not null then + foreach indicateur in array new.indicateurs::indicateur_generique[] + loop + perform private.ajouter_indicateur(id_fiche, indicateur); + end loop; + end if; + + -- Services + delete from fiche_action_service_tag where fiche_id = id_fiche; + if new.services is not null then + foreach service in array new.services + loop + perform private.ajouter_service(id_fiche, service); + end loop; + end if; + -- Financeurs + delete from fiche_action_financeur_tag where fiche_id = id_fiche; + if new.financeurs is not null then + foreach financeur in array new.financeurs::financeur_montant[] + loop + perform private.ajouter_financeur(id_fiche, financeur); + end loop; + end if; + + -- Fiches liees + delete from fiche_action_lien where fiche_une = id_fiche or fiche_deux = id_fiche; + if new.fiches_liees is not null then + foreach fiche_liee in array new.fiches_liees::private.fiche_resume[] + loop + insert into fiche_action_lien (fiche_une, fiche_deux) + values (id_fiche, fiche_liee.id); + end loop; + end if; + + return new; +end; +$$; + +-- trigger upsert on public.fiches_action; +create trigger upsert + instead of insert or update + on public.fiches_action + for each row +execute procedure upsert_fiche_action(); + +-- public.thematiques +create function public.thematiques(indicateur_definitions) returns SETOF thematique + stable + security definer + language sql +BEGIN ATOMIC +SELECT t.thematique +FROM ( SELECT thematique.*::thematique AS thematique + FROM (indicateur_definition definition + JOIN thematique ON ((thematique.md_id = ANY (definition.thematiques)))) + WHERE ((definition.id)::text = (($1).indicateur_id)::text) + UNION + SELECT thematique.*::thematique AS thematique + FROM ((indicateur_personnalise_definition definition + JOIN indicateur_personnalise_thematique it ON ((definition.id = it.indicateur_id))) + JOIN thematique ON ((it.thematique_id = thematique.id))) + WHERE (definition.id = ($1).indicateur_perso_id)) t +WHERE can_read_acces_restreint(($1).collectivite_id); +END; +comment on function thematiques(indicateur_definitions) is 'Les thématiques associées à un indicateur.'; + +-- public.services; +create function public.services(indicateur_definitions) returns SETOF indicateur_service_tag + stable + security definer + language sql +BEGIN ATOMIC +SELECT ist.*::indicateur_service_tag AS ist +FROM (indicateur_service_tag ist + LEFT JOIN definition_referentiel($1) def(modified_at, id, identifiant, valeur_indicateur, nom, description, unite, participation_score, selection, titre_long, parent, source, type, thematiques, programmes, sans_valeur) ON (true)) +WHERE ((((($1).indicateur_id IS NOT NULL) AND ((ist.indicateur_id)::text = (($1).indicateur_id)::text) AND (ist.collectivite_id = ($1).collectivite_id)) OR ((($1).indicateur_id IS NOT NULL) AND ((ist.indicateur_id)::text = (def.valeur_indicateur)::text) AND (ist.collectivite_id = ($1).collectivite_id)) OR ((($1).indicateur_perso_id IS NOT NULL) AND (ist.indicateur_perso_id = ($1).indicateur_perso_id))) AND can_read_acces_restreint(ist.collectivite_id)); +END; +comment on function public.services(indicateur_definitions) is 'Les services associés à un indicateur.'; + +-- public.rewrite_indicateur_id; +create function public.rewrite_indicateur_id() returns trigger + language plpgsql +as +$$ +declare + valeur_id indicateur_id; +begin + select valeur_indicateur + into valeur_id + from indicateur_definition + where id = new.indicateur_id; + + if valeur_id is not null + then + new.indicateur_id = valeur_id; + end if; + + return new; +end; +$$; +comment on function public.rewrite_indicateur_id() is 'Réécrit les ids des indicateurs pour les résultats et les objectifs.'; + +-- trigger rewrite_indicateur_id on public.fiche_action_indicateur; +create trigger rewrite_indicateur_id + before insert or update + on fiche_action_indicateur + for each row +execute procedure rewrite_indicateur_id(); + +-- trigger rewrite_indicateur_id on public.indicateur_confidentiel; +create trigger rewrite_indicateur_id + before insert or update + on indicateur_confidentiel + for each row +execute procedure rewrite_indicateur_id(); +comment on trigger rewrite_indicateur_id on indicateur_confidentiel is 'Remplace les `indicateur_id` des indicateurs `sans valeur` de la même manière que pour les valeurs'; + +-- trigger rewrite_indicateur_id on public.indicateur_objectif; +create trigger rewrite_indicateur_id + before insert or update + on indicateur_objectif + for each row +execute procedure rewrite_indicateur_id(); + +-- trigger rewrite_indicateur_id on public.indicateur_pilote; +create trigger rewrite_indicateur_id + before insert or update + on indicateur_pilote + for each row +execute procedure rewrite_indicateur_id(); +comment on trigger rewrite_indicateur_id on indicateur_pilote is 'Remplace les `indicateur_id` des indicateurs `sans valeur` de la même manière que pour les valeurs'; + +-- trigger rewrite_indicateur_id on public.indicateur_resultat; +create trigger rewrite_indicateur_id + before insert or update + on indicateur_resultat + for each row +execute procedure rewrite_indicateur_id(); + +-- trigger rewrite_indicateur_id on public.indicateur_service_tag; +create trigger rewrite_indicateur_id + before insert or update + on indicateur_service_tag + for each row +execute procedure rewrite_indicateur_id(); +comment on trigger rewrite_indicateur_id on indicateur_service_tag is 'Remplace les `indicateur_id` des indicateurs `sans valeur` de la même manière que pour les valeurs'; + +-- public.rempli(indicateur_definitions) +create function rempli(indicateur_definitions) returns boolean + stable + security definer + language sql +BEGIN ATOMIC +RETURN + CASE + WHEN (($1).indicateur_perso_id IS NULL) THEN + private.rempli(($1).collectivite_id, ($1).indicateur_id) + ELSE private.rempli(($1).indicateur_perso_id) + END; +END; +comment on function rempli(indicateur_definitions) is 'Vrai si l''indicateur est rempli.'; + +-- public.indicateur_summary; +create view public.indicateur_summary as +SELECT c.id AS collectivite_id, + programme.programme::text AS categorie, + digest.nombre, + digest.rempli +FROM collectivite c +CROSS JOIN unnest(enum_range(NULL::indicateur_programme)) programme(programme) +JOIN LATERAL ( SELECT count(*) AS nombre, + count(*) FILTER (WHERE private.rempli(c.id, def.id)) AS rempli + FROM indicateur_definition def + WHERE def.parent IS NULL + AND (programme.programme = ANY (def.programmes))) digest ON true +WHERE can_read_acces_restreint(c.id) +UNION ALL +SELECT perso.collectivite_id, + 'perso'::text AS categorie, + count(*) AS nombre, + count(*) FILTER (WHERE private.rempli(perso.id)) AS rempli +FROM indicateur_personnalise_definition perso +WHERE have_lecture_acces(perso.collectivite_id) +GROUP BY perso.collectivite_id; +comment on view indicateur_summary is 'Permet d''obtenir le nombre de résultats saisis par indicateur pour chaque collectivité.'; + +-- public.plan_action_export; +create function public.plan_action_export(id integer) returns SETOF fiche_action_export + language sql +BEGIN ATOMIC +WITH RECURSIVE parents AS ( + SELECT axe.id, + axe.nom, + axe.collectivite_id, + 0 AS depth, + ARRAY[]::text[] AS path, + ('0 '::text || axe.nom) AS sort_path + FROM axe + WHERE ((axe.parent IS NULL) AND (axe.id = plan_action_export.id) AND can_read_acces_restreint(axe.collectivite_id)) + UNION ALL + SELECT a.id, + a.nom, + a.collectivite_id, + (p_1.depth + 1), + (p_1.path || p_1.nom), + ((((p_1.sort_path || ' '::text) || (p_1.depth + 1)) || ' '::text) || a.nom) + FROM (parents p_1 + JOIN axe a ON ((a.parent = p_1.id))) + ), fiches AS ( + SELECT a.id AS axe_id, + f_1.*::fiches_action AS fiche, + f_1.titre + FROM ((parents a + JOIN fiche_action_axe faa ON ((a.id = faa.axe_id))) + JOIN fiches_action f_1 ON (((f_1.collectivite_id = a.collectivite_id) AND (faa.fiche_id = f_1.id)))) + ) +SELECT p.id, + p.nom, + p.path, + to_jsonb(f.*) AS to_jsonb +FROM (parents p + LEFT JOIN fiches f ON ((p.id = f.axe_id))) +ORDER BY (naturalsort((p.sort_path || (COALESCE(f.titre, ''::character varying))::text))); +END; + +-- public.pilotes; +create function public.pilotes(indicateur_definitions) returns SETOF indicateur_pilote + stable + security definer + language sql +BEGIN ATOMIC +SELECT ip.*::indicateur_pilote AS ip +FROM (indicateur_pilote ip + LEFT JOIN definition_referentiel($1) def(modified_at, id, identifiant, valeur_indicateur, nom, description, unite, participation_score, selection, titre_long, parent, source, type, thematiques, programmes, sans_valeur) ON (true)) +WHERE ((((($1).indicateur_id IS NOT NULL) AND ((ip.indicateur_id)::text = (($1).indicateur_id)::text) AND (ip.collectivite_id = ($1).collectivite_id)) OR ((($1).indicateur_id IS NOT NULL) AND ((ip.indicateur_id)::text = (def.valeur_indicateur)::text) AND (ip.collectivite_id = ($1).collectivite_id)) OR ((($1).indicateur_perso_id IS NOT NULL) AND (ip.indicateur_perso_id = ($1).indicateur_perso_id))) AND can_read_acces_restreint(ip.collectivite_id)); +END; +comment on function public.pilotes(indicateur_definitions) is 'Les personnes pilotes associées à un indicateur.'; + +-- public.personne; +create function public.personne(indicateur_pilote) returns SETOF personne + stable + security definer + rows 1 + language sql +BEGIN ATOMIC +SELECT private.get_personne($1) AS get_personne +WHERE can_read_acces_restreint(($1).collectivite_id); +END; +comment on function public.personne(indicateur_pilote) is 'Une personne associée comme personne pilote d''un indicateur.'; + +-- public.indicateurs_gaz_effet_serre; +create function public.indicateurs_gaz_effet_serre(site_labellisation) returns SETOF indicateur_resultat_import[] + security definer + rows 1 + language sql +BEGIN ATOMIC +SELECT COALESCE(( SELECT array_agg(iri.*) AS array_agg + FROM indicateur_resultat_import iri + WHERE ((iri.collectivite_id = ($1).collectivite_id) AND ((iri.indicateur_id)::text = ANY ((ARRAY['cae_1.g'::character varying, 'cae_1.f'::character varying, 'cae_1.h'::character varying, 'cae_1.j'::character varying, 'cae_1.i'::character varying, 'cae_1.c'::character varying, 'cae_1.e'::character varying, 'cae_1.d'::character varying, 'cae_1.a'::character varying])::text[])))), '{}'::indicateur_resultat_import[]) AS "coalesce"; +END; +comment on function public.indicateurs_gaz_effet_serre(site_labellisation) is 'Indicateurs gaz à effet de serre.'; + +-- public.indicateur_action; -- Utilise public.indicateur_definitions +create function public.indicateur_action(indicateur_definitions) returns SETOF indicateur_action + stable + security definer + language sql +BEGIN ATOMIC +SELECT ia.*::indicateur_action AS ia +FROM indicateur_action ia +WHERE (((ia.indicateur_id)::text = (($1).indicateur_id)::text) AND is_authenticated()); +END; +comment on function public.indicateur_action(indicateur_definitions) is 'La relation entre un indicateur prédéfini et des actions des référentiels.'; + +-- public.import_sources; +create function public.import_sources(indicateur_definitions) returns SETOF indicateur_source + stable + security definer + language sql +BEGIN ATOMIC +SELECT DISTINCT s.*::indicateur_source AS s +FROM (indicateur_resultat_import iri + JOIN indicateur_source s ON ((s.id = iri.source_id))) +WHERE (((iri.indicateur_id)::text = (($1).indicateur_id)::text) AND (iri.collectivite_id = ($1).collectivite_id)); +END; +comment on function public.import_sources(indicateur_definitions) is 'Les sources de données importées associées à un indicateur prédéfini.'; + +-- public.fiches_non_classees; +create function public.fiches_non_classees(indicateur_definitions) returns SETOF fiche_action_indicateur + stable + security definer + language sql +BEGIN ATOMIC +SELECT fai.*::fiche_action_indicateur AS fai +FROM ((fiche_action_indicateur fai + JOIN fiche_action fa ON (((fa.id = fai.fiche_id) AND (fa.collectivite_id = ($1).collectivite_id)))) + LEFT JOIN definition_referentiel($1) def(modified_at, id, identifiant, valeur_indicateur, nom, description, unite, participation_score, selection, titre_long, parent, source, type, thematiques, programmes, sans_valeur) ON (true)) +WHERE ((NOT (EXISTS ( SELECT + FROM fiche_action_axe faa + WHERE (faa.fiche_id = fai.fiche_id)))) AND (((fai.indicateur_id)::text = (($1).indicateur_id)::text) OR (fai.indicateur_personnalise_id = ($1).indicateur_perso_id) OR ((def.valeur_indicateur)::text = (($1).indicateur_id)::text)) AND can_read_acces_restreint(fa.collectivite_id)); +END; +comment on function public.fiches_non_classees(indicateur_definitions) is 'Les fiches non classées (sans plan d''action) associées à un indicateur.'; + +-- public.fiche_resume(fiche_action_indicateur); +create function public.fiche_resume(fiche_action_indicateur fiche_action_indicateur) returns SETOF fiche_resume + stable + security definer + rows 1 + language sql +BEGIN ATOMIC +SELECT fr.plans, + fr.titre, + fr.id, + fr.statut, + fr.collectivite_id, + fr.pilotes, + fr.modified_at, + fr.date_fin_provisoire, + fr.niveau_priorite, + fr.restreint, + fr.amelioration_continue +FROM private.fiche_resume fr +WHERE ((fr.id = (fiche_resume.fiche_action_indicateur).fiche_id) AND can_read_acces_restreint(fr.collectivite_id)); +END; + + +-- public.enfants(indicateur_definitions); +create function public.enfants(indicateur_definitions) returns SETOF indicateur_definitions + stable + security definer + language sql +BEGIN ATOMIC +SELECT ($1).collectivite_id AS collectivite_id, + definition.id AS indicateur_id, + NULL::integer AS indicateur_perso_id, + definition.nom, + definition.description, + definition.unite +FROM indicateur_definition definition +WHERE (((definition.parent)::text = (($1).indicateur_id)::text) AND is_authenticated()); +END; +comment on function public.enfants(indicateur_definitions) is 'Définitions des indicateurs enfants d''un indicateur composé.'; + +-- public.enfants(indicateur_definition); +create function public.enfants(indicateur_definition) returns SETOF indicateur_definition + stable + security definer + language sql +BEGIN ATOMIC +SELECT def.*::indicateur_definition AS def +FROM indicateur_definition def +WHERE (((def.parent)::text = (($1).id)::text) AND is_authenticated()); +END; +comment on function public.enfants(indicateur_definition) is 'Définitions des indicateurs enfants d''un indicateur composé.'; + + +-- public.delete_indicateur_personnalise_definition; +create function public.delete_indicateur_personnalise_definition(indicateur_id uuid) returns void + language plpgsql +as +$$ +BEGIN + + UPDATE "public"."indicateur_personnalise_definition" + SET "deleted_at" = NOW() + WHERE "id" = indicateur_id; + +END +$$; +comment on function public.delete_indicateur_personnalise_definition(uuid) is 'Supprime un indicateur personnalisé.'; + +-- public.delete_fiche_action; +create function public.delete_fiche_action() returns trigger + security definer + language plpgsql +as +$$ +declare +begin + delete from fiche_action_thematique where fiche_id = old.id; + delete from fiche_action_sous_thematique where fiche_id = old.id; + delete from fiche_action_partenaire_tag where fiche_id = old.id; + delete from fiche_action_structure_tag where fiche_id = old.id; + alter table fiche_action_pilote disable trigger save_history; + delete from fiche_action_pilote where fiche_id = old.id; + alter table fiche_action_pilote enable trigger save_history; + delete from fiche_action_referent where fiche_id = old.id; + delete from fiche_action_indicateur where fiche_id = old.id; + delete from fiche_action_action where fiche_id = old.id; + delete from fiche_action_axe where fiche_id = old.id; + delete from fiche_action_financeur_tag where fiche_id = old.id; + delete from fiche_action_service_tag where fiche_id = old.id; + delete from fiche_action_lien where fiche_une = old.id or fiche_deux = old.id; + return old; +end; +$$; + +-- trigger delete on fiche_action +create trigger delete + before delete + on fiche_action + for each row +execute procedure delete_fiche_action(); + +-- public.definition_perso; +create function public.definition_perso(indicateur_definitions) returns SETOF indicateur_personnalise_definition + stable + security definer + rows 1 + language sql +BEGIN ATOMIC +SELECT ipd.*::indicateur_personnalise_definition AS ipd +FROM indicateur_personnalise_definition ipd +WHERE ((ipd.id = ($1).indicateur_perso_id) AND can_read_acces_restreint(ipd.collectivite_id)); +END; +comment on function public.definition_perso(indicateur_definitions) is 'La définition de l''indicateur personnalisé.'; + +-- public.create_fiche; +create function public.create_fiche(collectivite_id integer, axe_id integer DEFAULT NULL::integer, action_id action_id DEFAULT NULL::character varying, indicateur_referentiel_id indicateur_id DEFAULT NULL::character varying, indicateur_personnalise_id integer DEFAULT NULL::integer) returns fiche_resume + security definer + language plpgsql +as +$$ +declare + new_fiche_id int; + resume fiche_resume; +begin + if not have_edition_acces(create_fiche.collectivite_id) and not is_service_role() + then + perform set_config('response.status', '403', true); + raise 'L''utilisateur n''a pas de droit en édition sur la collectivité.'; + end if; + + insert into fiche_action (collectivite_id, titre) + values (create_fiche.collectivite_id, '') + returning id into new_fiche_id; + + if create_fiche.axe_id is not null + then + insert into fiche_action_axe (fiche_id, axe_id) + values (new_fiche_id, create_fiche.axe_id); + end if; + + if create_fiche.action_id is not null + then + insert into fiche_action_action (fiche_id, action_id) + values (new_fiche_id, create_fiche.action_id); + end if; + + if create_fiche.indicateur_referentiel_id is not null + then + insert into fiche_action_indicateur (fiche_id, indicateur_id) + values (new_fiche_id, create_fiche.indicateur_referentiel_id); + end if; + + if create_fiche.indicateur_personnalise_id is not null + then + insert into fiche_action_indicateur (fiche_id, indicateur_personnalise_id) + values (new_fiche_id, create_fiche.indicateur_personnalise_id); + end if; + + select * from fiche_resume where id = new_fiche_id limit 1 into resume; + return resume; +end; +$$; +comment on function public.create_fiche(integer, integer, action_id, indicateur_id, integer) is 'Crée une nouvelle fiche action dans un axe, une action ou un indicateur.'; + +-- public.confidentiel +create function public.confidentiel(indicateur_definitions) returns boolean + stable + security definer + language sql +BEGIN ATOMIC +SELECT count(*) > 0 +FROM indicateur_confidentiel ic +LEFT JOIN definition_referentiel($1) def ON true +WHERE ( + ( + ($1).indicateur_id IS NOT NULL + AND ic.indicateur_id = ($1).indicateur_id::text + AND ic.collectivite_id = ($1).collectivite_id + ) OR ( + ($1).indicateur_id IS NOT NULL + AND ic.indicateur_id = def.valeur_indicateur::text + AND ic.collectivite_id = ($1).collectivite_id + ) OR ( + ($1).indicateur_perso_id IS NOT NULL + AND ic.indicateur_perso_id = ($1).indicateur_perso_id + ) + ); +END; + +comment on function confidentiel(indicateur_definitions) is 'Vrai si l''indicateur est confidentiel.'; + +-- public.cherchable(indicateur_personnalise_definition); +create function public.cherchable(indicateur_personnalise_definition) returns text + immutable + language sql +BEGIN ATOMIC +RETURN unaccent(((($1).titre || ' '::text) || ($1).description)); +END; +comment on function public.cherchable(indicateur_personnalise_definition) is 'Le champ sur lequel effectuer la recherche.'; + + +-- public.cherchable(indicateur_definitions); +create function public.cherchable(indicateur_definitions) returns text + immutable + language sql +BEGIN ATOMIC +RETURN unaccent(((($1).nom || ' '::text) || ($1).description)); +END; +comment on function public.cherchable(indicateur_definitions) is 'Le champ sur lequel effectuer la recherche.'; + +-- public.cherchable(indicateur_definition); +create function public.cherchable(indicateur_definition) returns text + immutable + language sql +BEGIN ATOMIC +RETURN unaccent(((($1).nom || ' '::text) || ($1).description)); +END; +comment on function public.cherchable(indicateur_definition) is 'Le champ sur lequel effectuer la recherche.'; + +-- index indicateur_personnalise_definition_fts +create index indicateur_personnalise_definition_fts + on indicateur_personnalise_definition + using gin (collectivite_id, to_tsvector('fr', cherchable(indicateur_personnalise_definition))); + +-- index indicateur_definition_fts +create index indicateur_definition_fts + on indicateur_definition + using gin (to_tsvector('fr', cherchable(indicateur_definition))); + +-- public.axes(indicateur_definitions) +create function public.axes(indicateur_definitions) returns SETOF axe + stable + security definer + language sql +BEGIN ATOMIC +SELECT axe.*::axe AS axe +FROM fiche_action_indicateur fai +JOIN fiche_action_axe faa USING (fiche_id) +JOIN axe ON faa.axe_id = axe.id +LEFT JOIN definition_referentiel($1) def ON true +WHERE ( + ( + ($1).indicateur_id IS NOT NULL + AND fai.indicateur_id::text = ($1).indicateur_id::text + AND axe.collectivite_id = ($1).collectivite_id + ) OR ( + ($1).indicateur_id IS NOT NULL + AND fai.indicateur_id::text = def.valeur_indicateur::text + AND axe.collectivite_id = ($1).collectivite_id + ) OR ( + ($1).indicateur_perso_id IS NOT NULL + AND fai.indicateur_personnalise_id = ($1).indicateur_perso_id + ) + ) AND can_read_acces_restreint(axe.collectivite_id); +END; +comment on function axes(indicateur_definitions) is 'Les axes (plans d''action) associés à un indicateur.'; + + +-- Ré-ajoute les droits des anciennes tables +alter table public.fiche_action_indicateur enable row level security; +create policy allow_read on fiche_action_indicateur for select using (peut_lire_la_fiche(fiche_id)); +create policy allow_update on fiche_action_indicateur for update using (peut_modifier_la_fiche(fiche_id)); +create policy allow_insert on fiche_action_indicateur for insert with check (peut_modifier_la_fiche(fiche_id)); +create policy allow_delete on fiche_action_indicateur for delete using (peut_modifier_la_fiche(fiche_id)); + +alter table public.indicateur_action enable row level security; +create policy allow_read on indicateur_action for select using (is_authenticated()); + +alter table public.indicateur_pilote enable row level security; +create policy allow_read on indicateur_pilote for select using (private.can_read(indicateur_pilote.*)); +create policy allow_insert on indicateur_pilote for insert with check (private.can_write(indicateur_pilote.*)); +create policy allow_update on indicateur_pilote for update using (private.can_write(indicateur_pilote.*)); +create policy allow_delete on indicateur_pilote for delete using (private.can_write(indicateur_pilote.*)); + +alter table public.indicateur_service_tag enable row level security; +create policy allow_read on indicateur_service_tag for select using (private.can_read(indicateur_service_tag.*)); +create policy allow_insert on indicateur_service_tag for insert with check (private.can_write(indicateur_service_tag.*)); +create policy allow_update on indicateur_service_tag for update using (private.can_write(indicateur_service_tag.*)); +create policy allow_delete on indicateur_service_tag for delete using (private.can_write(indicateur_service_tag.*)); + +alter table public.indicateur_personnalise_thematique enable row level security; +create policy allow_read on indicateur_personnalise_thematique for select using ( + can_read_acces_restreint(private.indicateur_personnalise_collectivite_id(indicateur_id))); +create policy allow_insert on indicateur_personnalise_thematique for insert with check ( + have_edition_acces(private.indicateur_personnalise_collectivite_id(indicateur_id))); +create policy allow_update on indicateur_personnalise_thematique for update using ( + have_edition_acces(private.indicateur_personnalise_collectivite_id(indicateur_id))); +create policy allow_delete on indicateur_personnalise_thematique for delete using ( + have_edition_acces(private.indicateur_personnalise_collectivite_id(indicateur_id))); + +alter table public.indicateur_confidentiel enable row level security; +create policy allow_read on indicateur_confidentiel for select using (private.can_read(indicateur_confidentiel.*)); +create policy allow_insert on indicateur_confidentiel for insert with check (private.can_write(indicateur_confidentiel.*)); +create policy allow_update on indicateur_confidentiel for update using (private.can_write(indicateur_confidentiel.*)); +create policy allow_delete on indicateur_confidentiel for delete using (private.can_write(indicateur_confidentiel.*)); + +alter table public.indicateur_resultat enable row level security; +create policy allow_read on indicateur_resultat for select using (( + select (can_read_acces_restreint(indicateur_resultat.collectivite_id) and + (have_lecture_acces(indicateur_resultat.collectivite_id) or + (not private.is_valeur_confidentielle(indicateur_resultat.collectivite_id, + indicateur_resultat.indicateur_id, + indicateur_resultat.annee)))))); +create policy allow_insert on indicateur_resultat for insert with check ( + have_edition_acces(collectivite_id) OR private.est_auditeur(collectivite_id)); +create policy allow_update on indicateur_resultat for update using ( + have_edition_acces(collectivite_id) OR private.est_auditeur(collectivite_id)); + +alter table public.indicateur_resultat_commentaire enable row level security; +create policy allow_read on indicateur_resultat_commentaire for select using ( + can_read_acces_restreint(collectivite_id)); +create policy allow_insert on indicateur_resultat_commentaire for insert with check ( + have_edition_acces(collectivite_id) OR private.est_auditeur(collectivite_id)); +create policy allow_update on indicateur_resultat_commentaire for update using ( + have_edition_acces(collectivite_id) OR private.est_auditeur(collectivite_id)); + +alter table public.indicateur_resultat_import enable row level security; +create policy allow_read on indicateur_resultat_import for select using ( + can_read_acces_restreint(collectivite_id)); + +alter table public.indicateur_objectif enable row level security; +create policy allow_read on indicateur_objectif for select using (can_read_acces_restreint(collectivite_id)); +create policy allow_insert on indicateur_objectif for insert with check ( + have_edition_acces(collectivite_id) OR private.est_auditeur(collectivite_id)); +create policy allow_update on indicateur_objectif for update using ( + have_edition_acces(collectivite_id) OR private.est_auditeur(collectivite_id)); + + +alter table public.indicateur_objectif_commentaire enable row level security; +create policy allow_read on indicateur_objectif_commentaire for select using ( + can_read_acces_restreint(collectivite_id)); +create policy allow_insert on indicateur_objectif_commentaire for insert with check ( + have_edition_acces(collectivite_id) OR private.est_auditeur(collectivite_id)); +create policy allow_update on indicateur_objectif_commentaire for update using ( + have_edition_acces(collectivite_id) OR private.est_auditeur(collectivite_id)); + +alter table public.indicateur_definition enable row level security; +create policy allow_read on indicateur_definition for select using (is_authenticated()); + +alter table public.indicateur_parent enable row level security; + + +alter table public.indicateur_personnalise_resultat enable row level security; +create policy allow_read on indicateur_personnalise_resultat for select using ( + (select (can_read_acces_restreint(indicateur_personnalise_resultat.collectivite_id) and + (have_lecture_acces(indicateur_personnalise_resultat.collectivite_id) or + (not private.is_valeur_confidentielle(indicateur_personnalise_resultat.indicateur_id, + indicateur_personnalise_resultat.annee)))))); +create policy allow_insert on indicateur_personnalise_resultat for insert with check ( + have_edition_acces(collectivite_id)); +create policy allow_update on indicateur_personnalise_resultat for update using ( + have_edition_acces(collectivite_id)); + +alter table public.indicateur_perso_resultat_commentaire enable row level security; +create policy allow_read on indicateur_perso_resultat_commentaire for select using ( + can_read_acces_restreint(collectivite_id)); +create policy allow_insert on indicateur_perso_resultat_commentaire for insert with check ( + have_edition_acces(collectivite_id) OR private.est_auditeur(collectivite_id)); +create policy allow_update on indicateur_perso_resultat_commentaire for update using ( + have_edition_acces(collectivite_id) OR private.est_auditeur(collectivite_id)); + +alter table public.indicateur_personnalise_objectif enable row level security; +create policy allow_read on indicateur_personnalise_objectif for select using ( + can_read_acces_restreint(collectivite_id)); +create policy allow_insert on indicateur_personnalise_objectif for insert with check ( + have_edition_acces(collectivite_id) OR private.est_auditeur(collectivite_id)); +create policy allow_update on indicateur_personnalise_objectif for update using ( + have_edition_acces(collectivite_id) OR private.est_auditeur(collectivite_id)); + +alter table public.indicateur_perso_objectif_commentaire enable row level security; +create policy allow_read on indicateur_perso_objectif_commentaire for select using ( + can_read_acces_restreint(collectivite_id)); +create policy allow_insert on indicateur_perso_objectif_commentaire for insert with check ( + have_edition_acces(collectivite_id) OR private.est_auditeur(collectivite_id)); +create policy allow_update on indicateur_perso_objectif_commentaire for update using ( + have_edition_acces(collectivite_id) OR private.est_auditeur(collectivite_id)); + +alter table public.indicateur_personnalise_definition enable row level security; +create policy allow_read on indicateur_personnalise_definition for select using ( + can_read_acces_restreint(collectivite_id)); +create policy allow_insert on indicateur_personnalise_definition for insert with check ( + have_edition_acces(collectivite_id) OR private.est_auditeur(collectivite_id)); +create policy allow_update on indicateur_personnalise_definition for update using ( + have_edition_acces(collectivite_id) OR private.est_auditeur(collectivite_id)); + +alter table public.indicateurs_json enable row level security; +alter table public.indicateur_terristory_json enable row level security; +alter table public.action_impact_indicateur enable row level security; + +COMMIT; diff --git a/data_layer/sqitch/sqitch.plan b/data_layer/sqitch/sqitch.plan index 9a96ede03e..b1cd168e08 100644 --- a/data_layer/sqitch/sqitch.plan +++ b/data_layer/sqitch/sqitch.plan @@ -683,3 +683,4 @@ plan_action/fiches [plan_action/fiches@v3.6.0] 2024-07-02T09:46:13Z Frederic Arn plan_action/fiches [plan_action/fiches@v3.7.0] 2024-07-02T13:21:08Z Frederic Arnoux # Amélioration des performances des requêtes de filtre @v3.8.0 2024-07-05T19:06:22Z Frederic Arnoux # Amélioration des performances des requêtes de filtre +indicateur/fusion 2024-05-10T12:26:07Z Amandine Jacquelin # Fusionne les indicateurs predefini et personnalisés. Fusionne les résultats et objectifs. diff --git a/data_layer/sqitch/verify/indicateur/fusion.sql b/data_layer/sqitch/verify/indicateur/fusion.sql new file mode 100644 index 0000000000..f7aa5b5a7f --- /dev/null +++ b/data_layer/sqitch/verify/indicateur/fusion.sql @@ -0,0 +1,7 @@ +-- Verify tet:indicateur/fusion on pg + +BEGIN; + +-- XXX Add verifications here. + +ROLLBACK; From aca1191fb1b781a60667cf1063634674d50377bc Mon Sep 17 00:00:00 2001 From: Amandine Jacquelin Date: Thu, 23 May 2024 18:02:59 +0200 Subject: [PATCH 02/46] =?UTF-8?q?Modifie=20les=20donn=C3=A9es=20de=20tests?= =?UTF-8?q?=20li=C3=A9es=20aux=20indicateurs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data_layer/seed/content/18-truncate.sql | 3 +- .../content/23-indicateur_referentiel.sql | 1494 +++++++++-------- ..._fake_indicateur_resultat_and_objectif.sql | 9 - .../seed/fakes/15-insert_fake_indicateurs.sql | 18 + .../17-insert_fake_indicateur_commentaire.sql | 2 - ...ake_indicateur_personnalise_and_values.sql | 8 - data_layer/seed/test/11-plan_action.sql | 2 +- data_layer/seed/test/14-indicateurs.sql | 36 +- data_layer/seed/test/90-reset.sql | 2 + 9 files changed, 830 insertions(+), 744 deletions(-) delete mode 100644 data_layer/seed/fakes/15-insert_fake_indicateur_resultat_and_objectif.sql create mode 100644 data_layer/seed/fakes/15-insert_fake_indicateurs.sql delete mode 100644 data_layer/seed/fakes/17-insert_fake_indicateur_commentaire.sql delete mode 100644 data_layer/seed/fakes/18-insert_fake_indicateur_personnalise_and_values.sql diff --git a/data_layer/seed/content/18-truncate.sql b/data_layer/seed/content/18-truncate.sql index 21694b5ecd..8e3506f521 100644 --- a/data_layer/seed/content/18-truncate.sql +++ b/data_layer/seed/content/18-truncate.sql @@ -1,3 +1,2 @@ TRUNCATE epci, commune, collectivite, action_definition, action_computed_points, indicateur_action, - indicateur_resultat_commentaire, - indicateur_resultat, indicateur_objectif, indicateur_definition RESTART IDENTITY CASCADE; + indicateur_valeur, indicateur_definition RESTART IDENTITY CASCADE; diff --git a/data_layer/seed/content/23-indicateur_referentiel.sql b/data_layer/seed/content/23-indicateur_referentiel.sql index f022be9ea1..16c79c3f2d 100644 --- a/data_layer/seed/content/23-indicateur_referentiel.sql +++ b/data_layer/seed/content/23-indicateur_referentiel.sql @@ -1,7 +1,39 @@ -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'crte_4.1', '4.1', null, 'Surface Agricole Utile totale', '

Définition: +do $$ + begin + insert into public.categorie_tag (collectivite_id, nom, visible, created_at, created_by) + values (null, 'clef', true, now(), null), + (null, 'eci', true, now(), null), + (null, 'cae', true, now(), null), + (null, 'pcaet', true, now(), null), + (null, 'crte', true, now(), null), + (null, 'resultat', false, now(), null), + (null, 'impact', false, now(), null), + (null, 'prioritaire', true, now(), null); + + create temporary table indicateur_def + ( + modified_at timestamptz, + id indicateur_id, + identifiant text, + valeur_indicateur indicateur_id, + nom text, + description text, + unite text, + participation_score boolean, + selection boolean, + titre_long text, + parent indicateur_id, + source text, + type indicateur_referentiel_type, + thematiques old_indicateur_thematique[], + programmes indicateur_programme[], + sans_valeur boolean + ); + + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'crte_4.1', '4.1', null, 'Surface Agricole Utile totale', '

Définition: Surface Agricole Utile (SAU) totale du territoire

Modalités de calcul: Somme des surfaces agricoles utiles (SAU) du territoire

@@ -21,13 +53,13 @@ Développement de l’agriculture biologique

  • 15 % de SAU affectée à l’agriculture biologique au 31/12/2022 ; 30 % en 2030
  • ', 'ha', false, true, 'Surface Agricole Utile totale du territoire', null, null, null, '{urbanisme_et_amenagement}', - '{crte}', false); + '{crte}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'crte_6.1', '6.1', null, 'Linéaire d’aménagements cyclables sécurisés', '

    Définition: + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'crte_6.1', '6.1', null, 'Linéaire d’aménagements cyclables sécurisés', '

    Définition: Longueur des voies de pistes cyclables en site propre ou voies vertes sur le territoire.

    Modalités de calcul: Somme des longueurs de voies cyclables en site propre et voies vertes.

    @@ -54,21 +86,21 @@ Décarboner la mobilité

  • Tripler la part modale du vélo d’ici 2024 (de 3 % à 9 % des déplacements quotidiens)
  • ', 'km', false, true, 'Linéaire d’aménagements cyclables sécurisés', null, null, null, '{mobilite_et_transport}', - '{crte}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_24', '24', null, - 'Consommation d''énergies fossiles / consommation d''énergies renouvelables', '

    MWh d''énergie fossile consommée sur le territoire/MWh d''énergie renouvelable consommée sur le territoire.

    + '{crte}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_24', '24', null, + 'Consommation d''énergies fossiles / consommation d''énergies renouvelables', '

    MWh d''énergie fossile consommée sur le territoire/MWh d''énergie renouvelable consommée sur le territoire.

    Cet indicateur complète l''indicateur "Part des sources d''énergies renouvelables (ENR) locales (%)" pour établir une vision sur la part des ENR locales dans le mix énergétique.

    Cet indicateur est à considérer car la production d''énergie génère la consommation de ressources naturelles sur le terrioire et en-dehors du territoire de la collectivité.

    Les observatoires climat-air-énergie peuvent fournir la donnée. Cet indicateur peut aussi être suivi dans le cadre du PCAET.

    ', '%', false, false, 'Proportion d''énergie fossile consommé par rapport aux énergies renouvelables consommées (%)', - null, null, null, '{energie_et_climat}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'crte_9.1', '9.1', null, 'Part des cours d’eau en bon état écologique (%)', '

    Définition: + null, null, null, '{energie_et_climat}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'crte_9.1', '9.1', null, 'Part des cours d’eau en bon état écologique (%)', '

    Définition: Proportion des cours d’eau de surface dont l’état écologique est bon ou très bon

    Modalités de calcul: Nombre de masses d’eau en bon état et très bon état écologique comprises dans le territoire sur le nombre total de masses d’eau du territoire. (Une masse d’eau est comprise dans le territoire si plus de 1 % de la masse d’eau est dans le territoire)

    @@ -85,19 +117,19 @@ Restaurer les milieux aquatiques

    Objectif opérationnel national fixé par les documents de référence : Directive-cadre sur l’eau

    ', '%', false, false, 'Part des cours d’eau en bon état écologique (%)', null, null, 'impact', '{eau_assainissement}', - '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_9', '9', null, 'Mode de transport des DMA', '

    Mode de transport à faible impact : véhicules électriques, mobilité douce ou active, équipements utilisant la voie fluviale, la voie ferroviaire.

    + '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_9', '9', null, 'Mode de transport des DMA', '

    Mode de transport à faible impact : véhicules électriques, mobilité douce ou active, équipements utilisant la voie fluviale, la voie ferroviaire.

    Tonnes de DMA transportés par les équipements de transport à faible impact / Tonnes de DMA transportés

    Le rapport annuel sur les déchets peut être la source de cet indicateur.

    ', '%', false, false, 'Part des déchets ménagers et assimilés bénéficiant d''un mode de transport à faible impact (%)', - null, null, null, '{eci_dechets}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'crte_12.1', '12.1', null, 'Fragmentation des milieux naturels', '

    Définition: + null, null, null, '{eci_dechets}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'crte_12.1', '12.1', null, 'Fragmentation des milieux naturels', '

    Définition: L’indicateur de fragmentation des espaces naturels mobilise la méthode de la taille effective de maille (méthode CUT ou CBC).

    Cette méthode qualifie la fragmentation du paysage et se base sur la probabilité que deux points choisis au hasard sur un territoire ne soient pas séparés par une barrière (route ou zone urbanisée par exemple), ce qui peut être interprété comme la possibilité que deux animaux de la même espèce puissent se rencontrer sur le territoire sans avoir à franchir un obstacle. La valeur de l’indicateur diminue avec un nombre croissant de barrières sur le territoire.

    Modalités de calcul: @@ -119,25 +151,25 @@ Restaurer et renforcer la biodiversité végétale et animale via les continuit

    Objectif opérationnel national fixé par les documents de référence : Action 39 du Plan biodiversité de 2018 : Viser la résorption de 20 des principaux points noirs (obstacles aux continuités écologiques) identifiés dans les schémas régionaux de cohérence écologique (SRADDET maintenant)

    ', 'km²', false, true, 'Indicateur de fragmentation des milieux naturels', null, null, null, - '{urbanisme_et_amenagement}', '{crte}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_12', '12', null, - 'Animation de filières pour la prise en charge des déchets', '

    La collectivité définit le périmètre des filières pertinent pour le territoire. L''animation sous-entend des actions allant de soutien au dialogue jusqu''à l''accompagnement d''action pour améliorer la dynamique déchets des acteurs économiques (prévention, amélioration de tri, de collecte et de valorisation, etc.)

    + '{urbanisme_et_amenagement}', '{crte}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_12', '12', null, + 'Animation de filières pour la prise en charge des déchets', '

    La collectivité définit le périmètre des filières pertinent pour le territoire. L''animation sous-entend des actions allant de soutien au dialogue jusqu''à l''accompagnement d''action pour améliorer la dynamique déchets des acteurs économiques (prévention, amélioration de tri, de collecte et de valorisation, etc.)

    La source de cet indicateur sur le suivi interne en lien avec les services ou partenaires concernés.

    ', 'nombre', false, false, - 'Nombre de filières animés par la collectivité ou ses partenaires pour la prise en charge des déchets (BTP, DAE…) (nombre)', - null, null, null, '{strategie_orga_interne}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_2.j', '2.j', null, 'Consommation énergétique - déchets', '', 'GWh', - false, false, 'Consommation énergétique des déchets', 'cae_2.a', null, null, '{}', '{cae,pcaet}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'crte_7.1', '7.1', null, 'Zones à risque naturel', '

    Définition: + 'Nombre de filières animés par la collectivité ou ses partenaires pour la prise en charge des déchets (BTP, DAE…) (nombre)', + null, null, null, '{strategie_orga_interne}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_2.j', '2.j', null, 'Consommation énergétique - déchets', '', 'GWh', + false, false, 'Consommation énergétique des déchets', 'cae_2.a', null, null, '{}', '{cae,pcaet}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'crte_7.1', '7.1', null, 'Zones à risque naturel', '

    Définition: Part de la population dans une zone à risque naturel fort ou très fort.

    Modalités de calcul: Part, dans la population totale du territoire, de la population résidant dans une zone classée à risque naturel fort ou très fort, au sens notamment des plans de prévention des risques, des cartes TRI (territoires à risques importants d’inondations) et des porter à connaissance.

    @@ -165,11 +197,11 @@ Réduire la vulnérabilité vis-à-vis de ces risques naturels ou a minima veill

    Objectif opérationnel local fixé par les documents de référence (SRADDET, PCAET, etc.): Voir les PGRI et SLGRI

    ', '%', false, true, 'Population située dans une zone à risque naturel élevé', null, null, null, - '{nature_environnement_air}', '{crte}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_1', '1', null, 'Budget Économie Circulaire', '

    La collectivité définit le périmètre de sa politique Economie Circulaire transversale avec d''autres politiques et stratégies.

    + '{nature_environnement_air}', '{crte}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_1', '1', null, 'Budget Économie Circulaire', '

    La collectivité définit le périmètre de sa politique Economie Circulaire transversale avec d''autres politiques et stratégies.

    La méthodologie "Evaluation climat des budgets des collectivités territoriales" peut être utilisée pour définir le périmetre du budget Economie Circualire.

    Le budget Economie Circulaire peut inclure : https://www.i4ce.org/go_project/cadre-evaluation-climat-budget-collectivites/

      @@ -194,32 +226,32 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'eci_1', '1', null, 'Budget Économ

      Les collectivités utilisant la comptabilité analytique peuvent créer un compte analytique associé.

      ', '%', false, false, 'Part du budget consacrée à la politique Economie Circulaire dans le budget global', null, '

      Budget de la collectivité

      ', null, '{strategie_orga_interne}', '{eci}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_28', '28', null, - 'Activité de réemploi et/ou de réutilisation dans l''activité économique', '

      Nombre d''entreprises de réemploi et/ou de réutilisation / nombre total d''entreprises sur le territoire

      + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_28', '28', null, + 'Activité de réemploi et/ou de réutilisation dans l''activité économique', '

      Nombre d''entreprises de réemploi et/ou de réutilisation / nombre total d''entreprises sur le territoire

      L''indicateur peut être renseigné via l'' Annuaire SINOE Structures du réemploi et/ou de réutilisation ou en utilisant le SIRENE des entreprises.

      ', '%', false, false, 'Proportion de l''activité de réemploi et/ou de réutilisation dans l''activité économique (%)', - null, null, null, '{activites_economiques}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_15', '15', null, - 'Biens ou constructions temporaires issus du réemploi ou réutilisation ou recyclage', '

      Données de suivi des objectifs de la loi AGEC articles 56 et 58 (décret n° 2021-254 du 9 mars 2021).

      + null, null, null, '{activites_economiques}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_15', '15', null, + 'Biens ou constructions temporaires issus du réemploi ou réutilisation ou recyclage', '

      Données de suivi des objectifs de la loi AGEC articles 56 et 58 (décret n° 2021-254 du 9 mars 2021).

      Objectif de 20 % d''achats reconditionnés.

      Le service Achats ou Comptabilité peut fournir les valeurs de de cet indicateur.

      ', '%', false, false, - 'Part de biens ou de constructions temporaires acquis annuellement par la collectivité issus du réemploi ou de la réutilisation ou intégrant des matières recyclées (%)', - null, null, null, '{eci_dechets}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_7', '7', null, 'Réutilisation, recyclage et valorisation des DMA', '

      Poids des DMA envoyés pour la réutilisation, le recyclage ou la valorisation / Poids des DMA produits sur le territoire.

      + 'Part de biens ou de constructions temporaires acquis annuellement par la collectivité issus du réemploi ou de la réutilisation ou intégrant des matières recyclées (%)', + null, null, null, '{eci_dechets}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_7', '7', null, 'Réutilisation, recyclage et valorisation des DMA', '

      Poids des DMA envoyés pour la réutilisation, le recyclage ou la valorisation / Poids des DMA produits sur le territoire.

      Il est possible de détailler cet indicateur par voie de valorisation si un suivi plus fin est souhaité. Exemples : DMA envoyés vers les recycleries, les usines de compostage, la méthanisation, etc, via les indicateurs personnalisés.

      Les sources utiles pour renseigner cet indicateur sont :

        @@ -231,64 +263,64 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'eci_7', '7', null, 'Réutilisation
      ', '%', false, false, - 'Part des déchets ménagers et assimilés envoyée pour la réutilisation, le recyclage et la valorisation organique ou énergétique (%)', - null, null, null, '{eci_dechets}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_27', '27', null, 'Économie d''eau potable', '

      Mesure de consommation d''eau sur le territoire de l''Année N / Mesure de consommation d''eau sur le territoire de l''Année N-X (périodicité définie par la collectivité).

      + 'Part des déchets ménagers et assimilés envoyée pour la réutilisation, le recyclage et la valorisation organique ou énergétique (%)', + null, null, null, '{eci_dechets}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_27', '27', null, 'Économie d''eau potable', '

      Mesure de consommation d''eau sur le territoire de l''Année N / Mesure de consommation d''eau sur le territoire de l''Année N-X (périodicité définie par la collectivité).

      Cet indicateur est pertinent si la collectivité choisit l''eau comme un enjeu fort pour le territoire et y associe des actions. Le choix de la périodicité permet de suivre l''impact d''une action ou d''une série d''actions.

      Le gestionnaire du réseau d''eau portable peut fournir les données de cet indicateur.

      ', '%', false, false, 'Part d''eau potable économisée (%)', null, null, null, '{eau_assainissement}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_13', '13', null, - 'Mise en place de boucles locales d''économie circulaire', '

      Une boucle locale d’économie circulaire vise à conserver le plus longtemps possible dans l’économie (locale) la valeur d’un produit, de ses composants ou des matières (des ressources). Ainsi on limite la génération de déchets et développe plusieurs échanges de produits ou matière dans le cycle de vie ou de la chaine de valeur notamment via le partage, la réparation, le réemploi, la réutilisation, la rénovation, la refabrication et le recyclage.

      + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_13', '13', null, + 'Mise en place de boucles locales d''économie circulaire', '

      Une boucle locale d’économie circulaire vise à conserver le plus longtemps possible dans l’économie (locale) la valeur d’un produit, de ses composants ou des matières (des ressources). Ainsi on limite la génération de déchets et développe plusieurs échanges de produits ou matière dans le cycle de vie ou de la chaine de valeur notamment via le partage, la réparation, le réemploi, la réutilisation, la rénovation, la refabrication et le recyclage.

      Une boucle locale d''économie circulaire respecte la hiérarchie des valorisations/traitement des déchets.

      Elle contribue au développement d’activité économique (durable, faible en carbone et réduction de l’utilisation des ressources naturelles) et d’emplois locaux (ou de proximité).

      L''indicateur prend en compte les boucles locales opérationnelles mises en place depuis 4 ans.

      ', 'nombre', false, false, - 'Nombre de boucles locales d''économie circulaire mises en place dans les 4 dernières années', null, '

      Suivi interne en lien avec les services ou partenaires concernés

      + 'Nombre de boucles locales d''économie circulaire mises en place dans les 4 dernières années', null, '

      Suivi interne en lien avec les services ou partenaires concernés

      ', null, '{eci_dechets}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_18', '18', null, 'Synergies d''EIT opérationnelles sur le territoire', '

      Une synergie est considérée comme opérationnelle à partir d''au moins un échange matière réalisé ou d''un service de mutualisation utilisé par au moins deux entités.

      + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_18', '18', null, 'Synergies d''EIT opérationnelles sur le territoire', '

      Une synergie est considérée comme opérationnelle à partir d''au moins un échange matière réalisé ou d''un service de mutualisation utilisé par au moins deux entités.

      Un suivi interne peut être réalisé. Les données du réseau SYNAPSE: https://www.economiecirculaire.org/eit/h/le-reseau-synapse.html peuvent également être utilisées.

      ', 'nombre', false, false, - 'Nombre de synergies d''Ecologie Industrielle et Territoriale (EIT) opérationnelles sur le territoire (nombre)', - null, null, null, '{eci_dechets}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_29', '29', null, - 'Activité de l''allongement de la durée d''usage dans l''activité économique', '

      Nombre d''entreprises ayant un code NAF associé à la réparation (véhicules compris) / nombre total d''entreprises sur le territoire.

      + 'Nombre de synergies d''Ecologie Industrielle et Territoriale (EIT) opérationnelles sur le territoire (nombre)', + null, null, null, '{eci_dechets}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_29', '29', null, + 'Activité de l''allongement de la durée d''usage dans l''activité économique', '

      Nombre d''entreprises ayant un code NAF associé à la réparation (véhicules compris) / nombre total d''entreprises sur le territoire.

      Les codes NAF/prodfre/SIREN et sources de données sont identifiés dans la liste "Pilier Allongement de la durée d''usage" - Méthodologie de quantification de l’emploi dans l’économie circulaire - P. 44 - 45. https://www.statistiques.developpement-durable.gouv.fr/sites/default/files/2018-10/document-travail-29-methodologie-quantification-emploi-ecocirculaire-fevrier2017.pdf

      Les données sont disponibles via le Système national d''identification et du répertoire des entreprises et de leurs établissements (SIRENE), mais un traitement de données est nécessaire.

      ', '%', false, true, 'Proportion de l''activité de l''allongement de la durée d''usage dans l''activité économique (%)', - null, null, 'impact', '{activites_economiques}', '{eci}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_37', '37', null, 'Budget gestion des déchets', '

      Voir la méthode de calcul de la matrice des coûts.

      + null, null, 'impact', '{activites_economiques}', '{eci}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_37', '37', null, 'Budget gestion des déchets', '

      Voir la méthode de calcul de la matrice des coûts.

      Méthodologie sur SINOE Déchets : https://www.sinoe.org/thematiques/consult/ss-theme/25

      ', 'euros/habitant', false, false, 'Dépense annuelle consacrée à la gestion des déchets (€/habitant)', null, null, null, - '{strategie_orga_interne}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_21', '21', null, - 'Gaspillage alimentaire dans la restauration collective publique', '

      Quantité de déchets alimentaires produits par la restauration collective publique du territoire (d''après l''enquête INSEE sur les déchets non-dangereux en restauration collective) / nombre de repas servis par la restauration collective publique du territoire. Objectif légal AGEC et Climat et Résilience.

      + '{strategie_orga_interne}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_21', '21', null, + 'Gaspillage alimentaire dans la restauration collective publique', '

      Quantité de déchets alimentaires produits par la restauration collective publique du territoire (d''après l''enquête INSEE sur les déchets non-dangereux en restauration collective) / nombre de repas servis par la restauration collective publique du territoire. Objectif légal AGEC et Climat et Résilience.

      ', 'g/repas servi', false, false, - 'Gaspillage alimentaire de la restauration collective sous la compétence de la collectivité (g/repas servi)', - null, '

      Les restaurants collectifs dont la collectivité a la charge

      + 'Gaspillage alimentaire de la restauration collective sous la compétence de la collectivité (g/repas servi)', + null, '

      Les restaurants collectifs dont la collectivité a la charge

      ', null, '{activites_economiques}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_11', '11', null, - 'Emissions de gaz à effet de serre - collecte des DMA', '

      Méthode de calcul:

      + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_11', '11', null, + 'Emissions de gaz à effet de serre - collecte des DMA', '

      Méthode de calcul:

      Étape 1 : Constitution d’un catalogue de facteurs d’efficacité énergétique et de facteurs d’émissions

      Étape 2 : Établissement d’hypothèses sur les distances parcourues

      Étape 3 : Calcul des émissions de la collecte DMA

      @@ -298,144 +330,144 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'eci_11', '11', null,

      Voir la méthodologie détaillée et données dans l''étude "TRANSPORT ET LOGISTIQUE DES DECHETS: ENJEUX ET EVOLUTIONS DU TRANSPORT ET DE LA LOGISTIQUE DES DECHETS", 2014, ADEME

      Pour le calcul de cet indicateur, le suivi interne du kilométrage parcouru par les véhicule de collecte, ainsi que les fiches techniques des véhicules pour les émissions, peuvent être nécessaires.

      ', 'teq CO2/tonne de déchets', false, false, - 'Emissions GES de la collecte des déchets ménagers et assimilés sur le territoire (teq CO2/tonne de déchets)', - null, null, null, '{energie_et_climat}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_34', '34', null, - 'Entreprises ou établissements sensibilisées ou accompagnées sur l''EFC', '

      Pour le périmetre de l''économie de la fonctionnalité et de la coopération - Panorama national et pistes d''action pour l''économie de la fonctionnalité et de la coopération (https://librairie.ademe.fr/changement-climatique-et-energie/23-panorama-national-et-pistes-d-action-pour-l-economie-de-la-fonctionnalite.html)

      + 'Emissions GES de la collecte des déchets ménagers et assimilés sur le territoire (teq CO2/tonne de déchets)', + null, null, null, '{energie_et_climat}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_34', '34', null, + 'Entreprises ou établissements sensibilisées ou accompagnées sur l''EFC', '

      Pour le périmetre de l''économie de la fonctionnalité et de la coopération - Panorama national et pistes d''action pour l''économie de la fonctionnalité et de la coopération (https://librairie.ademe.fr/changement-climatique-et-energie/23-panorama-national-et-pistes-d-action-pour-l-economie-de-la-fonctionnalite.html)

      Un suivi interne, ou par les acteurs d''animation en économie de la fonctionnalité et de coopération, est nécessaire pour compléter cet indicateur.

      ', 'nombre d''entreprises et d''établissements', false, false, - 'Nombre d''entreprises ou établissements sensibilisées ou accompagnées sur les questions de l''économie de la fonctionnalité et de la coopération (EFC)', - null, null, null, '{eci_dechets}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_36', '36', null, - 'Financement des projets de recherche, d''innovation ou d''expérimentation', '

      [Total des budgets de projets Economie Circulaire soutenus par la collectivité]-[Total d''aide financière apportée aux projets Economie Circulaire par la collectivité] / [Total d''aide financière apportée aux projets Economie Circulaire par la collectivité]

      + 'Nombre d''entreprises ou établissements sensibilisées ou accompagnées sur les questions de l''économie de la fonctionnalité et de la coopération (EFC)', + null, null, null, '{eci_dechets}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_36', '36', null, + 'Financement des projets de recherche, d''innovation ou d''expérimentation', '

      [Total des budgets de projets Economie Circulaire soutenus par la collectivité]-[Total d''aide financière apportée aux projets Economie Circulaire par la collectivité] / [Total d''aide financière apportée aux projets Economie Circulaire par la collectivité]

      Les conventions de financement peuvent être une source des données de cet indicateur.

      ', 'euros', false, false, - 'Effet de levier d''accompagnement financier des projets de recherche, d''innovation et d''expérimentation en matière d''Economie Circulaire (1€ public pour X€ privé)', - null, null, null, '{strategie_orga_interne}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_22', '22', null, - 'Réduction du gaspillage alimentaire dans la restauration collective publique', '

      Nombre restaurants collectifs engagés dans une démarche de réduction du gaspillage alimentaire / Nombre de restaurants collectifs total. Pour affiner son action la collectivité peut choisir de distinguer le type d''établissement (écoles, EPHAD, hôpital, etc.).

      + 'Effet de levier d''accompagnement financier des projets de recherche, d''innovation et d''expérimentation en matière d''Economie Circulaire (1€ public pour X€ privé)', + null, null, null, '{strategie_orga_interne}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_22', '22', null, + 'Réduction du gaspillage alimentaire dans la restauration collective publique', '

      Nombre restaurants collectifs engagés dans une démarche de réduction du gaspillage alimentaire / Nombre de restaurants collectifs total. Pour affiner son action la collectivité peut choisir de distinguer le type d''établissement (écoles, EPHAD, hôpital, etc.).

      ', 'nombre', false, false, - 'Part des restaurants collectifs sous la compétence de la collectivité engagée dans une démarche de réduction du gaspillage alimentaire (%)', - null, '

      Les restaurants collectifs dont la collectivité a la charge

      + 'Part des restaurants collectifs sous la compétence de la collectivité engagée dans une démarche de réduction du gaspillage alimentaire (%)', + null, '

      Les restaurants collectifs dont la collectivité a la charge

      ', null, '{activites_economiques}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_32', '32', null, - 'Couverture de la population par la Tarification Incitative', '

      % de la population de la collectivité couverte par la TI

      + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_32', '32', null, + 'Couverture de la population par la Tarification Incitative', '

      % de la population de la collectivité couverte par la TI

      ', '%', false, false, 'Part de la population de la collectivité couverte par la Tarification Incitative', null, null, - null, '{eci_dechets}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_33', '33', null, 'Actions de la collectivité en EFC', '

      Pour le périmetre de l''économie de la fonctionnalité et de la coopération - Panorama national et pistes d''action pour l''économie de la fonctionnalité (disponible sur https://librairie.ademe.fr/changement-climatique-et-energie/23-panorama-national-et-pistes-d-action-pour-l-economie-de-la-fonctionnalite.html)

      + null, '{eci_dechets}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_33', '33', null, 'Actions de la collectivité en EFC', '

      Pour le périmetre de l''économie de la fonctionnalité et de la coopération - Panorama national et pistes d''action pour l''économie de la fonctionnalité (disponible sur https://librairie.ademe.fr/changement-climatique-et-energie/23-panorama-national-et-pistes-d-action-pour-l-economie-de-la-fonctionnalite.html)

      Les actions : actions de sensibilisation, les commandes publiques, les projets coopératifs, actions collectives.

      Un suivi interne est nécessaire pour compléter cet indicateur.

      ', 'nombre d''actions', false, false, - 'Nombre d''actions de la collectivité en économie de la fonctionnalité et de la coopération', null, null, null, - '{eci_dechets}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_3', '3', null, 'Formation Économie Circulaire', '

      Nombre de formations en Economie Circulaire / Nombre total de formations suivis par les agents *100

      + 'Nombre d''actions de la collectivité en économie de la fonctionnalité et de la coopération', null, null, null, + '{eci_dechets}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_3', '3', null, 'Formation Économie Circulaire', '

      Nombre de formations en Economie Circulaire / Nombre total de formations suivis par les agents *100

      L''indicateur peut être renseigné en consultant le plan de formation de la collectivité.

      ', '%', false, false, 'Part de formations Economie Circulaire dans le programme de formation de la collectivité (%)', - null, null, null, '{strategie_orga_interne}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_25', '25', null, - 'Rapport entre production et consommation d''énergie renouvelable', '

      MWh d''énergies renouvelables consommés sur le territoire / MWh d''énergies renouvelables produits sur le territoire *100

      + null, null, null, '{strategie_orga_interne}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_25', '25', null, + 'Rapport entre production et consommation d''énergie renouvelable', '

      MWh d''énergies renouvelables consommés sur le territoire / MWh d''énergies renouvelables produits sur le territoire *100

      Cet indicateur est à considérer car la production d''énergie génère la consommation de ressources naturelles sur le terrioire et en-dehors du territoire de la collectivité.

      Les observatoires climat-air-énergie peuvent fournir la donnée. Cet indicateur peut aussi être suivi dans le cadre du PCAET.

      ', '%', false, false, 'Part des sources d''énergie renouvelable (ENR) locales (%)', null, null, null, - '{energie_et_climat}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_9.b', '9.b', null, - 'Part des nouveaux logements collectifs et individuels groupés', '', '%', false, true, - 'Part des nouveaux logements collectifs et individuels groupés dans les logements autorisés dans l’année', null, - null, null, '{urbanisme_et_amenagement}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_2', '2', null, - 'Services de la collectivité formés à l''Economie Circulaire', '

      Nombre de services avec au moins un salarié actuellement présent dans son poste ayant été formé à l''Economie Circulaire dans les 4 dernières années/ Nombre de services de la collectivité * 100.

      + '{energie_et_climat}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_9.b', '9.b', null, + 'Part des nouveaux logements collectifs et individuels groupés', '', '%', false, true, + 'Part des nouveaux logements collectifs et individuels groupés dans les logements autorisés dans l’année', null, + null, null, '{urbanisme_et_amenagement}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_2', '2', null, + 'Services de la collectivité formés à l''Economie Circulaire', '

      Nombre de services avec au moins un salarié actuellement présent dans son poste ayant été formé à l''Economie Circulaire dans les 4 dernières années/ Nombre de services de la collectivité * 100.

      Les services incluent toutes les thématiques et secteurs, y compris fonctions support.

      L''indicateur peut être renseigné en utilisant les attestations de formations Economie Circulaire et l''organigramme de la collectivité.

      ', '%', false, false, 'Part des services de la collectivité formés à l''Economie Circulaire (%)', null, null, null, - '{strategie_orga_interne}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_35', '35', null, - 'Accompagnement des projets de recherche, d''innovation ou d''expérimentation', '

      Les projets peuvent porter sur des sujets techniques, technologiques, organisationnels ou de modèles d''affires. Si la collectivité souhaite aller plus loin dans le suivi, elle peut prendre en compte l''ampleur des projets (budgets, nombre de partenaires, etc.)

      + '{strategie_orga_interne}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_35', '35', null, + 'Accompagnement des projets de recherche, d''innovation ou d''expérimentation', '

      Les projets peuvent porter sur des sujets techniques, technologiques, organisationnels ou de modèles d''affires. Si la collectivité souhaite aller plus loin dans le suivi, elle peut prendre en compte l''ampleur des projets (budgets, nombre de partenaires, etc.)

      Un suivi interne est nécessaire pour compléter cet indicateur.

      ', 'nombre de projets', false, false, - 'Nombre de projets de recherche, d''innovation ou d''expérimentation accompagnés financièrement ou non-financièrement par la collectivité', - null, null, null, '{strategie_orga_interne}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_17', '17', null, - 'Formation à l''écoconception des entreprises et des établissements', '

      Nombre d''entreprises et d''établissements ayant été formées à l''écoconception / Nombre d''entreprises et d''établissements sur le territoire

      + 'Nombre de projets de recherche, d''innovation ou d''expérimentation accompagnés financièrement ou non-financièrement par la collectivité', + null, null, null, '{strategie_orga_interne}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_17', '17', null, + 'Formation à l''écoconception des entreprises et des établissements', '

      Nombre d''entreprises et d''établissements ayant été formées à l''écoconception / Nombre d''entreprises et d''établissements sur le territoire

      L''une des sources est la liste des stagiaires des formations fournis par les organismes d''enseignement

      ', '%', false, false, - 'Part d''entreprises et d''établissements ayant été formées à l''écoconception durant les 4 dernières années (%)', - null, null, null, '{eci_dechets}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_19', '19', null, 'Entreprises engagées dans les synergie d''EIT', '

      Une synergie est considérée comme opérationnelle à partir d''au moins un échange matière réalisé ou d''un service de mutualisation utilisé par au moins deux entités.

      + 'Part d''entreprises et d''établissements ayant été formées à l''écoconception durant les 4 dernières années (%)', + null, null, null, '{eci_dechets}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_19', '19', null, 'Entreprises engagées dans les synergie d''EIT', '

      Une synergie est considérée comme opérationnelle à partir d''au moins un échange matière réalisé ou d''un service de mutualisation utilisé par au moins deux entités.

      Un suivi interne peut être réalisé. Les données du réseau SYNAPSE: https://www.economiecirculaire.org/eit/h/le-reseau-synapse.html peuvent également être utilisées.

      ', 'nombre d''entreprises', false, false, - 'Nombre d''entreprises engagées dans les synergie d''Ecologie Industrielle et Territoriale', null, null, null, - '{eci_dechets}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_10', '10', null, - 'Emissions de gaz à effet de serre - Installations de Stockage de Déchets Non-Dangereux', '

      Equivalent en tonnes de CO2 par an émis par l''ISDND / volume de déchets entrants en tonnes

      + 'Nombre d''entreprises engagées dans les synergie d''Ecologie Industrielle et Territoriale', null, null, null, + '{eci_dechets}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_10', '10', null, + 'Emissions de gaz à effet de serre - Installations de Stockage de Déchets Non-Dangereux', '

      Equivalent en tonnes de CO2 par an émis par l''ISDND / volume de déchets entrants en tonnes

      Le gestionnaire des installations peut être la source de cet indicateur.

      ', 'teq CO2/tonne de déchets entrant', false, false, - 'Emissions GES des Installations de Stockage de Déchets Non-Dangereux (teq CO2/tonne de déchets entrant)', null, - null, null, '{energie_et_climat}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_30', '30', null, - 'Co-construction d''action Économie circulaire dans les compétences de la collectivité', '

      % des compétences obligatoires et facultatives exercées par la collectivité (mobilité, urbanisme, etc.) pour lesquelles l’équipe Economie Circulaire a co-construit au moins une action favorisant l’Economie Circulaire dans les 4 dernières années

      + 'Emissions GES des Installations de Stockage de Déchets Non-Dangereux (teq CO2/tonne de déchets entrant)', null, + null, null, '{energie_et_climat}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_30', '30', null, + 'Co-construction d''action Économie circulaire dans les compétences de la collectivité', '

      % des compétences obligatoires et facultatives exercées par la collectivité (mobilité, urbanisme, etc.) pour lesquelles l’équipe Economie Circulaire a co-construit au moins une action favorisant l’Economie Circulaire dans les 4 dernières années

      ', '%', false, false, - 'Part des compétences obligatoires et facultatives exercées par la collectivité pour lesquelles l’équipe Economie Circulaire a co-construit au moins une action favorisant l’Economie Circulaire dans les 4 dernières années', - null, null, null, '{strategie_orga_interne}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_31', '31', null, - 'Co-conception des stratégies ou politiques de la collectivité avec prisme ECi', '', '%', false, false, - 'Part des stratégies ou des politiques dans lesquelles l’équipe Economie Circulaire a été associée pour leur conception', - null, null, null, '{strategie_orga_interne}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_26', '26', null, 'Perte en eau du réseau (%)', '

      Volume d''eau consommée sur le territoire/ volume d''eau dirigée vers le territoire

      + 'Part des compétences obligatoires et facultatives exercées par la collectivité pour lesquelles l’équipe Economie Circulaire a co-construit au moins une action favorisant l’Economie Circulaire dans les 4 dernières années', + null, null, null, '{strategie_orga_interne}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_31', '31', null, + 'Co-conception des stratégies ou politiques de la collectivité avec prisme ECi', '', '%', false, false, + 'Part des stratégies ou des politiques dans lesquelles l’équipe Economie Circulaire a été associée pour leur conception', + null, null, null, '{strategie_orga_interne}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_26', '26', null, 'Perte en eau du réseau (%)', '

      Volume d''eau consommée sur le territoire/ volume d''eau dirigée vers le territoire

      ', '%', false, true, 'Taux de fuite des réseaux d’eau du territoire', null, '

      Gestionnaire du réseau d''eau potable

      ', null, '{eau_assainissement}', '{eci}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_20', '20', null, - 'Alimentation sous signe de qualité dans la restauration collective publique', '

      Produits alimentaires (T ou kg) achetés sous signe de qualité (AOP, IGP, STG, Agriculture Biologique) / Volume glogal de produits alimentaires achetés (T ou kg).

      + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_20', '20', null, + 'Alimentation sous signe de qualité dans la restauration collective publique', '

      Produits alimentaires (T ou kg) achetés sous signe de qualité (AOP, IGP, STG, Agriculture Biologique) / Volume glogal de produits alimentaires achetés (T ou kg).

      Signes de qualité : https://www.economie.gouv.fr/dgccrf/Publications/Vie-pratique/Fiches-pratiques/Signe-de-qualite

      Objectif légal Egalim.

      Les sources possibles sont :

      @@ -448,89 +480,89 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'eci_20', '20', null,
    ', '%', false, false, - 'Part de l’alimentation sous signe de qualité en restauration collective sous la compétence de la collectivité (%)', - null, null, null, '{activites_economiques}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_8', '8', null, 'Mise en décharge des DMA', '

    Poids de déchets envoyés en décharge / Poids de déchets produits sur le territoire

    + 'Part de l’alimentation sous signe de qualité en restauration collective sous la compétence de la collectivité (%)', + null, null, null, '{activites_economiques}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_8', '8', null, 'Mise en décharge des DMA', '

    Poids de déchets envoyés en décharge / Poids de déchets produits sur le territoire

    L''indicateur peut être complété grâce à l''enquête collecte de l''ADEME (sur les zones couvertes en fonction des années).

    ', '%', false, false, 'Taux de mise en décharge des déchets ménagers et assimilés (%)', null, null, null, - '{eci_dechets}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_21.a', '21.a', null, 'Consommation d''eau dans les bâtiments publics', '

    L''objectif est de mesurer l''impact des mesures de limitation des consommations d''eau au fil des ans dans les bâtiments de la collectivités (hors piscine).

    + '{eci_dechets}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_21.a', '21.a', null, 'Consommation d''eau dans les bâtiments publics', '

    L''objectif est de mesurer l''impact des mesures de limitation des consommations d''eau au fil des ans dans les bâtiments de la collectivités (hors piscine).

    ', 'l/m²', false, false, 'Consommation moyenne d''eau dans les bâtiments de la collectivité (l/m²)', null, null, - 'impact', '{eau_assainissement}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_17.a', '17.a', null, - 'Production d''électricité renouvelable - patrimoine collectivité', '

    L''indicateur mesure la production d''électricité d''origine renouvelable (installations financées en totalité ou en majorité par la collectivité et de sa compétence : éolien, photovoltaïque, hydraulique, marémotrice, géothermie haute température, électricité issue de l''incinération des déchets à hauteur de 50%, cogénération biomasse/biogaz...).

    + 'impact', '{eau_assainissement}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_17.a', '17.a', null, + 'Production d''électricité renouvelable - patrimoine collectivité', '

    L''indicateur mesure la production d''électricité d''origine renouvelable (installations financées en totalité ou en majorité par la collectivité et de sa compétence : éolien, photovoltaïque, hydraulique, marémotrice, géothermie haute température, électricité issue de l''incinération des déchets à hauteur de 50%, cogénération biomasse/biogaz...).

    ', 'MWh', false, true, 'Production d''électricité renouvelable - patrimoine collectivité', null, null, null, - '{energie_et_climat}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_17.b', '17.b', null, - 'Taux de production d''électricité renouvelable - patrimoine collectivité', '

    L''indicateur mesure le rapport de la production d''électricité d''origine renouvelable (installations financées en totalité ou en majorité par la collectivité et de sa compétence : éolien, photovoltaïque, hydraulique, marémotrice, géothermie haute température, électricité issue de l''incinération des déchets à hauteur de 50%, cogénération biomasse/biogaz...) sur la consommation totale d''électricité des bâtiments et équipements communaux (y compris l''éclairage public et les services industriels de la compétence de la collectivité) en énergie finale. Le patrimoine en DSP est inclus si possible.

    + '{energie_et_climat}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_17.b', '17.b', null, + 'Taux de production d''électricité renouvelable - patrimoine collectivité', '

    L''indicateur mesure le rapport de la production d''électricité d''origine renouvelable (installations financées en totalité ou en majorité par la collectivité et de sa compétence : éolien, photovoltaïque, hydraulique, marémotrice, géothermie haute température, électricité issue de l''incinération des déchets à hauteur de 50%, cogénération biomasse/biogaz...) sur la consommation totale d''électricité des bâtiments et équipements communaux (y compris l''éclairage public et les services industriels de la compétence de la collectivité) en énergie finale. Le patrimoine en DSP est inclus si possible.

    ', '%', true, true, 'Taux de production d''électricité renouvelable - patrimoine collectivité', null, null, null, - '{energie_et_climat}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_56', '56', null, 'Dossiers « Habiter mieux » déposés à l’Anah', '

    L’indicateur mesure le nombre de dossier déposés chaque année auprès de l’ANAH dans le cadre du programme Habiter mieux. Ce programme vise les propriétaires occupants (sous conditions de ressources) et les propriétaires bailleurs.

    + '{energie_et_climat}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_56', '56', null, 'Dossiers « Habiter mieux » déposés à l’Anah', '

    L’indicateur mesure le nombre de dossier déposés chaque année auprès de l’ANAH dans le cadre du programme Habiter mieux. Ce programme vise les propriétaires occupants (sous conditions de ressources) et les propriétaires bailleurs.

    ', 'Nombre de dossiers', false, false, 'Nombre de dossiers « Habiter mieux » déposés à l’Anah sur le territoire', null, - null, null, '{solidarite_lien_social}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_7', '7', null, 'Recyclage des déchets', '

    Il s’agit de la part (en poids) des déchets ménagers et assimilés (DMA) orientés vers le recyclage matière et organique. Le recyclage consiste en toute opération de valorisation par laquelle les déchets, y compris organiques, sont retraités en substances, matières ou produits pour resservir à leur fonction initiale ou à d’autres fins (définition du code de l’environnement). La valorisation énergétique n''est pas prise en compte ici.

    + null, null, '{solidarite_lien_social}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_7', '7', null, 'Recyclage des déchets', '

    Il s’agit de la part (en poids) des déchets ménagers et assimilés (DMA) orientés vers le recyclage matière et organique. Le recyclage consiste en toute opération de valorisation par laquelle les déchets, y compris organiques, sont retraités en substances, matières ou produits pour resservir à leur fonction initiale ou à d’autres fins (définition du code de l’environnement). La valorisation énergétique n''est pas prise en compte ici.

    NB : On mesure les déchets « orientés vers le recyclage », les refus de tri ne sont donc pas déduits. Ne sont pas considérés ici comme « orientés vers le recyclage » les déchets entrant dans des installations de tri mécanobiologique. Pour ces derniers, seuls les flux sortant orientés vers la valorisation organique (compostage ou méthanisation) ou vers le recyclage matière (métaux récupérés) sont à intégrer dans les flux « orientés vers le recyclage ». Les mâchefers valorisés ainsi que les métaux récupérés sur mâchefers ne sont pas intégrés.

    ', '%', true, true, - 'Part des déchets ménagers et assimilés orientés vers le recyclage matière et organique à par an (%)', null, - null, 'impact', '{eci_dechets}', '{cae,clef}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_52', '52', null, - 'Part du budget coopération décentralisée climat, air, énergie', '

    L''indicateur mesure le montant des subventions ou investissements consentis pour les projets de coopération décentralisée, en lien avec le climat, l’air et l’énergie, rapporté au budget total (investissement et fonctionnement) de la collectivité. Pour information, l''aide publique au développement en France est estimée à 0,38% du RNB en 2017, toutes thématiques confondues (santé, éducation, alimentaire, eau, climat...). Lors du sommet du millénaire de 2000, l''objectif fixé par la commission européenne était d''atteindre 0,7 % du RNB en 2015.

    + 'Part des déchets ménagers et assimilés orientés vers le recyclage matière et organique à par an (%)', null, + null, 'impact', '{eci_dechets}', '{cae,clef}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_52', '52', null, + 'Part du budget coopération décentralisée climat, air, énergie', '

    L''indicateur mesure le montant des subventions ou investissements consentis pour les projets de coopération décentralisée, en lien avec le climat, l’air et l’énergie, rapporté au budget total (investissement et fonctionnement) de la collectivité. Pour information, l''aide publique au développement en France est estimée à 0,38% du RNB en 2017, toutes thématiques confondues (santé, éducation, alimentaire, eau, climat...). Lors du sommet du millénaire de 2000, l''objectif fixé par la commission européenne était d''atteindre 0,7 % du RNB en 2015.

    ', '%', true, false, - 'Part du budget consacré à des projets de coopération décentralisée en lien avec le climat, l’air ou l’énergie', - null, null, null, '{strategie_orga_interne}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_54', '54', null, 'Manifestations et actions sur climat, air, énergie', '

    Il s''agit du nombre de manifestions/actions de communication menées sur le thème de l''énergie et du climat. L''évaluation est différenciée selon la taille de la collectivité. Cet indicateur fait partie d''un ensemble (indicateurs qualitatifs et quantitatifs).

    + 'Part du budget consacré à des projets de coopération décentralisée en lien avec le climat, l’air ou l’énergie', + null, null, null, '{strategie_orga_interne}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_54', '54', null, 'Manifestations et actions sur climat, air, énergie', '

    Il s''agit du nombre de manifestions/actions de communication menées sur le thème de l''énergie et du climat. L''évaluation est différenciée selon la taille de la collectivité. Cet indicateur fait partie d''un ensemble (indicateurs qualitatifs et quantitatifs).

    Valeur limite : 2 (< 3 000 hab) ; 5 (> 3 000 hab) ; 10 (> 50 000 hab)

    Les actions importantes peuvent être comptées comme équivalentes à deux actions.

    ', 'Nombre', true, true, 'Nombre de manifestations/actions sur le climat, l''air et l''énergie par an', null, null, - null, '{strategie_orga_interne}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_31', '31', null, 'Consommation d''eau des espaces verts', '

    L''objectif est de mesurer les efforts de la collectivité en matière de limitation des consommations d''eau pour l''arrosage de ses espaces verts. Le volume annuel d''eau est divisé par la surface d''espaces verts gérés par la collectivité. L''unité de l''indicateur est en m³ /m². Les espaces verts sont entendus au sens large, à savoir : parcs et jardins, espaces sportifs végétalisés, ronds-points ou accotement enherbées de la compétence de la collectivité.

    + null, '{strategie_orga_interne}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_31', '31', null, 'Consommation d''eau des espaces verts', '

    L''objectif est de mesurer les efforts de la collectivité en matière de limitation des consommations d''eau pour l''arrosage de ses espaces verts. Le volume annuel d''eau est divisé par la surface d''espaces verts gérés par la collectivité. L''unité de l''indicateur est en m³ /m². Les espaces verts sont entendus au sens large, à savoir : parcs et jardins, espaces sportifs végétalisés, ronds-points ou accotement enherbées de la compétence de la collectivité.

    ', 'm³/m²', false, false, 'Consommation annuelle d''eau pour l''arrosage des espaces verts', null, null, null, - '{urbanisme_et_amenagement}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_30', '30', null, 'Consommation d''engrais des espaces verts', '

    L''objectif est de mesurer les efforts de la collectivité en matière de limitation des engrais sur ses espaces verts. La quantité annuelle d''engrais apportée est divisée par la surface d''espaces verts gérés par la collectivité.

    + '{urbanisme_et_amenagement}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_30', '30', null, 'Consommation d''engrais des espaces verts', '

    L''objectif est de mesurer les efforts de la collectivité en matière de limitation des engrais sur ses espaces verts. La quantité annuelle d''engrais apportée est divisée par la surface d''espaces verts gérés par la collectivité.

    La collectivité peut suivre un autre indicateur en fonction des produits employés et du calcul de la collectivité : unité d''azote/m2,litre/m2, euros/m2... (à créer dans les indicateurs personnalisés et à relier à cet indicateur)

    ', 'kg/m2', false, false, 'Consommation annuelle d''engrais pour les espaces verts', null, null, null, - '{urbanisme_et_amenagement}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_2.a', '2.a', null, 'Consommation énergétique territoriale', '

    Cet indicateur estime la consommation énergétique finale annuelle du territoire, selon les exigences réglementaires des PCAET (décret n°2016-849 du 28 juin 2016 et arrêté du 4 août 2016 relatifs au plan climat-air-énergie territorial).

    + '{urbanisme_et_amenagement}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_2.a', '2.a', null, 'Consommation énergétique territoriale', '

    Cet indicateur estime la consommation énergétique finale annuelle du territoire, selon les exigences réglementaires des PCAET (décret n°2016-849 du 28 juin 2016 et arrêté du 4 août 2016 relatifs au plan climat-air-énergie territorial).

    L''indicateur est exprimé en GWh.

    ', 'GWh', false, true, 'Consommation énergétique finale du territoire (GWh)', null, null, null, '{energie_et_climat}', - '{cae,pcaet,clef}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_45', '45', null, 'Stationnement vélo', '

    L''indicateur mesure le nombre de places de stationnement vélo pour 100 habitants : arceaux sur l’espace public, consignes ou boxes à vélos, stationnements vélos en gare, en parking automobiles... Attention, les stationnements de type râtelier vélo ou « pince-roues » sur l’espace public, qui ne permettent pas une accroche sécuritaire, ne sont pas pris en compte.

    + '{cae,pcaet,clef}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_45', '45', null, 'Stationnement vélo', '

    L''indicateur mesure le nombre de places de stationnement vélo pour 100 habitants : arceaux sur l’espace public, consignes ou boxes à vélos, stationnements vélos en gare, en parking automobiles... Attention, les stationnements de type râtelier vélo ou « pince-roues » sur l’espace public, qui ne permettent pas une accroche sécuritaire, ne sont pas pris en compte.

    • Valeurs limites : 2 (commune) et 1 (EPCI)

      @@ -541,44 +573,44 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'cae_45', '45', null, 'Stationnemen

    Pour les collectivités rurales, se focaliser sur la présence d’abris et de stationnements proposés aux endroits clés (centres bourgs, autour des écoles et pôles d’activités, lieux publics de rencontre, commerces, etc).

    ', 'nombre de places', true, true, 'Nombre de places de stationnement vélo, hors pince-roues pour 100 habitants', null, - null, null, '{mobilite_et_transport}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_61', '61', null, - 'Consommation de viande dans la restauration collective publique', '

    L’indicateur mesure le ratio moyen de viande par repas : la quantité totale annuelle de viande achetée dans la restauration collectivité publique (maîtrisée par la collectivité) est divisée par le nombre de repas servi sur l’année.

    + null, null, '{mobilite_et_transport}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_61', '61', null, + 'Consommation de viande dans la restauration collective publique', '

    L’indicateur mesure le ratio moyen de viande par repas : la quantité totale annuelle de viande achetée dans la restauration collectivité publique (maîtrisée par la collectivité) est divisée par le nombre de repas servi sur l’année.

    ', 'g/repas', false, false, 'Quantité moyenne de viande par repas dans la restauration collective publique', null, null, - null, '{activites_economiques}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_58', '58', null, - 'Emissions de polluants atmosphériques du secteur agricole', '

    Indicateur exigé dans la règlementation PCAET (diagnostic). Arrêté du 4 août 2016 relatif au plan climat-air-énergie territorial. Ramené à l’hectare pour comparaison.

    + null, '{activites_economiques}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_58', '58', null, + 'Emissions de polluants atmosphériques du secteur agricole', '

    Indicateur exigé dans la règlementation PCAET (diagnostic). Arrêté du 4 août 2016 relatif au plan climat-air-énergie territorial. Ramené à l’hectare pour comparaison.

    Le NH3 est suivi en priorité. Pour les quelques territoires où le NH3 ne serait pas le polluant majoritaire du secteur agricole, et où le suivi d''un autre polluant serait plus pertinent pour la collectivité, l''indiquer en commentaire.

    ', 'tonne/ha', false, false, 'Emissions directes de polluants atmosphériques du secteur agriculture par ha', null, null, - null, '{nature_environnement_air}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_63.a', '63.a', null, 'Séquestration de CO2 dans les sols et la forêt', '

    L''indicateur suit une estimation de la séquestration nette de dioxyde de carbone, identifiant au moins les sols agricoles et la forêt, en tenant compte des changements d’affectation des terres (décret n°2016-849 du 28 juin 2016 et arrêté du 4 août 2016 relatifs au plan climat-air-énergie territorial).

    + null, '{nature_environnement_air}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_63.a', '63.a', null, 'Séquestration de CO2 dans les sols et la forêt', '

    L''indicateur suit une estimation de la séquestration nette de dioxyde de carbone, identifiant au moins les sols agricoles et la forêt, en tenant compte des changements d’affectation des terres (décret n°2016-849 du 28 juin 2016 et arrêté du 4 août 2016 relatifs au plan climat-air-énergie territorial).

    ', 'teq CO2', false, true, 'Séquestration nette de dioxyde de carbone dans les sols et la forêt', null, null, null, - '{urbanisme_et_amenagement}', '{cae,pcaet,clef}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_9.a', '9.a', null, - 'Part des surfaces construites ou réhabilitées sur des sites en reconversion', '', '%', false, true, - 'Part des nouvelles surfaces construites ou réhabilitées sur des sites en reconversion par rapport aux nouvelles surfaces construites en extension', - null, null, null, '{urbanisme_et_amenagement}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_9.c', '9.c', null, 'Part du foncier en friche', '', '%', false, true, - 'Part du foncier en friche', null, null, null, '{urbanisme_et_amenagement}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_20', '20', null, 'Consommation de l’éclairage public', '

    L’indicateur est en énergie finale et inclut les consommations pour la signalisation et l’éclairage du mobilier urbain (ex : abri-bus).

    + '{urbanisme_et_amenagement}', '{cae,pcaet,clef}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_9.a', '9.a', null, + 'Part des surfaces construites ou réhabilitées sur des sites en reconversion', '', '%', false, true, + 'Part des nouvelles surfaces construites ou réhabilitées sur des sites en reconversion par rapport aux nouvelles surfaces construites en extension', + null, null, null, '{urbanisme_et_amenagement}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_9.c', '9.c', null, 'Part du foncier en friche', '', '%', false, true, + 'Part du foncier en friche', null, null, null, '{urbanisme_et_amenagement}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_20', '20', null, 'Consommation de l’éclairage public', '

    L’indicateur est en énergie finale et inclut les consommations pour la signalisation et l’éclairage du mobilier urbain (ex : abri-bus).

    Pour les EPCI, l’indicateur n’est renseigné que si la compétence a été transférée totalement (pas uniquement sur les zones communautaires).

    • @@ -589,20 +621,20 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'cae_20', '20', null, 'Consommation
    ', 'kWh/hab.an', true, true, 'Consommation énergétique de l’éclairage public par habitant', null, null, null, - '{energie_et_climat}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_27', '27', null, - 'Mix énergétique des régies et SEM fournisseur d''électricité', '

    Les SEM et régies peuvent, en plus de leur propre production d’énergies renouvelables, acheter de l''électricité renouvelable ou verte (labellisée) pour compléter leur offre. Les objectifs fixés (production et achat) sont basés sur les objectifs 2030 de la loi de transition énergétique.

    + '{energie_et_climat}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_27', '27', null, + 'Mix énergétique des régies et SEM fournisseur d''électricité', '

    Les SEM et régies peuvent, en plus de leur propre production d’énergies renouvelables, acheter de l''électricité renouvelable ou verte (labellisée) pour compléter leur offre. Les objectifs fixés (production et achat) sont basés sur les objectifs 2030 de la loi de transition énergétique.

    Valeur cible : 40% (Métropole) / 100% (DOM)

    ', '%', true, false, 'Mix énergétique proposé par les régies et SEM fournisseur d''électricité (%)', null, null, null, - '{energie_et_climat}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_34', '34', null, - 'Valorisation énergétique du biogaz des centres de stockage des déchets', '

    L''indicateur mesure la part de biogaz valorisé par le centre de stockage des déchets.

    + '{energie_et_climat}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_34', '34', null, + 'Valorisation énergétique du biogaz des centres de stockage des déchets', '

    L''indicateur mesure la part de biogaz valorisé par le centre de stockage des déchets.

    • Valeur limite: 75% (fixée par le seuil de valorisation permettant la modulation de la TGAP)

      @@ -612,20 +644,20 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'cae_34', '34', null,
    ', '%', true, false, 'Taux de valorisation énergétique du biogaz des centres de stockage des déchets', null, null, null, - '{energie_et_climat}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_40', '40', null, 'Consommation annuelle d''énergie des véhicules', '

    L''indicateur mesure la consommation d''énergie en kWh (gazole, essence, GPL, GNV, électricité, biogaz, agro-carburants...) des véhicules de type "véhicule particulier" pour le fonctionnement de la collectivité.

    + '{energie_et_climat}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_40', '40', null, 'Consommation annuelle d''énergie des véhicules', '

    L''indicateur mesure la consommation d''énergie en kWh (gazole, essence, GPL, GNV, électricité, biogaz, agro-carburants...) des véhicules de type "véhicule particulier" pour le fonctionnement de la collectivité.

    Facteurs de conversion simplifiés : gazole et essence 10 kWh/L, GPL 7 kWh/L, GNV 11 kWh/m3.

    L''indicateur est ensuite divisé par le nombre d''agents et/ou par kilomètre effectué pour faciliter les comparaisons avec d''autres collectivités.

    ', 'kWh/an', false, false, - 'Consommation annuelle d''énergie des véhicules de type "véhicule particulier" pour le fonctionnement de la collectivité', - null, null, null, '{mobilite_et_transport}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_38', '38', null, 'Part modale des déplacements intermodaux', '

    Cet indicateur peut remplacer l''indicateur sur les parts modales des transports en commun, si ce dernier n''est pas adapté à sa situation (milieu rural notamment).

    + 'Consommation annuelle d''énergie des véhicules de type "véhicule particulier" pour le fonctionnement de la collectivité', + null, null, null, '{mobilite_et_transport}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_38', '38', null, 'Part modale des déplacements intermodaux', '

    Cet indicateur peut remplacer l''indicateur sur les parts modales des transports en commun, si ce dernier n''est pas adapté à sa situation (milieu rural notamment).

    Il peut également s’agir de la part de déplacements intermodaux réalisés par les habitants du territoire, c’est-à-dire la part de déplacements mécanisés (tout mode hors marche-a-pied) composés d''au moins deux trajets effectués à l’aide de plusieurs modes mécanisés. Pour obtenir la totalité des points, la valeur collectée doit témoigner d''une bonne performance de la collectivité par rapport à des valeurs de références nationales ou locales.

    A titre indicatif, [valeur limite ; valeur cible] pour la part de déplacements intermodaux:

      @@ -645,32 +677,32 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'cae_38', '38', null, 'Part modale

      (source : analyse de rapport d’études et de recherches sur l’intermodalité, CEREMA – IFSTTAR, 2015 et 2016, tendances observées depuis 1985 dans le cadre des EMD)

      Si cet indicateur n''est pas non plus le plus pertinent, alors la collectivité peut mesurer par un autre indicateur la progression d''un moyen de transport alternatif à la voiture individuelle, mieux adapté à sa situation : co-voiturage, transport à la demande..., en créant un indicateur personnalisé et en le liant à cet indicateur.

      ', '%', true, false, 'Part modale des déplacements intermodaux', null, null, null, '{mobilite_et_transport}', '{cae}', - false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_8', '8', null, 'Rénovation énergétique des logements', '

      L''indicateur mesure le nombre annuel de logements rénovés via les dispositifs de subventionnement et d’accompagnement dont la collectivité est partenaire, ramené au nombre de logements du territoire (pour 100 logements).

      + false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_8', '8', null, 'Rénovation énergétique des logements', '

      L''indicateur mesure le nombre annuel de logements rénovés via les dispositifs de subventionnement et d’accompagnement dont la collectivité est partenaire, ramené au nombre de logements du territoire (pour 100 logements).

      Pour rappel l’objectif national du plan de rénovation énergétique de l’habitat est de 500 000 logements rénovés par an, soit 1,4 logements rénovés pour 100 logements existants (36,1 millions de logements en 2020 selon l’INSEE).

      ', 'nombre logements rénovés/100 logements existants', false, false, - 'Nombre de logements rénovés énergétiquement (nombre logements rénovés/100 logements existants)', null, null, - null, '{energie_et_climat}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_59', '59', null, 'Surface agricole utile en agriculture biologique', '

      L''indicateur mesure le pourcentage % de SAU en agriculture biologique (certifié ou en conversion) par rapport à la SAU totale. L''agriculture à haute valeur environnementale de niveau 3 (HVE) ou raisonnée (ou niveau 2 de certification environnementale selon les décrets et arrêtés du 20 et 21 juin 2011) ne sont pas prises en compte.

      + 'Nombre de logements rénovés énergétiquement (nombre logements rénovés/100 logements existants)', null, null, + null, '{energie_et_climat}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_59', '59', null, 'Surface agricole utile en agriculture biologique', '

      L''indicateur mesure le pourcentage % de SAU en agriculture biologique (certifié ou en conversion) par rapport à la SAU totale. L''agriculture à haute valeur environnementale de niveau 3 (HVE) ou raisonnée (ou niveau 2 de certification environnementale selon les décrets et arrêtés du 20 et 21 juin 2011) ne sont pas prises en compte.

      Pour la France métropole, la valeur limite est basée sur la valeur moyenne française des surfaces labellisées AB en 2016 (5,7% - Agence bio) et la valeur cible est basée sur l’objectif 2020 fixé dans la loi Grenelle I (20%).

      ', '%', true, true, 'Part de surface agricole certifiée agriculture biologique', null, null, null, - '{urbanisme_et_amenagement}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_51', '51', null, 'Achats publics avec considération environnementale', '

      Part des marchés (en nombre) intégrant des clauses environnementales dans les spécifications techniques ou les critères d’attribution en augmentation

      + '{urbanisme_et_amenagement}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_51', '51', null, 'Achats publics avec considération environnementale', '

      Part des marchés (en nombre) intégrant des clauses environnementales dans les spécifications techniques ou les critères d’attribution en augmentation

      ', '%', false, true, 'Part de contrats d''achats publics comportant au moins une considération environnementale', null, - null, null, '{strategie_orga_interne}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_29', '29', null, 'Consommation énergétique des stations d''épuration', '

      L''indicateur de consommation énergétique des STEP (station d''épuration) s''exprime en kWh/kg de DBO5 (demande biologique en oxygène mesuré à 5 jours) éliminés, plus fiables que les indicateurs en kWh/m3 d''eau traité. La composition des eaux entrantes influe en effet sur les consommations énergétiques de la station sans pour autant refléter ses performances. L''énergie est mesurée en énergie finale. Dans le cas d''une moyenne entre plusieurs STEP, pondérer selon les équivalents habitants.

      + null, null, '{strategie_orga_interne}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_29', '29', null, 'Consommation énergétique des stations d''épuration', '

      L''indicateur de consommation énergétique des STEP (station d''épuration) s''exprime en kWh/kg de DBO5 (demande biologique en oxygène mesuré à 5 jours) éliminés, plus fiables que les indicateurs en kWh/m3 d''eau traité. La composition des eaux entrantes influe en effet sur les consommations énergétiques de la station sans pour autant refléter ses performances. L''énergie est mesurée en énergie finale. Dans le cas d''une moyenne entre plusieurs STEP, pondérer selon les équivalents habitants.

      • Valeur limite : BA 4, SBR 5, BRM 7

        @@ -681,43 +713,43 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'cae_29', '29', null, 'Consommation

      avec BA - boues activées / SBR - réacteur biologique séquencé / BM - bioréacteur à membranes

      ', 'kWh/kgDBO5 éliminé', true, false, 'Consommation énergétique des stations d''épuration par an', null, null, 'impact', - '{eau_assainissement}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_2.k', '2.k', null, - 'Consommation énergétique - industrie hors branche énergie', '', 'GWh', false, false, - 'Consommation énergétique de l''industrie hors branche énergie', 'cae_2.a', null, null, '{}', '{cae,pcaet}', - false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_63.b', '63.b', null, 'Séquestration de la forêt', '', 'teq CO2', - false, false, 'Séquestration de la forêt', 'cae_63.a', null, null, '{}', '{cae,pcaet}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_47', '47', null, - 'Maillage du territoire par les transports en commun', '

      L''indicateur a pour objectif de mesurer le maillage du territoire par les transports en commun. L''indicateur est basé sur une moyenne tous modes de TC confondus.

      + '{eau_assainissement}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_2.k', '2.k', null, + 'Consommation énergétique - industrie hors branche énergie', '', 'GWh', false, false, + 'Consommation énergétique de l''industrie hors branche énergie', 'cae_2.a', null, null, '{}', '{cae,pcaet}', + false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_63.b', '63.b', null, 'Séquestration de la forêt', '', 'teq CO2', + false, false, 'Séquestration de la forêt', 'cae_63.a', null, null, '{}', '{cae,pcaet}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_47', '47', null, + 'Maillage du territoire par les transports en commun', '

      L''indicateur a pour objectif de mesurer le maillage du territoire par les transports en commun. L''indicateur est basé sur une moyenne tous modes de TC confondus.

      D''autres indicateurs peuvent être utilisés pour suivre le maillage du territoire les transports en commun: nb arrêts/hab, km de réseau/hab ou par ha de territoire, % de population desservie dans un rayon de 300-500 mètres... Il est possible de créer ces autres indicateurs dans les indicateurs personnalisés et de les lier à cet indicateur pour en faciliter le suivi.

      ', 'Nombre d''arrêts/km', false, false, 'Nombre moyen d''arrêts par km du réseau de transport en commun', null, null, - null, '{mobilite_et_transport}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_53', '53', null, 'Part du budget coopération climat, air, énergie', '

      L''indicateur mesure le montant des dépenses engagées pour les projets de coopération significatifs et multi-acteurs par an sur le climat, l’air et l’énergie (hors coopération décentralisée), rapporté au budget total (investissement et fonctionnement) de la collectivité.

      + null, '{mobilite_et_transport}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_53', '53', null, 'Part du budget coopération climat, air, énergie', '

      L''indicateur mesure le montant des dépenses engagées pour les projets de coopération significatifs et multi-acteurs par an sur le climat, l’air et l’énergie (hors coopération décentralisée), rapporté au budget total (investissement et fonctionnement) de la collectivité.

      ', '%', false, false, - 'Part du budget dédié aux projets de coopération significatifs et multi-acteurs sur le climat, l’air et l’énergie', - null, null, null, '{strategie_orga_interne}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_43', '43', null, 'Part de voiries « apaisées »', '

      L’indicateur mesure la part des voiries où un dispositif règlementaire permet l’apaisement de la circulation (réduction des vitesses en dessous de 50 km/heures ou limitation de la circulation) par rapport au linéaire total de voirie de la collectivité. Les dispositifs pris en compte sont les zones de rencontre, les zones 30, les aires piétonnes, les zones de circulation restreinte.

      + 'Part du budget dédié aux projets de coopération significatifs et multi-acteurs sur le climat, l’air et l’énergie', + null, null, null, '{strategie_orga_interne}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_43', '43', null, 'Part de voiries « apaisées »', '

      L’indicateur mesure la part des voiries où un dispositif règlementaire permet l’apaisement de la circulation (réduction des vitesses en dessous de 50 km/heures ou limitation de la circulation) par rapport au linéaire total de voirie de la collectivité. Les dispositifs pris en compte sont les zones de rencontre, les zones 30, les aires piétonnes, les zones de circulation restreinte.

      ', '%', false, false, 'Part de voiries « apaisées » (%)', null, null, null, '{mobilite_et_transport}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_26', '26', null, 'Puissance photovoltaïque installée', '

      L''installation de panneaux solaires photovoltaïques est possible dans toutes les collectivités. Un indicateur en puissance installée plutôt qu''en production permet de ne pas prendre en compte les différences d''ensoleillement des territoires. Les valeurs cibles sont établies à partir des données collectées dans le cadre des démarches Territoire Engagé Climat-Air-Energie.

      + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_26', '26', null, 'Puissance photovoltaïque installée', '

      L''installation de panneaux solaires photovoltaïques est possible dans toutes les collectivités. Un indicateur en puissance installée plutôt qu''en production permet de ne pas prendre en compte les différences d''ensoleillement des territoires. Les valeurs cibles sont établies à partir des données collectées dans le cadre des démarches Territoire Engagé Climat-Air-Energie.

      Les valeurs cibles sont les suivantes :

      • @@ -731,61 +763,61 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'cae_26', '26', null, 'Puissance ph
      ', 'Wc/hab', true, true, 'Puissance photovoltaïque installée sur le territoire (Wc/hab)', null, null, null, - '{energie_et_climat}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_28.a', '28.a', null, - 'Consommation énergétique du système d''alimentation en eau potable', '

      Le système d''alimentation en eau potable (captage/traitement/distribution) est très dépendant de l''état de la ressource en eau sur le territoire. L''évaluation des effets se fait donc de manière relative, sur plusieurs années, en étant vigilant sur les conditions climatiques de l''année étudiée. L''indicateur peut être en kWh/hab.

      + '{energie_et_climat}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_28.a', '28.a', null, + 'Consommation énergétique du système d''alimentation en eau potable', '

      Le système d''alimentation en eau potable (captage/traitement/distribution) est très dépendant de l''état de la ressource en eau sur le territoire. L''évaluation des effets se fait donc de manière relative, sur plusieurs années, en étant vigilant sur les conditions climatiques de l''année étudiée. L''indicateur peut être en kWh/hab.

      ', 'kWh/hab', false, false, - 'Consommation énergétique du système d''alimentation en eau potable (captage/traitement/distribution)', null, - null, null, '{eau_assainissement}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_24.b', '24.b', null, - 'Taux de production d''énergie renouvelable chaleur/froid', '

      Cet indicateur mesure la production de chaleur et de rafraichissement renouvelable sur le territoire (initiative publique et privée), divisée par les consommations totales de chaleur et de froid du territoire (en énergie finale). Les énergies renouvelables prise en compte sont celles citées selon les filières citées dans le Décret n° 2016-849 du 28 juin 2016 relatif au plan climat-air-énergie territorial : biomasse solide, pompes à chaleur, géothermie, solaire thermique, biogaz.

      + 'Consommation énergétique du système d''alimentation en eau potable (captage/traitement/distribution)', null, + null, null, '{eau_assainissement}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_24.b', '24.b', null, + 'Taux de production d''énergie renouvelable chaleur/froid', '

      Cet indicateur mesure la production de chaleur et de rafraichissement renouvelable sur le territoire (initiative publique et privée), divisée par les consommations totales de chaleur et de froid du territoire (en énergie finale). Les énergies renouvelables prise en compte sont celles citées selon les filières citées dans le Décret n° 2016-849 du 28 juin 2016 relatif au plan climat-air-énergie territorial : biomasse solide, pompes à chaleur, géothermie, solaire thermique, biogaz.

      Par convention, 50% de la chaleur produite par l’incinération des déchets est considérée issue de déchets urbains renouvelables (source DGEC, dans ses bilans). Les pompes à chaleur prise en compte sont les pompes à chaleur eau/eau, sol/eau, sol/sol avec une efficacité énergétique ≥ 126 % (PAC basse température) et une efficacité énergétique ≥ 111 % (PAC moyenne ou haute température) (exigences du crédit d’impôt pour la transition énergétique 2018).

      La cogénération à partir d''énergie fossile n''est pas prise en compte.

      Pour connaître cet indicateur, la collectivité doit avoir effectué un bilan de ses consommations et production d''ENR tel que décrit à l''action 1.1.2 - Réaliser le diagnostic Climat-Air-Energie du territoire

      Valeur cible : 38% en Métropole, 75% dans les DOM

      ', 'en %', true, true, - 'Taux de production d''énergie renouvelable pour la chaleur et le rafraîchissement sur le territoire', null, - null, null, '{energie_et_climat}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_41', '41', null, - 'Part modale des déplacements alternatifs à la voiture individuelle des agents de la collectivité', '

      Via une enquête réalisée auprès des agents, l’indicateur mesure la part modale (en nombre de déplacements) cumulée des déplacements alternatifs à la voiture individuelle (somme des parts modales marche, vélo, transport en commun, co-voiturage) dans les déplacements domicile-travail des agents. L’indicateur est décliné si possible également en kilomètres parcourus.

      + 'Taux de production d''énergie renouvelable pour la chaleur et le rafraîchissement sur le territoire', null, + null, null, '{energie_et_climat}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_41', '41', null, + 'Part modale des déplacements alternatifs à la voiture individuelle des agents de la collectivité', '

      Via une enquête réalisée auprès des agents, l’indicateur mesure la part modale (en nombre de déplacements) cumulée des déplacements alternatifs à la voiture individuelle (somme des parts modales marche, vélo, transport en commun, co-voiturage) dans les déplacements domicile-travail des agents. L’indicateur est décliné si possible également en kilomètres parcourus.

      ', '%', false, false, - 'Part modale des déplacements alternatifs à la voiture individuelle pour les déplacements domicile-travail des agents de la collectivité', - null, null, null, '{mobilite_et_transport}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_23', '23', null, - 'Couverture des besoins de chaleur du territoire par les réseaux de chaleur ENR&R', '

      Cet indicateur est le ratio entre la consommation d''énergie pour le chauffage assurée par le(s) réseau(x) de chaleur alimenté(s) en énergie renouvelable et de récupération (ENR&R) et la consommation totale d''énergie pour le chauffage du territoire (pour le résidentiel et le tertiaire, donc hors industrie).

      + 'Part modale des déplacements alternatifs à la voiture individuelle pour les déplacements domicile-travail des agents de la collectivité', + null, null, null, '{mobilite_et_transport}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_23', '23', null, + 'Couverture des besoins de chaleur du territoire par les réseaux de chaleur ENR&R', '

      Cet indicateur est le ratio entre la consommation d''énergie pour le chauffage assurée par le(s) réseau(x) de chaleur alimenté(s) en énergie renouvelable et de récupération (ENR&R) et la consommation totale d''énergie pour le chauffage du territoire (pour le résidentiel et le tertiaire, donc hors industrie).

      Les réseaux de chaleur 100% fossiles ne sont pas donc pris en compte ici.

      La valeur limite (10%) est basée sur le taux moyen de couverture des besoins de chaleur par les réseaux de chaleur en Europe (source : AMORCE).

      ', '%', true, true, - 'Taux de couverture des besoins de chaleur du territoire (résidentiel et tertiaire) par les réseaux de chaleur ENR&R', - null, null, null, '{energie_et_climat}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_48', '48', null, 'Ressources humaines dédiées climat-air-énergie', '

      L’indicateur mesure le nombre de personnes en équivalent temps plein dédiées à la mise en œuvre de la politique climat-air-énergie. Pour être comptabilisé à 100%, l’intitulé du poste doit clairement se référer à cette politique (e : chargé de mission énergie, plan climat, mobilité douce…) ; pour des postes mixtes (ex : chargé de mission bâtiments), le poste ne doit pas être compté entièrement dans l’indicateur, mais uniquement l’estimation du % des tâches en lien avec la politique climat-air-énergie. Le personnel externe (prestataires) ne doit pas être pris en compte. Pour faciliter la comparaison, le nombre d’ETP est ramené au nombre total d''ETP de la collectivité.

      + 'Taux de couverture des besoins de chaleur du territoire (résidentiel et tertiaire) par les réseaux de chaleur ENR&R', + null, null, null, '{energie_et_climat}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_48', '48', null, 'Ressources humaines dédiées climat-air-énergie', '

      L’indicateur mesure le nombre de personnes en équivalent temps plein dédiées à la mise en œuvre de la politique climat-air-énergie. Pour être comptabilisé à 100%, l’intitulé du poste doit clairement se référer à cette politique (e : chargé de mission énergie, plan climat, mobilité douce…) ; pour des postes mixtes (ex : chargé de mission bâtiments), le poste ne doit pas être compté entièrement dans l’indicateur, mais uniquement l’estimation du % des tâches en lien avec la politique climat-air-énergie. Le personnel externe (prestataires) ne doit pas être pris en compte. Pour faciliter la comparaison, le nombre d’ETP est ramené au nombre total d''ETP de la collectivité.

      ', '%', false, false, 'Part d''ETP de la collectivité dédié à la mise en œuvre de la politique climat, air et énergie', - null, null, null, '{strategie_orga_interne}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_63.c', '63.c', null, - 'Séquestration dans les terres agricoles et les prairies', '', 'teq CO2', false, false, - 'Séquestration dans les terres agricoles et les prairies', 'cae_63.a', null, null, '{}', '{cae,pcaet}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_49.a', '49.a', null, 'Budget climat-air-énergie', '

      L''indicateur suit et totalise les budgets annuels associés aux actions les plus clairement identifiables de la politique climat-air-énergie de la collectivité, en fonctionnement et en investissement. L''indicateur doit exister et être suivi annuellement pour être valorisé. Pour faciliter la comparaison au fil du temps et entre collectivités, le budget est rapporté au nombre d''habitant et la décomposition suivante peut être utilisée :

      + null, null, null, '{strategie_orga_interne}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_63.c', '63.c', null, + 'Séquestration dans les terres agricoles et les prairies', '', 'teq CO2', false, false, + 'Séquestration dans les terres agricoles et les prairies', 'cae_63.a', null, null, '{}', '{cae,pcaet}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_49.a', '49.a', null, 'Budget climat-air-énergie', '

      L''indicateur suit et totalise les budgets annuels associés aux actions les plus clairement identifiables de la politique climat-air-énergie de la collectivité, en fonctionnement et en investissement. L''indicateur doit exister et être suivi annuellement pour être valorisé. Pour faciliter la comparaison au fil du temps et entre collectivités, le budget est rapporté au nombre d''habitant et la décomposition suivante peut être utilisée :

      • études/expertises concernant la maîtrise de l’énergie et la baisse des émissions de GES dans les différents secteurs consommateurs et émetteurs, les énergies renouvelables, l''adaptation au changement climatique, la qualité de l''air

        @@ -811,18 +843,18 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'cae_49.a', '49.a', null, 'Budget c

      A noter : Dans une approche véritablement transversale et intégrée, l''ensemble des budgets des différents services contribuent à la politique climat-air-énergie, mais dans une proportion difficilement quantifiable. Les budgets associés aux services déchets/eau/assainissement/transports publics/voirie, sont notamment associés à cette politique, mais répondent à des objectifs plus larges.

      ', 'euros', false, false, 'Budget associé à la politique climat-air-énergie', null, null, null, - '{strategie_orga_interne}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_57', '57', null, 'Hébergements labellisés Ecolabel européen', '

      Nombre d''hébergements labellisés Ecolabel Européen / Total d''hébergements touristiques sur le territoire

      + '{strategie_orga_interne}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_57', '57', null, 'Hébergements labellisés Ecolabel européen', '

      Nombre d''hébergements labellisés Ecolabel Européen / Total d''hébergements touristiques sur le territoire

      Il est possible de suivre le nombre d’hébergements labellisés Ecolabel Européen dans un indicateur personnalisé.

      ', '%', false, false, 'Taux d’hébergements labellisés Ecolabel européen', null, null, null, '{activites_economiques}', - '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_25.b', '25.b', null, 'Taux de production d''électricité renouvelable', '

      Cet indicateur mesure la production d''électricité renouvelable sur le territoire, par la collectivité, ses partenaires et les particuliers, rapporté à la consommation totale d''électricité du territoire (énergie finale). Les énergies renouvelables considérées sont celles citées dans le décret Décret n° 2016-849 du 28 juin 2016 relatif au plan climat-air-énergie territorial (éolien terrestre, solaire photovoltaïque, solaire thermodynamique, hydraulique, biomasse solide, biogaz, géothermie). L''électricité produite par cogénération via incinération des déchets en mélange compte pour 50% comme une énergie renouvelable (biomasse solide). La cogénération à partir d''énergie fossile n''est pas prise en compte.

      + '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_25.b', '25.b', null, 'Taux de production d''électricité renouvelable', '

      Cet indicateur mesure la production d''électricité renouvelable sur le territoire, par la collectivité, ses partenaires et les particuliers, rapporté à la consommation totale d''électricité du territoire (énergie finale). Les énergies renouvelables considérées sont celles citées dans le décret Décret n° 2016-849 du 28 juin 2016 relatif au plan climat-air-énergie territorial (éolien terrestre, solaire photovoltaïque, solaire thermodynamique, hydraulique, biomasse solide, biogaz, géothermie). L''électricité produite par cogénération via incinération des déchets en mélange compte pour 50% comme une énergie renouvelable (biomasse solide). La cogénération à partir d''énergie fossile n''est pas prise en compte.

      La collectivité doit avoir effectué un bilan de ses consommations et productions d''ENR tel que décrit à l''action 1.1.2 - Réaliser le diagnostic Climat-Air-Energie du territoire

      • @@ -836,19 +868,19 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'cae_25.b', '25.b', null, 'Taux de
      ', '%', true, true, 'Taux de production d''électricité renouvelable sur le territoire', null, null, null, - '{energie_et_climat}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_28.b', '28.b', null, - 'Rendement du système d''alimentation en eau potable', '

      Le système d''alimentation en eau potable est très dépendant de l''état de la ressource en eau sur le territoire. L''évaluation des effets se fait donc de manière relative, sur plusieurs années, en étant vigilant sur les conditions climatiques de l''année étudiée. L''indicateur est en m3 brut/m3 vendu pour mesurer les pertes (la cible étant dans ce cas de se rapprocher de 1).

      + '{energie_et_climat}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_28.b', '28.b', null, + 'Rendement du système d''alimentation en eau potable', '

      Le système d''alimentation en eau potable est très dépendant de l''état de la ressource en eau sur le territoire. L''évaluation des effets se fait donc de manière relative, sur plusieurs années, en étant vigilant sur les conditions climatiques de l''année étudiée. L''indicateur est en m3 brut/m3 vendu pour mesurer les pertes (la cible étant dans ce cas de se rapprocher de 1).

      ', 'm3 brut/m3 vendu', true, true, - 'Rendement du système d''alimentation en eau potable (captage/traitement/distribution)', null, null, null, - '{eau_assainissement}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_3.a', '3.a', null, 'Production d’énergie renouvelable du territoire', '

      Cet indicateur mesure la production d’énergie renouvelable totale sur le territoire, selon les exigences réglementaires des PCAET (décret n°2016-849 du 28 juin 2016 et arrêté du 4 août 2016 relatifs au plan climat-air-énergie territorial), c''est à dire incluant les filières de production:

      + 'Rendement du système d''alimentation en eau potable (captage/traitement/distribution)', null, null, null, + '{eau_assainissement}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_3.a', '3.a', null, 'Production d’énergie renouvelable du territoire', '

      Cet indicateur mesure la production d’énergie renouvelable totale sur le territoire, selon les exigences réglementaires des PCAET (décret n°2016-849 du 28 juin 2016 et arrêté du 4 août 2016 relatifs au plan climat-air-énergie territorial), c''est à dire incluant les filières de production:

      • d’électricité: éolien terrestre, solaire photovoltaïque, solaire thermodynamique, hydraulique, biomasse solide, biogaz, géothermie

        @@ -861,67 +893,67 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'cae_3.a', '3.a', null, 'Production
      ', 'MWh', false, true, 'Quantité totale d''énergies renouvelables et de récupération produites par an (MWh)', null, - null, null, '{energie_et_climat}', '{clef,cae,pcaet}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_3.b', '3.b', null, - 'Production d’énergie renouvelable / consommation énergétique', '

      Cet indicateur mesure la production d’énergie renouvelable totale sur le territoire ramené à la consommation énergétique globale du territoire.

      + null, null, '{energie_et_climat}', '{clef,cae,pcaet}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_3.b', '3.b', null, + 'Production d’énergie renouvelable / consommation énergétique', '

      Cet indicateur mesure la production d’énergie renouvelable totale sur le territoire ramené à la consommation énergétique globale du territoire.

      ', '%', false, false, - 'Production d’énergie renouvelable globale du territoire par rapport à la consommation énergétique globale', - null, null, null, '{energie_et_climat}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_16.a', '16.a', null, - 'Consommation de chaleur/froid ENR&R - patrimoine collectivité', '

      Pour les bâtiments et équipements publics, l''indicateur mesure la consommation de chaleur/rafraichissement issue d’energie renouvelable et de récupération. Le patrimoine en DSP est inclus si possible ainsi que les services publics eau/assainissement/déchets lorsqu''ils sont de la compétence de la collectivité.

      + 'Production d’énergie renouvelable globale du territoire par rapport à la consommation énergétique globale', + null, null, null, '{energie_et_climat}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_16.a', '16.a', null, + 'Consommation de chaleur/froid ENR&R - patrimoine collectivité', '

      Pour les bâtiments et équipements publics, l''indicateur mesure la consommation de chaleur/rafraichissement issue d’energie renouvelable et de récupération. Le patrimoine en DSP est inclus si possible ainsi que les services publics eau/assainissement/déchets lorsqu''ils sont de la compétence de la collectivité.

      Pour les collectivités compétentes, la récupération de chaleur des UIOM ainsi que sur les eaux usées/épurées peut ainsi être prise en compte pour la part autoconsommée sur place (bâtiments de la collectivité et process). Les pompes à chaleur prise en compte sont les pompes à chaleur eau/eau, sol/eau, sol/sol avec une efficacité énergétique ≥ 126 % (PAC basse température) et une efficacité énergétique ≥ 111 % (PAC moyenne ou haute température).

      Pour les bâtiments publics desservis par des réseaux de chaleur, le taux d’EnR&R du réseau est défini réglementairement et s’apprécie au regard du bulletin officiel des impôts vis-a-vis de la TVA réduite (BOI-TVA-LIQ-30 chapitre 2.140). La co-génération fossile n’est pas prise en compte.

      ', 'MWh', false, true, - 'Consommation de chaleur/rafraichissement renouvelable et de récupération - patrimoine collectivité', null, - null, null, '{energie_et_climat}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_21.b', '21.b', null, - 'Consommation d''eau - bâtiments d''enseignement et crèches', '', 'l/m²', true, false, - 'Consommation moyenne d''eau dans les bâtiments "enseignement/crèche" de la collectivité (l/m²)', 'cae_21.a', - null, 'impact', '{eau_assainissement}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_21.c', '21.c', null, 'Consommation d''eau - bâtiments administratifs', - '', 'l/m²', true, false, - 'Consommation moyenne d''eau dans les bâtiments "administration" de la collectivité (l/m²)', 'cae_21.a', null, - 'impact', '{eau_assainissement}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_21.d', '21.d', null, - 'Consommation d''eau - bâtiments culturels et sportifs', '', 'l/m²', true, false, - 'Consommation moyenne d''eau dans les bâtiments "culture/sport" de la collectivité (l/m²)', 'cae_21.a', null, - 'impact', '{eau_assainissement}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_16.b', '16.b', null, - 'Couverture des besoins en chaleur et froid par les ENR&R - patrimoine collectivité', '

      Pour les bâtiments et équipements publics, l''indicateur mesure le rapport de la consommation de chaleur/rafraichissement issue d’energie renouvelable et de récupération sur la consommation totale d''énergie pour les usages thermiques (chauffage, eau chaude sanitaire, climatisation-rafraichissement) en énergie finale. Le patrimoine en DSP est inclus si possible. Les consommations thermiques des services publics eau/assainissement/déchets sont prises en compte lorsqu''ils sont de la compétence de la collectivité. Pour les collectivités compétentes, la récupération de chaleur des UIOM ainsi que sur les eaux usées/épurées peut ainsi être prise en compte pour la part autoconsommée sur place (bâtiments de la collectivité et process).

      + 'Consommation de chaleur/rafraichissement renouvelable et de récupération - patrimoine collectivité', null, + null, null, '{energie_et_climat}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_21.b', '21.b', null, + 'Consommation d''eau - bâtiments d''enseignement et crèches', '', 'l/m²', true, false, + 'Consommation moyenne d''eau dans les bâtiments "enseignement/crèche" de la collectivité (l/m²)', 'cae_21.a', + null, 'impact', '{eau_assainissement}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_21.c', '21.c', null, 'Consommation d''eau - bâtiments administratifs', + '', 'l/m²', true, false, + 'Consommation moyenne d''eau dans les bâtiments "administration" de la collectivité (l/m²)', 'cae_21.a', null, + 'impact', '{eau_assainissement}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_21.d', '21.d', null, + 'Consommation d''eau - bâtiments culturels et sportifs', '', 'l/m²', true, false, + 'Consommation moyenne d''eau dans les bâtiments "culture/sport" de la collectivité (l/m²)', 'cae_21.a', null, + 'impact', '{eau_assainissement}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_16.b', '16.b', null, + 'Couverture des besoins en chaleur et froid par les ENR&R - patrimoine collectivité', '

      Pour les bâtiments et équipements publics, l''indicateur mesure le rapport de la consommation de chaleur/rafraichissement issue d’energie renouvelable et de récupération sur la consommation totale d''énergie pour les usages thermiques (chauffage, eau chaude sanitaire, climatisation-rafraichissement) en énergie finale. Le patrimoine en DSP est inclus si possible. Les consommations thermiques des services publics eau/assainissement/déchets sont prises en compte lorsqu''ils sont de la compétence de la collectivité. Pour les collectivités compétentes, la récupération de chaleur des UIOM ainsi que sur les eaux usées/épurées peut ainsi être prise en compte pour la part autoconsommée sur place (bâtiments de la collectivité et process).

      Les pompes à chaleur prise en compte sont les pompes à chaleur eau/eau, sol/eau, sol/sol avec une efficacité énergétique ≥ 126 % (PAC basse température) et une efficacité énergétique ≥ 111 % (PAC moyenne ou haute température).

      Pour les bâtiments publics desservis par des réseaux de chaleur, le taux d’EnR&R du réseau est défini réglementairement et s’apprécie au regard du bulletin officiel des impôts vis-a-vis de la TVA réduite (BOI-TVA-LIQ-30 chapitre 2.140). La co-génération fossile n’est pas prise en compte.

      ', '%', true, true, - 'Taux de couverture des besoins en chaleur et rafraichissement par les énergies renouvelables et de récupération (ENR&R) - patrimoine collectivité', - null, null, null, '{energie_et_climat}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_13.a', '13.a', null, 'Budget énergie', '

      L''indicateur mesure les dépenses d’énergie payées directement par la collectivité, c’est-à-dire celles payées par la collectivité aux fournisseurs et aux exploitants (uniquement le poste combustibles P1 dans ce dernier cas) pour le patrimoine bâti, l’éclairage public et les carburants des véhicules.

      + 'Taux de couverture des besoins en chaleur et rafraichissement par les énergies renouvelables et de récupération (ENR&R) - patrimoine collectivité', + null, null, null, '{energie_et_climat}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_13.a', '13.a', null, 'Budget énergie', '

      L''indicateur mesure les dépenses d’énergie payées directement par la collectivité, c’est-à-dire celles payées par la collectivité aux fournisseurs et aux exploitants (uniquement le poste combustibles P1 dans ce dernier cas) pour le patrimoine bâti, l’éclairage public et les carburants des véhicules.

      Rapportées au nombre d''habitants, pour les communes, les valeurs peuvent-être comparées avec des valeurs de références tirées de l''enquête ADEME, 2019 "Dépenses énergétiques des collectivités locales".

      ', 'euros', false, false, 'Dépenses énergétiques de la collectivité (euros)', null, null, null, - '{strategie_orga_interne}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_44', '44', null, 'Pistes cyclables', '

      L''indicateur mesure le kilométrage de voiries aménagées (pistes le long de la voirie, bandes cyclables et couloirs bus autorisés aux vélos, les zones 30, les aires piétonnes…) sur le kilométrage total de voirie. Les aménagements à double-sens compte pour 1, les sens unique pour 0,5 ; les aménagements hors voirie ne sont pas pris en compte (voies vertes, pistes ne suivant pas le tracé de la voirie, allées de parcs, ...). Les valeurs de références sont basées sur un traitement des données du Club des villes et territoires cyclables, dans le cadre de l’Observatoire des mobilités actives, enquête 2015-2016.

      + '{strategie_orga_interne}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_44', '44', null, 'Pistes cyclables', '

      L''indicateur mesure le kilométrage de voiries aménagées (pistes le long de la voirie, bandes cyclables et couloirs bus autorisés aux vélos, les zones 30, les aires piétonnes…) sur le kilométrage total de voirie. Les aménagements à double-sens compte pour 1, les sens unique pour 0,5 ; les aménagements hors voirie ne sont pas pris en compte (voies vertes, pistes ne suivant pas le tracé de la voirie, allées de parcs, ...). Les valeurs de références sont basées sur un traitement des données du Club des villes et territoires cyclables, dans le cadre de l’Observatoire des mobilités actives, enquête 2015-2016.

      • Valeurs limites : 25% ou 1 km/1000 hab (ville) et 20% ou 0,8 km/1000 hab (EPCI)

        @@ -932,29 +964,29 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'cae_44', '44', null, 'Pistes cycla

      Un indicateur en km/1000 habitants peut être utilisé : il est à construire dans les indicateurs personnalisés.

      ', '%', true, true, 'Part de voiries aménagées pour les cycles', null, null, null, '{mobilite_et_transport}', '{cae}', - false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_10', '10', null, 'Surfaces agricoles et naturelles', '

      Il s''agit de la mesure de la consommation ou de la réintroduction d''espaces naturels et agricoles au fil des ans grâce au suivi des surfaces réservées à ces usages dans les PLU, mesuré en pourcentage de la surface totale de la collectivité (ha cumulé des zones N et A/ha total). Ces surfaces sont non imperméabilisées, capteuses de CO2, productrices de ressources alimentaires, énergétiques et de biodiversité.

      + false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_10', '10', null, 'Surfaces agricoles et naturelles', '

      Il s''agit de la mesure de la consommation ou de la réintroduction d''espaces naturels et agricoles au fil des ans grâce au suivi des surfaces réservées à ces usages dans les PLU, mesuré en pourcentage de la surface totale de la collectivité (ha cumulé des zones N et A/ha total). Ces surfaces sont non imperméabilisées, capteuses de CO2, productrices de ressources alimentaires, énergétiques et de biodiversité.

      ', '%', false, false, 'Part des surfaces agricoles et naturelles (%)', null, null, null, '{urbanisme_et_amenagement}', - '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_18', '18', null, 'Achat d’électricité renouvelable', '

      L''indicateur mesure le rapport entre les achats d''électricité renouvelable et le montant total des achats d''électricité de la collectivité pour les bâtiments et équipements de la collectivité (y compris services publics eaux, assainissement, déchets et éclairage public s’ils sont de la compétence de la collectivité) (en kWh ou MWh). La cible est de 100%

      + '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_18', '18', null, 'Achat d’électricité renouvelable', '

      L''indicateur mesure le rapport entre les achats d''électricité renouvelable et le montant total des achats d''électricité de la collectivité pour les bâtiments et équipements de la collectivité (y compris services publics eaux, assainissement, déchets et éclairage public s’ils sont de la compétence de la collectivité) (en kWh ou MWh). La cible est de 100%

      ', '%', true, true, 'Part des achats d’électricité renouvelable de la collectivité', null, null, null, - '{strategie_orga_interne}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_14.a', '14.a', null, 'Consommation énergétique des bâtiments publics', '

      L''indicateur mesure la consommation énergétique totale (toute énergie, tout usage) du patrimoine bâti à la charge directe de la commune, en énergie finale. Les piscines et patinoires, si elles sont à la charge de la collectivité sont prises en compte, mais pas les services publics eau, assainissement, déchets, ni l''éclairage public.

      + '{strategie_orga_interne}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_14.a', '14.a', null, 'Consommation énergétique des bâtiments publics', '

      L''indicateur mesure la consommation énergétique totale (toute énergie, tout usage) du patrimoine bâti à la charge directe de la commune, en énergie finale. Les piscines et patinoires, si elles sont à la charge de la collectivité sont prises en compte, mais pas les services publics eau, assainissement, déchets, ni l''éclairage public.

      ', 'MWh', false, true, 'Consommation d''énergie finale des bâtiments publics (MWh)', null, null, null, - '{energie_et_climat}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_6.a', '6.a', null, 'Production de déchets', '

      Les déchets ménagers et assimilés comprennent les ordures ménagères résiduelles, les collectes sélectives et les déchets collectés en déchèteries (y compris déchets et gravats), soit la totalité des déchets des ménages et des non-ménagés pris en charge par le service public.

      + '{energie_et_climat}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_6.a', '6.a', null, 'Production de déchets', '

      Les déchets ménagers et assimilés comprennent les ordures ménagères résiduelles, les collectes sélectives et les déchets collectés en déchèteries (y compris déchets et gravats), soit la totalité des déchets des ménages et des non-ménagés pris en charge par le service public.

      Les déchets produits par les services municipaux (déchets de l’assainissement collectif, déchets de nettoyage des rues, de marché, …) ne relèvent pas de ce périmètre.

      Le calcul ne considère que les services de collecte opérationnels, c''est-à-dire ceux qui ont fonctionné au moins une journée au cours de l''année de référence du calcul et les déchèteries opérationnelles, c''est-à-dire des déchèteries qui ont été ouvertes au moins une journée au cours de l''année de référence du calcul.

      La valeur limite est issue des chiffres-clés déchets de l’ADEME, édition 2016, basé sur l’enquête Collecte 2013 et la valeur cible des 47 territoires pionniers en France.

      @@ -967,100 +999,100 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'cae_6.a', '6.a', null, 'Production
    ', 'kg/hab', true, true, 'Production de déchets ménagers et assimilés (avec déblais et gravats)', null, null, null, - '{eci_dechets}', '{cae,clef}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_11', '11', null, 'Surface annuelle artificialisée', '

    L’indicateur mesure les surfaces artificialisées chaque année a minima par l’habitat et les activités, et dans la mesure du possible également pour les autres motifs (infrastructures routières, etc.). Si l’indicateur n’est pas disponible annuellement, il s’agit de la moyenne annuelle sur une période plus large, établi à l’occasion de l’élaboration ou de la révision du PLU ou du SCOT (évaluation règlementaire de la consommation d''espaces naturels, agricoles et forestiers).

    + '{eci_dechets}', '{cae,clef}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_11', '11', null, 'Surface annuelle artificialisée', '

    L’indicateur mesure les surfaces artificialisées chaque année a minima par l’habitat et les activités, et dans la mesure du possible également pour les autres motifs (infrastructures routières, etc.). Si l’indicateur n’est pas disponible annuellement, il s’agit de la moyenne annuelle sur une période plus large, établi à l’occasion de l’élaboration ou de la révision du PLU ou du SCOT (évaluation règlementaire de la consommation d''espaces naturels, agricoles et forestiers).

    ', 'ha/an', false, true, 'Artificialisation des espaces naturels, agricoles, forestiers (ha)', null, null, null, - '{urbanisme_et_amenagement}', '{cae,clef}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_2.e', '2.e', null, 'Consommation énergétique - résidentiel', '', - 'GWh', false, false, 'Consommation énergétique du résidentiel', 'cae_2.a', null, null, '{}', '{cae,pcaet}', - false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_2.f', '2.f', null, 'Consommation énergétique - tertiaire', '', 'GWh', - false, false, 'Consommation énergétique du tertiaire', 'cae_2.a', null, null, '{}', '{cae,pcaet}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_63.d', '63.d', null, 'Séquestration dans les autres sols', '', - 'teq CO2', false, false, 'Séquestration dans les autres sols', 'cae_63.a', null, null, '{}', '{cae,pcaet}', - false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_32', '32', null, 'Rendement énergétique UIOM', '

    Le rendement de l''UIOM (unité d''incinération des ordures ménagères) est calculé selon la formule permettant la modulation du taux de la TGAP (arrêté du 7 décembre 2016 modifiant l''arrêté du 20 septembre 2002 relatif aux installations d''incinération et de coïncinération de déchets non dangereux et aux installations incinérant des déchets d''activités de soins à risques infectieux). Le niveau de performance énergétique choisi comme valeur cible est celui utilisé à l''article 266 nonies du code des douanes pour bénéficier d’une TGAP réduite.

    + '{urbanisme_et_amenagement}', '{cae,clef}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_2.e', '2.e', null, 'Consommation énergétique - résidentiel', '', + 'GWh', false, false, 'Consommation énergétique du résidentiel', 'cae_2.a', null, null, '{}', '{cae,pcaet}', + false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_2.f', '2.f', null, 'Consommation énergétique - tertiaire', '', 'GWh', + false, false, 'Consommation énergétique du tertiaire', 'cae_2.a', null, null, '{}', '{cae,pcaet}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_63.d', '63.d', null, 'Séquestration dans les autres sols', '', + 'teq CO2', false, false, 'Séquestration dans les autres sols', 'cae_63.a', null, null, '{}', '{cae,pcaet}', + false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_32', '32', null, 'Rendement énergétique UIOM', '

    Le rendement de l''UIOM (unité d''incinération des ordures ménagères) est calculé selon la formule permettant la modulation du taux de la TGAP (arrêté du 7 décembre 2016 modifiant l''arrêté du 20 septembre 2002 relatif aux installations d''incinération et de coïncinération de déchets non dangereux et aux installations incinérant des déchets d''activités de soins à risques infectieux). Le niveau de performance énergétique choisi comme valeur cible est celui utilisé à l''article 266 nonies du code des douanes pour bénéficier d’une TGAP réduite.

    • Valeur limite et cible : 65%
    ', '%', true, false, - 'Rendement énergétique de l''Unité d''incinération des ordures ménagères - valorisation énergétique électricité et chaleur', - null, null, null, '{energie_et_climat}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_1.a', '1.a', null, 'Émissions de gaz à effet de serre', '

    Émissions de gaz à effet de serre globales annuelles du territoire exprimées en tonnes équivalent CO2.

    + 'Rendement énergétique de l''Unité d''incinération des ordures ménagères - valorisation énergétique électricité et chaleur', + null, null, null, '{energie_et_climat}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_1.a', '1.a', null, 'Émissions de gaz à effet de serre', '

    Émissions de gaz à effet de serre globales annuelles du territoire exprimées en tonnes équivalent CO2.

    L''indicateur, issu d''un diagnostic d''émissions de gaz à effet de serre mesure la quantité totale d''émissions annuelle des différents secteurs d''activités et des habitants du territoire, selon les exigences réglementaires des PCAET (décret n°2016-849 du 28 juin 2016 et arrêté du 4 août 2016 relatifs au plan climat-air-énergie territorial).

    A savoir : les émissions directes produites par l''ensemble des secteurs résidentiel, tertiaire, transport routier, autres transports, agriculture, déchets, industrie hors branche énergie, branche énergie (hors production d''électricité, de chaleur et de froid pour les émissions de gaz à effet de serre, dont les émissions correspondantes sont comptabilisées au stade de la consommation).

    Il ne s''agit pas du bilan GES "Patrimoine et compétences".

    Pour rappel, objectifs nationaux : division par 4 (-75 %) des émissions de gaz à effet de serre d’ici 2050 par rapport à 1990 (loi POPE) et étape intermédiaire de -40% entre 1990 et 2030 (loi de transition énergétique).

    ', 'teq CO2', false, false, 'Quantité de gaz à effet de serre émis par les activités et les habitants', null, null, - null, '{energie_et_climat}', '{clef,cae,pcaet}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_60', '60', null, - 'Produits biologiques dans la restauration collective publique', '

    L’indicateur mesure la part des achats (en euros) labellisés « agriculture biologique » dans les achats totaux d’alimentation de la restauration collective publique (maîtrisée par la collectivité). Pour la France métropole, la valeur limite est basée sur la part nationale des achats biologiques dans la restauration collective à caractère social en 2015 (3,2% - Agence Bio) et la valeur cible sur l’objectif 2022 du projet de loi pour l’équilibre des relations commerciales dans le secteur agricole et alimentaire et une alimentation saine et durable (20%).

    + null, '{energie_et_climat}', '{clef,cae,pcaet}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_60', '60', null, + 'Produits biologiques dans la restauration collective publique', '

    L’indicateur mesure la part des achats (en euros) labellisés « agriculture biologique » dans les achats totaux d’alimentation de la restauration collective publique (maîtrisée par la collectivité). Pour la France métropole, la valeur limite est basée sur la part nationale des achats biologiques dans la restauration collective à caractère social en 2015 (3,2% - Agence Bio) et la valeur cible sur l’objectif 2022 du projet de loi pour l’équilibre des relations commerciales dans le secteur agricole et alimentaire et une alimentation saine et durable (20%).

    ', '%', true, false, 'Part de produits biologiques dans la restauration collective publique par an', null, null, - 'impact', '{activites_economiques}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_42', '42', null, 'Stationnement public voiture', '

    L''indicateur mesure le nombre de places de stationnement public pour les voitures par habitant (stationnements publics gratuit ou payant, sur voirie ou dans des ouvrages, exploité en régie par la collectivité –commune ou EPCI- ou délégué). Si le périmètre suivi est partiel, l’indiquer en commentaire.

    + 'impact', '{activites_economiques}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_42', '42', null, 'Stationnement public voiture', '

    L''indicateur mesure le nombre de places de stationnement public pour les voitures par habitant (stationnements publics gratuit ou payant, sur voirie ou dans des ouvrages, exploité en régie par la collectivité –commune ou EPCI- ou délégué). Si le périmètre suivi est partiel, l’indiquer en commentaire.

    ', 'nombre de places', false, false, 'Nombre de places de stationnement public pour les voitures par habitant', null, - null, null, '{mobilite_et_transport}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_62', '62', null, 'Part de surface forestière certifiée', '

    L''indicateur mesure le % de surfaces forestières certifiées FSC (Forest Stewardship Council) ou PEFC (Programme de reconnaissance des certifications forestières) par rapport à la surface forestière totale.

    + null, null, '{mobilite_et_transport}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_62', '62', null, 'Part de surface forestière certifiée', '

    L''indicateur mesure le % de surfaces forestières certifiées FSC (Forest Stewardship Council) ou PEFC (Programme de reconnaissance des certifications forestières) par rapport à la surface forestière totale.

    ', '%', true, true, 'Part de la surface forestière certifiée FSC ou PEFC', null, null, null, - '{urbanisme_et_amenagement}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_22', '22', null, - 'Energie renouvelable et de récupération des réseaux de chaleur', '

    Il s''agit de mesurer la part d''énergie renouvelable et de récupération (ENR&R) du réseau de chaleur de la collectivité. La méthodologie de calcul doit être conforme à celle élaborée par le SNCU, reprise réglementairement dans le cadre de l''instruction fiscale ou le classement du réseau de chaleur. En présence de plusieurs réseaux de chaleur, une moyenne doit être réalisée.

    + '{urbanisme_et_amenagement}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_22', '22', null, + 'Energie renouvelable et de récupération des réseaux de chaleur', '

    Il s''agit de mesurer la part d''énergie renouvelable et de récupération (ENR&R) du réseau de chaleur de la collectivité. La méthodologie de calcul doit être conforme à celle élaborée par le SNCU, reprise réglementairement dans le cadre de l''instruction fiscale ou le classement du réseau de chaleur. En présence de plusieurs réseaux de chaleur, une moyenne doit être réalisée.

    La valeur cible est fixée à 75%.

    ', '%', true, true, 'Taux d''énergie renouvelable et de récupération (ENR&R) des réseaux de chaleur sur le territoire', - null, null, null, '{energie_et_climat}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_12', '12', null, 'Diagnostic énergétique des bâtiments publics', '

    L''indicateur mesure la part de bâtiments publics (de préférence en surface, et par défaut en nombre) ayant fait l''objet d''un diagnostic énergétique (à minima de type DPE, et de préférence un audit énergétique plus poussé). Le périmètre des bâtiments pris en compte est le plus large possible : celui dont elle est propriétaire ou celui dont elle est locataire ; les diagnostics pouvant être portés et financés par le propriétaire ou l''utilisateur. Si le suivi est effectué conjointement au niveau communal et intercommunal, l''indicateur peut-être décomposé en deux volets : part de bâtiments communaux ayant fait l''objet d''un diagnostic énergétique et part de bâtiments intercommunaux ayant fait l''objet d''un diagnostic énergétique.

    + null, null, null, '{energie_et_climat}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_12', '12', null, 'Diagnostic énergétique des bâtiments publics', '

    L''indicateur mesure la part de bâtiments publics (de préférence en surface, et par défaut en nombre) ayant fait l''objet d''un diagnostic énergétique (à minima de type DPE, et de préférence un audit énergétique plus poussé). Le périmètre des bâtiments pris en compte est le plus large possible : celui dont elle est propriétaire ou celui dont elle est locataire ; les diagnostics pouvant être portés et financés par le propriétaire ou l''utilisateur. Si le suivi est effectué conjointement au niveau communal et intercommunal, l''indicateur peut-être décomposé en deux volets : part de bâtiments communaux ayant fait l''objet d''un diagnostic énergétique et part de bâtiments intercommunaux ayant fait l''objet d''un diagnostic énergétique.

    ', '%', false, true, 'Part de bâtiments publics ayant fait l''objet d''un diagnostic énergétique', null, null, null, - '{energie_et_climat}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_55', '55', null, 'Ménages demandeurs et bénéficiaires du FSL', '

    L’indicateur mesure annuellement le nombre de ménages demandeurs et bénéficiaires du fond de solidarité logement (FSL) pour l’aide au paiement des factures d’énergie sur le territoire. Il peut être obtenu auprès des Conseils Départementaux qui gèrent ce fond (indicateur suivi au niveau national par l’office national de la précarité énergétique).

    + '{energie_et_climat}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_55', '55', null, 'Ménages demandeurs et bénéficiaires du FSL', '

    L’indicateur mesure annuellement le nombre de ménages demandeurs et bénéficiaires du fond de solidarité logement (FSL) pour l’aide au paiement des factures d’énergie sur le territoire. Il peut être obtenu auprès des Conseils Départementaux qui gèrent ce fond (indicateur suivi au niveau national par l’office national de la précarité énergétique).

    ', 'Nombre de ménages', false, false, - 'Nombre de ménages demandeurs et bénéficiaires du FSL pour l’aide au paiement des factures d’énergie sur le territoire', - null, null, null, '{solidarite_lien_social}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_50', '50', null, 'Valorisation des CEE', '

    Les kWhcumac valorisés chaque année par la collectivité sont calculés selon les modalités règlementaires du dispositif des certificats d''économie d''énergie. Il s''agit de ceux dont la rente revient à la collectivité.

    + 'Nombre de ménages demandeurs et bénéficiaires du FSL pour l’aide au paiement des factures d’énergie sur le territoire', + null, null, null, '{solidarite_lien_social}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_50', '50', null, 'Valorisation des CEE', '

    Les kWhcumac valorisés chaque année par la collectivité sont calculés selon les modalités règlementaires du dispositif des certificats d''économie d''énergie. Il s''agit de ceux dont la rente revient à la collectivité.

    ', 'kWhcumac valorisé/an', false, false, 'Valorisation des CEE', null, null, null, '{strategie_orga_interne}', '{cae}', - false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_46', '46', null, 'Fréquentation des transports en commun', '

    Il s''agit du nombre moyen de voyages en transport en commun effectué chaque année par un habitant.

    + false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_46', '46', null, 'Fréquentation des transports en commun', '

    Il s''agit du nombre moyen de voyages en transport en commun effectué chaque année par un habitant.

    • Valeur limite : 32 (<100 000 hab) et 64 (>100 000 hab)

      @@ -1071,24 +1103,24 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'cae_46', '46', null, 'Fréquentati

    Source de l''indicateur : CEREMA - Transports collectifs urbains de province, 2017

    ', 'nombre de voyages/hab', true, true, 'Fréquentation des transports en commun par habitant', null, null, null, - '{mobilite_et_transport}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_40.a', '40.a', null, - 'Consommation annuelle d''énergie des véhicules par agent', '', 'kWh/an.employé', false, false, - 'Consommation annuelle d''énergie des véhicules de la collectivité (kWh/an.employé)', 'cae_40', null, null, - '{mobilite_et_transport}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_4.d', '4.d', null, 'Emissions de COV', '', 'tonnes', false, true, - 'Quantité totale d''émissions de Composés organiques volatils non méthaniques', 'emission_polluants_atmo', null, - null, '{nature_environnement_air}', '{clef,cae,pcaet}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_33', '33', null, 'Valorisation énergétique des biodéchets', '

    L''indicateur mesure l''électricité et la chaleur (en kWh) produite à partir de biodéchets pour l''ensemble du territoire (ménages et activités économiques, agricoles...).

    + '{mobilite_et_transport}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_40.a', '40.a', null, + 'Consommation annuelle d''énergie des véhicules par agent', '', 'kWh/an.employé', false, false, + 'Consommation annuelle d''énergie des véhicules de la collectivité (kWh/an.employé)', 'cae_40', null, null, + '{mobilite_et_transport}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_4.d', '4.d', null, 'Emissions de COV', '', 'tonnes', false, true, + 'Quantité totale d''émissions de Composés organiques volatils non méthaniques', 'emission_polluants_atmo', null, + null, '{nature_environnement_air}', '{clef,cae,pcaet}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_33', '33', null, 'Valorisation énergétique des biodéchets', '

    L''indicateur mesure l''électricité et la chaleur (en kWh) produite à partir de biodéchets pour l''ensemble du territoire (ménages et activités économiques, agricoles...).

    A défaut, il est possible de suivre via un indicateur personnalisé (à relier à cet indicateur) le tonnage des biodéchets collectés de manière séparative. Pour information, le ratio moyen de déchets alimentaires collectés par l’ensemble des collectivités en France en 2015 est de 63 kg/habitant desservi (étude suivi technico-économique biodéchets, Ademe, 2017) :

    • @@ -1099,11 +1131,11 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'cae_33', '33', null, 'Valorisation
    ', 'kWh', true, false, 'Energie produite par la valorisation des biodéchets', null, null, null, '{energie_et_climat}', - '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_65', '65', null, 'Consultations sur climat, air, énergie', '

    Nombre d''heures de consultations et de conseil sur l''énergie et la construction pour 100 hab / an

    + '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_65', '65', null, 'Consultations sur climat, air, énergie', '

    Nombre d''heures de consultations et de conseil sur l''énergie et la construction pour 100 hab / an

    • Valeur limite = 10 min /100 hab

      @@ -1113,34 +1145,34 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'cae_65', '65', null, 'Consultation
    ', 'Nombre d''heures', true, true, - 'Nombre d''heures de consultations et de conseils sur la thématique climat air énergie pour 100 hab / an', null, - null, null, '{strategie_orga_interne}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'modes_de_deplacement', null, null, 'Modes de déplacement', '

    La part modale est une part modale en nombre de déplacements.

    + 'Nombre d''heures de consultations et de conseils sur la thématique climat air énergie pour 100 hab / an', null, + null, null, '{strategie_orga_interne}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'modes_de_deplacement', null, null, 'Modes de déplacement', '

    La part modale est une part modale en nombre de déplacements.

    Les valeurs limites et cibles des différentes parts modales sont données à titre indicatif : il faut également juger de l''évolution de la part modale au fil du temps et des caractéristiques du territoire. À défaut de posséder les parts modales issues d''une enquête ménages, les collectivités peuvent utiliser les données INSEE donnant les parts modales des déplacements domicile-travail pour la population active (tableau NAV2A ou NAV2B).

    ', '%', false, true, - 'Part des personnes utilisant un mode de déplacement par rapport à l''ensemble des personnes qui se déplacent', - null, null, null, '{mobilite_et_transport}', '{cae}', true); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'plans_de_deplacement', null, null, 'Couverture des Plans de déplacements', '

    L''indicateur comptabilise le nombre d''habitants couverts par un Plan de Déplacements sur le territoire et le rapporte à la population du territoire. Ce chiffre doit être en augmentation chaque année. Des valeurs indicatives limites et cibles sont données, basées sur des données ADEME et les meilleurs scores des collectivités du programme Territoire Engagé.

    + 'Part des personnes utilisant un mode de déplacement par rapport à l''ensemble des personnes qui se déplacent', + null, null, null, '{mobilite_et_transport}', '{cae}', true); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'plans_de_deplacement', null, null, 'Couverture des Plans de déplacements', '

    L''indicateur comptabilise le nombre d''habitants couverts par un Plan de Déplacements sur le territoire et le rapporte à la population du territoire. Ce chiffre doit être en augmentation chaque année. Des valeurs indicatives limites et cibles sont données, basées sur des données ADEME et les meilleurs scores des collectivités du programme Territoire Engagé.

    ', '%', false, true, 'Couverture des Plans de déplacements', null, null, null, '{mobilite_et_transport}', '{cae}', - true); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'emission_polluants_atmo', null, null, - 'Émissions de polluants atmosphériques', '

    Ces indicateurs estiment les émissions annuelles des six polluants atmosphériques exigés dans le contenu réglementaire des PCAET (décret n°2016-849 du 28 juin 2016 et arrêté du 4 août 2016 relatifs au plan climat-air-énergie territorial) : oxydes d’azote (NOx), les particules PM 10 et PM 2,5 et les composés organiques volatils (COV), tels que définis au I de l’article R. 221-1 du même code, ainsi que le dioxyde de soufre (SO2) et l’ammoniac (NH3).

    + true); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'emission_polluants_atmo', null, null, + 'Émissions de polluants atmosphériques', '

    Ces indicateurs estiment les émissions annuelles des six polluants atmosphériques exigés dans le contenu réglementaire des PCAET (décret n°2016-849 du 28 juin 2016 et arrêté du 4 août 2016 relatifs au plan climat-air-énergie territorial) : oxydes d’azote (NOx), les particules PM 10 et PM 2,5 et les composés organiques volatils (COV), tels que définis au I de l’article R. 221-1 du même code, ainsi que le dioxyde de soufre (SO2) et l’ammoniac (NH3).

    Les données peuvent être fournies notamment par les associations agréées pour la surveillance de la qualité de l''air (AASQA).

    ', 'tonnes', false, true, 'Quantité totale d''émissions de polluants atmosphériques', null, null, null, - '{nature_environnement_air}', '{clef,cae,crte}', true); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_9', '9', null, 'Compacité des formes urbaines', '

    Les trois indicateurs permettent d''évaluer la compacité des formes urbaines. Il est conseillé de suivre celui qui a le plus de sens pour la collectivité, si elle ne dispose pas des informations pour renseigner les 3.

    + '{nature_environnement_air}', '{clef,cae,crte}', true); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_9', '9', null, 'Compacité des formes urbaines', '

    Les trois indicateurs permettent d''évaluer la compacité des formes urbaines. Il est conseillé de suivre celui qui a le plus de sens pour la collectivité, si elle ne dispose pas des informations pour renseigner les 3.

    • Rapport annuel entre nouvelle surface construite ou réhabilitée sur des sites en reconversion (sites déjà urbanisés : friches industrielles, dents creuses, habitat insalubre...) / nouvelle surface construite en extension (en limite d''urbanisation ou sur des espaces naturels ou agricoles). La comptabilisation se fait sur la base des permis de construire. Pour une agglomération, le ratio de 2 (soit 1/3 en extension et 2/3 en renouvellement) est une bonne performance ; pour une ville-centre les objectifs visés pourront être plus élevés.

      @@ -1153,11 +1185,11 @@ values ('2023-08-10 08:29:55.609245 +00:00', 'cae_9', '9', null, 'Compacité des
    ', '%', false, true, 'Compacité des formes urbaines', null, null, null, '{urbanisme_et_amenagement}', '{cae}', true); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'crte_4.2', '4.2', 'cae_59', - 'Surface agricole utile en agriculture biologique', '

    Définition: + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'crte_4.2', '4.2', 'cae_59', + 'Surface agricole utile en agriculture biologique', '

    Définition: Part des surfaces d’exploitations agricoles certifiée agriculture biologique (AB) ou en conversion dans le total des SAU du territoire

    Modalités de calcul: Somme des surfaces (en SAU) exploitées selon le label agriculture biologique (certifiée ou en conversion) rapportée au total des SAU du territoire

    @@ -1177,31 +1209,31 @@ Développement de l’agriculture biologique

  • 15 % de SAU affectée à l’agriculture biologique au 31/12/2022 ; 30 % en 2030
  • ', '%', false, false, 'Part de la surface agricole utile en agriculture biologique', null, null, null, - '{urbanisme_et_amenagement}', '{crte}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_39', '39', null, 'Plan de déplacements Entreprise ou Administration', '

    L''indicateur comptabilise le nombre d''employés couverts par un Plan de Déplacements Entreprise (PDE) et Administration (PDA) sur le territoire et le rapporte à la population active du territoire. Ce chiffre doit être en augmentation chaque année. Des valeurs indicatives limites et cibles sont données, basées sur des données ADEME (enquête nationale 2009 et Poitou-Charentes 2012) et les meilleurs scores des collectivités Territoire Engagé.

    + '{urbanisme_et_amenagement}', '{crte}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_39', '39', null, 'Plan de déplacements Entreprise ou Administration', '

    L''indicateur comptabilise le nombre d''employés couverts par un Plan de Déplacements Entreprise (PDE) et Administration (PDA) sur le territoire et le rapporte à la population active du territoire. Ce chiffre doit être en augmentation chaque année. Des valeurs indicatives limites et cibles sont données, basées sur des données ADEME (enquête nationale 2009 et Poitou-Charentes 2012) et les meilleurs scores des collectivités Territoire Engagé.

    ', '%', true, true, 'Part de la population active couverte par un Plan de déplacements Entreprise ou Administration', - 'plans_de_deplacement', null, null, '{mobilite_et_transport}', '{cae}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_7.b', '7.b', null, 'Recyclage des déchets du BTP', '

    Recyclage des déchets du BTP : a minima ceux produits par les chantiers de la collectivité, mais dans l''idéal, ceux produits par toute la filière BTP locale.

    + 'plans_de_deplacement', null, null, '{mobilite_et_transport}', '{cae}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_7.b', '7.b', null, 'Recyclage des déchets du BTP', '

    Recyclage des déchets du BTP : a minima ceux produits par les chantiers de la collectivité, mais dans l''idéal, ceux produits par toute la filière BTP locale.

    L''objectif est de dépasser 70% de valorisation des déchets du BTP (objectif que l’Europe a fixé dans la directive-cadre déchets).

    ', '%', false, false, 'Recyclage des déchets du BTP par an (%)', 'cae_7', null, 'impact', '{eci_dechets}', '{cae}', - false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'cae_2.g', '2.g', null, 'Consommation énergétique - transport routier', '', - 'GWh', false, false, 'Consommation énergétique du transport routier', 'cae_2.a', null, null, '{}', - '{cae,pcaet}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'crte_10.1', '10.1', 'cae_6.a', - 'Collecte annuelle de déchets ménagers et assimilés avec gravats', '

    Définition: + false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'cae_2.g', '2.g', null, 'Consommation énergétique - transport routier', '', + 'GWh', false, false, 'Consommation énergétique du transport routier', 'cae_2.a', null, null, '{}', + '{cae,pcaet}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'crte_10.1', '10.1', 'cae_6.a', + 'Collecte annuelle de déchets ménagers et assimilés avec gravats', '

    Définition: Tonnage total de déchets ménagers et assimilés (DMA), y compris gravats, collectés annuellement sur le territoire, rapportée au nombre d’habitants.

    Modalités de calcul: Le résultat est obtenu par cumul des tonnages collectés par les déchèteries opérationnelles, c''est-à-dire des déchèteries qui ont été ouvertes au moins une journée au cours de l''année de référence du calcul

    @@ -1244,12 +1276,12 @@ Réduire la production de déchets

    Données de référence: Au niveau national, la production de DMA est de 581kg/hab en 2017. Hors gravats, la production de DMA est de 526kg/hab. (Source : Ademe, janvier 2021 : La collecte des déchets par le service public en France - Résultats 2017)

    ', 'kg/hab', false, false, 'Quantité de déchets ménagers et assimilés (avec déblais et gravats) produits par an', null, - null, null, '{eci_dechets}', '{crte}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'crte_10.2', '10.2', null, - 'Collecte annuelle de déchets ménagers et assimilés hors gravats', '

    Définition: + null, null, '{eci_dechets}', '{crte}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'crte_10.2', '10.2', null, + 'Collecte annuelle de déchets ménagers et assimilés hors gravats', '

    Définition: Tonnage total de déchets ménagers et assimilés (DMA), hors gravats, collectés annuellement sur le territoire, rapportée au nombre d’habitants.

    Modalités de calcul: Le résultat est obtenu par cumul des tonnages collectés par les déchèteries opérationnelles, c''est-à-dire des déchèteries qui ont été ouvertes au moins une journée au cours de l''année de référence du calcul et celui des collectes opérationnelles, c''est-à-dire les services de collecte qui ont fonctionné au moins une journée au cours de l''année de référence du calcul.

    @@ -1291,20 +1323,20 @@ Réduire la production de déchets

    Données de référence: Au niveau national, la production de DMA est de 581kg/hab en 2017. Hors gravats, la production de DMA est de 526kg/hab. (Source : Ademe, janvier 2021 : La collecte des déchets par le service public en France - Résultats 2017)

    ', 'kg/hab', false, false, 'Quantité de déchets ménagers et assimilés (hors gravats) produits par an', 'crte_10.1', - null, null, '{eci_dechets}', '{crte}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'eci_14', '14', 'cae_51', - 'Achats publics avec considération environnementale', '

    % de contrat en nombre ou % de contrat en montant (au choix). Les contrat sur une année civile sont pris en compte.

    + null, null, '{eci_dechets}', '{crte}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'eci_14', '14', 'cae_51', + 'Achats publics avec considération environnementale', '

    % de contrat en nombre ou % de contrat en montant (au choix). Les contrat sur une année civile sont pris en compte.

    Voir la notion de la concidération environnementale au PNAAPD 2021-2025 - objectif 100% des marchés comportent une considération environnementale.

    La donnée peut être fournie par le service Achats ou Comptabilité

    ', '%', false, false, 'Part de contrats d''achats publics comportant au moins une considération environnementale', null, - null, null, '{strategie_orga_interne}', '{}', false); -insert into public.indicateur_definition (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, - participation_score, selection, titre_long, parent, source, type, thematiques, - programmes, sans_valeur) -values ('2023-08-10 08:29:55.609245 +00:00', 'crte_2.1', '2.1', 'cae_2.a', 'Consommation énergétique finale annuelle', '

    Définition: + null, null, '{strategie_orga_interne}', '{}', false); + insert into indicateur_def (modified_at, id, identifiant, valeur_indicateur, nom, description, unite, + participation_score, selection, titre_long, parent, source, type, thematiques, + programmes, sans_valeur) + values ('2023-08-10 08:29:55.609245 +00:00', 'crte_2.1', '2.1', 'cae_2.a', 'Consommation énergétique finale annuelle', '

    Définition: Consommation énergétique finale du territoire, tous types (électricité, gaz naturel, biogaz, pétrole, charbon-bois, charbon-combustion minérale fossile) et tous secteurs (industrie, agriculture, résidentiel-tertiaire, énergie, déchets, transport) confondus, totale

    Modalités de calcul: Somme des consommations réelles d’énergie des utilisateurs finaux sur le territoire, y compris les consommations d’électricité et de chaleur qui sont des énergies secondaires.

    @@ -1331,4 +1363,64 @@ Réduire la consommation finale d’énergie

    Données de référence: Préciser si possible les moyennes nationale et/ou locale, le cas échéant contextualisées (territoire urbain/rural/autre) pour permettre au territoire de mieux se situer.

    ', 'GWh', false, false, 'Quantité d''énergie consommée par les activités et les habitants par an', null, null, null, - '{energie_et_climat}', '{crte}', false); + '{energie_et_climat}', '{crte}', false); + + + insert into public.indicateur_definition + (identifiant_referentiel, titre, titre_long, unite, participation_score, + sans_valeur_utilisateur, modified_at, created_at, description) + select id as identifiant_referentiel, nom as titre, titre_long, unite, participation_score, + sans_valeur as sans_valeur_utilisateur, modified_at, modified_at as created_at, description + from indicateur_def; + + insert into public.indicateur_thematique (indicateur_id, thematique_id) + select pid.id, t.id + from (select id, unnest(thematiques) as thematique from indicateur_def) aid + join public.indicateur_definition pid on aid.id = pid.identifiant_referentiel + join public.thematique t on t.md_id = aid.thematique; + + insert into public.indicateur_categorie_tag (categorie_tag_id, indicateur_id) + select * + from ( + select (select c.id from categorie_tag c where c.nom = aid.programme::text limit 1) as categorie_tag_id, + pid.id as indicateur_id + from (select id, unnest(programmes) as programme from indicateur_def) aid + join public.indicateur_definition pid on aid.id = pid.identifiant_referentiel + ) r + where r.categorie_tag_id is not null; + + insert into public.indicateur_categorie_tag (categorie_tag_id, indicateur_id) + select * + from ( + select (select categorie_tag.id + from categorie_tag + where categorie_tag.nom = aid.type::text limit 1) as categorie_tag_id, + pid.id as indicateur_id + from indicateur_def aid + join public.indicateur_definition pid on aid.id = pid.identifiant_referentiel + where aid.type is not null ) r + where r.categorie_tag_id is not null; + + insert into public.indicateur_categorie_tag (categorie_tag_id, indicateur_id) + select * + from ( + select ( + select categorie_tag.id + from categorie_tag + where categorie_tag.nom = 'prioritaire' + limit 1 + ) as categorie_tag_id, + pid.id as indicateur_id + from indicateur_def aid + join public.indicateur_definition pid on aid.id = pid.identifiant_referentiel + where aid.selection = true + ) r + where r.categorie_tag_id is not null; + + insert into public.indicateur_groupe (parent, enfant) + select parent.id, enfant.id + from indicateur_def aid + join public.indicateur_definition enfant on aid.id = enfant.identifiant_referentiel + join public.indicateur_definition parent on aid.parent = parent.identifiant_referentiel + where aid.parent is not null; + end $$; diff --git a/data_layer/seed/fakes/15-insert_fake_indicateur_resultat_and_objectif.sql b/data_layer/seed/fakes/15-insert_fake_indicateur_resultat_and_objectif.sql deleted file mode 100644 index 0ac1498d09..0000000000 --- a/data_layer/seed/fakes/15-insert_fake_indicateur_resultat_and_objectif.sql +++ /dev/null @@ -1,9 +0,0 @@ -insert into indicateur_resultat(collectivite_id, indicateur_id, valeur, annee) -values (1, 'cae_8' , 20., 2020); -insert into indicateur_resultat(collectivite_id, indicateur_id, valeur, annee) -values (1, 'cae_8' , 12., 2021); - -insert into indicateur_objectif(collectivite_id, indicateur_id, valeur, annee) -values (1, 'cae_8' , 21., 2020); -insert into indicateur_objectif(collectivite_id, indicateur_id, valeur, annee) -values (1, 'cae_8' , 13., 2021); diff --git a/data_layer/seed/fakes/15-insert_fake_indicateurs.sql b/data_layer/seed/fakes/15-insert_fake_indicateurs.sql new file mode 100644 index 0000000000..8dc845d3c9 --- /dev/null +++ b/data_layer/seed/fakes/15-insert_fake_indicateurs.sql @@ -0,0 +1,18 @@ +insert into public.indicateur_definition (collectivite_id, titre, unite, modified_by, description) +values (1, 'Mon indicateur perso', 'm2/hab', '17440546-f389-4d4f-bfdb-b0c94a1bd0f9', 'Description'); + +insert into public.indicateur_collectivite (indicateur_id, collectivite_id, commentaire) +values ((select id from indicateur_definition where identifiant_referentiel = 'cae_8' limit 1), + 1, 'un commentaire sur cae_8'), + ((select id from indicateur_definition where titre = 'Mon indicateur perso' limit 1), + 1, 'Mon commentaire'); + +insert into public.indicateur_valeur (indicateur_id, collectivite_id, date_valeur, metadonnee_id, resultat, + resultat_commentaire, objectif, objectif_commentaire) +values + ((select id from indicateur_definition where identifiant_referentiel = 'cae_8' limit 1), + 1 , '01/01/2020', null, 20, null, 21, null), + ((select id from indicateur_definition where identifiant_referentiel = 'cae_8' limit 1), + 1 , '01/01/2021', null, 12, null, 13, null), + ((select id from indicateur_definition where titre = 'Mon indicateur perso' limit 1), + 1 , '01/01/2021', null, 22.33, null, 23.33, null); \ No newline at end of file diff --git a/data_layer/seed/fakes/17-insert_fake_indicateur_commentaire.sql b/data_layer/seed/fakes/17-insert_fake_indicateur_commentaire.sql deleted file mode 100644 index be3379f958..0000000000 --- a/data_layer/seed/fakes/17-insert_fake_indicateur_commentaire.sql +++ /dev/null @@ -1,2 +0,0 @@ -insert into indicateur_resultat_commentaire(collectivite_id, indicateur_id, commentaire, modified_by) -values (1, 'cae_8' , 'un commentaire sur cae_8', '17440546-f389-4d4f-bfdb-b0c94a1bd0f9'); diff --git a/data_layer/seed/fakes/18-insert_fake_indicateur_personnalise_and_values.sql b/data_layer/seed/fakes/18-insert_fake_indicateur_personnalise_and_values.sql deleted file mode 100644 index 6f3d702a78..0000000000 --- a/data_layer/seed/fakes/18-insert_fake_indicateur_personnalise_and_values.sql +++ /dev/null @@ -1,8 +0,0 @@ -insert into indicateur_personnalise_definition(id, collectivite_id, titre, description, unite, commentaire, modified_by) -values (0, 1, 'Mon indicateur perso' , 'Description', 'm2/hab', 'Mon commentaire', '17440546-f389-4d4f-bfdb-b0c94a1bd0f9'); - -insert into indicateur_personnalise_resultat(collectivite_id, indicateur_id, valeur, annee) -values (1, 0 , 22.33, 2021); - -insert into indicateur_personnalise_objectif(collectivite_id, indicateur_id, valeur, annee) -values (1, 0 , 23.33, 2021); \ No newline at end of file diff --git a/data_layer/seed/test/11-plan_action.sql b/data_layer/seed/test/11-plan_action.sql index 7daa7b5585..62edd6d8ef 100644 --- a/data_layer/seed/test/11-plan_action.sql +++ b/data_layer/seed/test/11-plan_action.sql @@ -206,5 +206,5 @@ insert into public.fiche_action_financeur_tag select * from test.fiche_action_financeur_tag; $$ language sql security definer; -comment on function test_reset_audit is +comment on function test_reset_plan_action is 'Reinitialise les audits.'; \ No newline at end of file diff --git a/data_layer/seed/test/14-indicateurs.sql b/data_layer/seed/test/14-indicateurs.sql index ae263db44b..c2e7ed87af 100644 --- a/data_layer/seed/test/14-indicateurs.sql +++ b/data_layer/seed/test/14-indicateurs.sql @@ -1,13 +1,10 @@ -select test.create_copy('public', 'indicateur_perso_objectif_commentaire'); -select test.create_copy('public', 'indicateur_perso_resultat_commentaire'); -select test.create_copy('public', 'indicateur_personnalise_definition'); -select test.create_copy('public', 'indicateur_personnalise_objectif'); -select test.create_copy('public', 'indicateur_personnalise_resultat'); -select test.create_copy('public', 'indicateur_resultat'); -select test.create_copy('public', 'indicateur_resultat_commentaire'); -select test.create_copy('public', 'indicateur_objectif'); -select test.create_copy('public', 'indicateur_objectif_commentaire'); -select test.create_copy('public', 'indicateur_resultat_import'); +select test.create_copy('public', 'indicateur_valeur'); +select test.create_copy('public', 'indicateur_definition'); +select test.create_copy('public', 'categorie_tag'); +select test.create_copy('public', 'indicateur_categorie_tag'); +select test.create_copy('public', 'indicateur_groupe'); +select test.create_copy('public', 'indicateur_source'); +select test.create_copy('public', 'indicateur_source_metadonnee'); create or replace function test_reset_indicateurs() @@ -15,17 +12,14 @@ create or replace function as $$ begin - perform test.reset_from_copy('public', 'indicateur_perso_objectif_commentaire'); - perform test.reset_from_copy('public', 'indicateur_perso_resultat_commentaire'); - perform test.reset_from_copy('public', 'indicateur_personnalise_definition'); - perform test.reset_from_copy('public', 'indicateur_personnalise_objectif'); - perform test.reset_from_copy('public', 'indicateur_personnalise_resultat'); - perform test.reset_from_copy('public', 'indicateur_resultat'); - perform test.reset_from_copy('public', 'indicateur_resultat_commentaire'); - perform test.reset_from_copy('public', 'indicateur_objectif'); - perform test.reset_from_copy('public', 'indicateur_objectif_commentaire'); - perform test.reset_from_copy('public', 'indicateur_resultat_import'); - truncate indicateur_confidentiel cascade; + perform test.reset_from_copy('public', 'indicateur_source'); + perform test.reset_from_copy('public', 'indicateur_source_metadonnee'); + perform test.reset_from_copy('public', 'indicateur_definition'); + perform test.reset_from_copy('public', 'indicateur_valeur'); + perform test.reset_from_copy('public', 'categorie_tag'); + perform test.reset_from_copy('public', 'indicateur_categorie_tag'); + perform test.reset_from_copy('public', 'indicateur_groupe'); + truncate indicateur_collectivite cascade; end; $$ language plpgsql; comment on function test_reset_indicateurs is diff --git a/data_layer/seed/test/90-reset.sql b/data_layer/seed/test/90-reset.sql index fb871c48ee..47308320dc 100644 --- a/data_layer/seed/test/90-reset.sql +++ b/data_layer/seed/test/90-reset.sql @@ -5,6 +5,8 @@ create or replace function returns void as $$ + truncate groupement_collectivite cascade; + truncate groupement cascade; -- 02-droits.sql select test_reset_droits(); -- 04-membre.sql From b1d2713abd20ab32b561b7f3fa72c9c20de79bb0 Mon Sep 17 00:00:00 2001 From: Amandine Jacquelin Date: Fri, 31 May 2024 14:27:34 +0200 Subject: [PATCH 03/46] Ajout fonctions indicateur package api --- .../shared/actions/groupement.fetch.test.ts | 28 + .../shared/actions/groupement.fetch.ts | 42 ++ .../shared/domain/groupement.schema.ts | 14 + .../src/fiche_actions/domain/axe.schema.ts | 21 + .../src/fiche_actions/domain/resume.schema.ts | 26 + .../fiche_resumes.list/domain/enum.schema.ts | 17 + .../domain/fetch_options.schema.ts | 30 +- .../actions/categorie.fetch.test.ts | 20 + .../indicateurs/actions/categorie.fetch.ts | 28 + .../actions/fetchFilteredIndicateurs.test.ts | 319 ++++++++ .../actions/fetchFilteredIndicateurs.ts | 277 +++++++ .../actions/indicateur.delete.test.ts | 41 ++ .../indicateurs/actions/indicateur.delete.ts | 31 + .../actions/indicateur.fetch.test.ts | 263 +++++++ .../indicateurs/actions/indicateur.fetch.ts | 693 ++++++++++++++++++ .../actions/indicateur.save.test.ts | 408 +++++++++++ .../indicateurs/actions/indicateur.save.ts | 478 ++++++++++++ .../indicateurs/actions/source.fetch.test.ts | 21 + .../src/indicateurs/actions/source.fetch.ts | 15 + .../indicateurs/domain/categorie.schema.ts | 13 + .../indicateurs/domain/definition.schema.ts | 160 ++++ .../domain/fetch_options.schema.ts | 9 +- .../src/indicateurs/domain/source.schema.ts | 34 + .../src/indicateurs/domain/valeur.schema.ts | 56 ++ .../fetchFilteredIndicateurs.test.ts | 295 -------- .../indicateurs/fetchFilteredIndicateurs.ts | 284 ------- packages/api/src/indicateurs/index.ts | 8 +- .../src/referentiel/domain/action.schema.ts | 16 + .../api/src/referentiel/domain/enum.schema.ts | 6 + .../src/shared/actions/personne.fetch.test.ts | 20 + .../api/src/shared/actions/personne.fetch.ts | 19 + .../api/src/shared/actions/tag.fetch.test.ts | 20 + packages/api/src/shared/actions/tag.fetch.ts | 23 + .../api/src/shared/actions/tag.save.test.ts | 29 + packages/api/src/shared/actions/tag.save.ts | 22 + .../shared/actions/thematique.fetch.test.ts | 26 + .../src/shared/actions/thematique.fetch.ts | 43 ++ .../api/src/shared/domain/personne.schema.ts | 17 + packages/api/src/shared/domain/tag.schema.ts | 23 + .../src/shared/domain/thematique.schema.ts | 44 ++ 40 files changed, 3333 insertions(+), 606 deletions(-) create mode 100644 packages/api/src/collectivites/shared/actions/groupement.fetch.test.ts create mode 100644 packages/api/src/collectivites/shared/actions/groupement.fetch.ts create mode 100644 packages/api/src/collectivites/shared/domain/groupement.schema.ts create mode 100644 packages/api/src/fiche_actions/domain/axe.schema.ts create mode 100644 packages/api/src/fiche_actions/domain/resume.schema.ts create mode 100644 packages/api/src/fiche_actions/fiche_resumes.list/domain/enum.schema.ts create mode 100644 packages/api/src/indicateurs/actions/categorie.fetch.test.ts create mode 100644 packages/api/src/indicateurs/actions/categorie.fetch.ts create mode 100644 packages/api/src/indicateurs/actions/fetchFilteredIndicateurs.test.ts create mode 100644 packages/api/src/indicateurs/actions/fetchFilteredIndicateurs.ts create mode 100644 packages/api/src/indicateurs/actions/indicateur.delete.test.ts create mode 100644 packages/api/src/indicateurs/actions/indicateur.delete.ts create mode 100644 packages/api/src/indicateurs/actions/indicateur.fetch.test.ts create mode 100644 packages/api/src/indicateurs/actions/indicateur.fetch.ts create mode 100644 packages/api/src/indicateurs/actions/indicateur.save.test.ts create mode 100644 packages/api/src/indicateurs/actions/indicateur.save.ts create mode 100644 packages/api/src/indicateurs/actions/source.fetch.test.ts create mode 100644 packages/api/src/indicateurs/actions/source.fetch.ts create mode 100644 packages/api/src/indicateurs/domain/categorie.schema.ts create mode 100644 packages/api/src/indicateurs/domain/definition.schema.ts rename packages/api/src/indicateurs/{indicateurs.list => }/domain/fetch_options.schema.ts (70%) create mode 100644 packages/api/src/indicateurs/domain/source.schema.ts create mode 100644 packages/api/src/indicateurs/domain/valeur.schema.ts delete mode 100644 packages/api/src/indicateurs/fetchFilteredIndicateurs.test.ts delete mode 100644 packages/api/src/indicateurs/fetchFilteredIndicateurs.ts create mode 100644 packages/api/src/referentiel/domain/action.schema.ts create mode 100644 packages/api/src/referentiel/domain/enum.schema.ts create mode 100644 packages/api/src/shared/actions/personne.fetch.test.ts create mode 100644 packages/api/src/shared/actions/personne.fetch.ts create mode 100644 packages/api/src/shared/actions/tag.fetch.test.ts create mode 100644 packages/api/src/shared/actions/tag.fetch.ts create mode 100644 packages/api/src/shared/actions/tag.save.test.ts create mode 100644 packages/api/src/shared/actions/tag.save.ts create mode 100644 packages/api/src/shared/actions/thematique.fetch.test.ts create mode 100644 packages/api/src/shared/actions/thematique.fetch.ts create mode 100644 packages/api/src/shared/domain/personne.schema.ts create mode 100644 packages/api/src/shared/domain/tag.schema.ts create mode 100644 packages/api/src/shared/domain/thematique.schema.ts diff --git a/packages/api/src/collectivites/shared/actions/groupement.fetch.test.ts b/packages/api/src/collectivites/shared/actions/groupement.fetch.test.ts new file mode 100644 index 0000000000..afebdf5ffa --- /dev/null +++ b/packages/api/src/collectivites/shared/actions/groupement.fetch.test.ts @@ -0,0 +1,28 @@ +import {beforeAll, expect, test} from "vitest"; +import {signIn, signOut} from "../../../tests/auth"; +import {testReset} from "../../../tests/testReset"; +import {dbAdmin, supabase} from "../../../tests/supabase"; +import {selectGroupementParCollectivite, selectGroupements} from "./groupement.fetch"; +import {Groupement} from "../domain/groupement.schema"; + +beforeAll(async () => { + await signIn('yolododo'); + await testReset(); + const gp = + await dbAdmin.from('groupement').insert({nom: 'test'}).select('id'); + await dbAdmin.from('groupement_collectivite') + .insert({collectivite_id : 1, groupement_id : gp.data![0].id}); + return async () => { + await signOut(); + }; +}); + +test('Test selectGroupementParCollectivite', async () => { + const def = await selectGroupementParCollectivite(supabase, 1); + expect(def!).toHaveLength(1); +}); + +test('Test selectGroupements', async () => { + const def : Groupement[] = await selectGroupements(supabase); + expect(def!).toHaveLength(1); +}); \ No newline at end of file diff --git a/packages/api/src/collectivites/shared/actions/groupement.fetch.ts b/packages/api/src/collectivites/shared/actions/groupement.fetch.ts new file mode 100644 index 0000000000..646403192b --- /dev/null +++ b/packages/api/src/collectivites/shared/actions/groupement.fetch.ts @@ -0,0 +1,42 @@ +import {Groupement} from "../domain/groupement.schema"; +import {DBClient} from "../../../typeUtils"; + +/** + * Récupère les groupements auquel appartient une collectivité + * @param dbClient client supabase + * @param collectiviteId identifiant de la collectivité + * @return liste des groupements + */ +export async function selectGroupementParCollectivite( + dbClient : DBClient, + collectiviteId : number +): Promise{ + const {data, error} = await dbClient + .from("groupement_collectivite") + .select('...groupement(*)') + .eq('collectivite_id', collectiviteId) + .returns(); + + return data ? data as Groupement[] : [] ; +} + +/** + * Récupère les groupements + * @param dbClient client supabase + * @return liste des groupements + */ +export async function selectGroupements( + dbClient : DBClient +): Promise{ + const {data, error} = await dbClient + .from("groupement") + .select('id, nom, collectivites:groupement_collectivite(collectivite_id)') + .returns(); + return data ? data.map(d => { + return { + id: d.id, + nom: d.nom, + collectivites: d.collectivites.map((col : any) => col.collectivite_id) + }; + }) as Groupement[] : [] ; +} \ No newline at end of file diff --git a/packages/api/src/collectivites/shared/domain/groupement.schema.ts b/packages/api/src/collectivites/shared/domain/groupement.schema.ts new file mode 100644 index 0000000000..1af335fe26 --- /dev/null +++ b/packages/api/src/collectivites/shared/domain/groupement.schema.ts @@ -0,0 +1,14 @@ +import {z} from 'zod'; + +/** + * Schéma zod des métadonnées d'une source pour une valeur d'indicateur + */ +export const groupementSchema = z.object({ + id : z.number(), + nom : z.string(), + collectivites : z.number().array().optional() +}); +/** + * Type TS des métadonnées d'une source pour une valeur d'indicateur + */ +export type Groupement = z.input; \ No newline at end of file diff --git a/packages/api/src/fiche_actions/domain/axe.schema.ts b/packages/api/src/fiche_actions/domain/axe.schema.ts new file mode 100644 index 0000000000..3048ae536b --- /dev/null +++ b/packages/api/src/fiche_actions/domain/axe.schema.ts @@ -0,0 +1,21 @@ +import {z} from "zod"; + +/** + * Schéma zod d'un axe d'un plan d'action avec les liens vers les autres objets sous forme d'id + */ +export const axeSchema = z.object({ + id : z.string(), + collectiviteId : z.number(), + nom : z.string().nullable(), + parent : z.number().nullable(), + plan : z.number().nullable(), + type : z.number().nullable(), + createdAt : z.string().date().nullable(), + modifiedAt: z.string().date().nullable(), + modifiedBy : z.string().nullable() +}); + +/** + * Type TS d'un axe d'un plan d'action avec les liens vers les autres objets sous forme d'id + */ +export type Axe = z.input; \ No newline at end of file diff --git a/packages/api/src/fiche_actions/domain/resume.schema.ts b/packages/api/src/fiche_actions/domain/resume.schema.ts new file mode 100644 index 0000000000..8fe2099b12 --- /dev/null +++ b/packages/api/src/fiche_actions/domain/resume.schema.ts @@ -0,0 +1,26 @@ +import {z} from 'zod'; +import {niveauPrioritesSchema, statutsSchema} from "../fiche_resumes.list/domain/enum.schema"; +import {personneSchema} from "../../shared/domain/personne.schema"; +import {axeSchema} from "./axe.schema"; + +/** + * Schéma zod d'un résumé d'une fiche action + */ +export const resumeSchema = z.object({ + ameliorationContinue : z.boolean(), + collectiviteId : z.number(), + dateFinProvisoire : z.string().date(), + id : z.number(), + modifiedAt : z.string().date(), + niveauPriorite : niveauPrioritesSchema, + pilotes : personneSchema.array(), + plans : axeSchema.array(), + restreint : z.boolean(), + statut : statutsSchema, + titre : z.string() +}); + +/** + * Type TS d'un résumé d'une fiche action + */ +export type FicheResume = z.input; diff --git a/packages/api/src/fiche_actions/fiche_resumes.list/domain/enum.schema.ts b/packages/api/src/fiche_actions/fiche_resumes.list/domain/enum.schema.ts new file mode 100644 index 0000000000..30f60d2fc6 --- /dev/null +++ b/packages/api/src/fiche_actions/fiche_resumes.list/domain/enum.schema.ts @@ -0,0 +1,17 @@ +import {z} from 'zod'; + +/** + * Schéma zod de l'énum des statuts d'une fiche action + */ +export const statutsSchema = z.enum([ + 'À venir', + 'En cours', + 'Réalisé', + 'En pause', + 'Abandonné', +]); + +/** + * Schéma zod de l'énum des niveaux de priorités d'une fiche action + */ +export const niveauPrioritesSchema = z.enum(['Élevé', 'Moyen', 'Bas']); diff --git a/packages/api/src/fiche_actions/fiche_resumes.list/domain/fetch_options.schema.ts b/packages/api/src/fiche_actions/fiche_resumes.list/domain/fetch_options.schema.ts index 8e951a5f90..42eb281057 100644 --- a/packages/api/src/fiche_actions/fiche_resumes.list/domain/fetch_options.schema.ts +++ b/packages/api/src/fiche_actions/fiche_resumes.list/domain/fetch_options.schema.ts @@ -1,26 +1,7 @@ import {z} from 'zod'; import {getQueryOptionsSchema} from '../../../shared/domain/query_options.schema'; - +import {niveauPrioritesSchema, statutsSchema} from './enum.schema'; import {filtreRessourceLieesSchema} from '../../../collectivites/shared/domain/filtre_ressource_liees.schema'; -import {niveauPrioriteSchema, statutSchema} from './fiche_resumes.schema'; - -export const modifiedSinceSchema = z.enum([ - 'last-90-days', - 'last-60-days', - 'last-30-days', - 'last-15-days', -]); - -export type ModifiedSince = z.infer; - -export const filtreSpecifiqueSchema = z.object({ - statuts: statutSchema.array().optional(), - priorites: niveauPrioriteSchema.array().optional(), - modifiedSince: modifiedSinceSchema.optional(), - texteNomOuDescription: z.string().optional(), -}); - -export type FiltreSpecifique = z.infer; /** * Schema de filtre pour le fetch des fiches actions. @@ -33,7 +14,14 @@ export const filtreSchema = filtreRessourceLieesSchema structurePiloteIds: true, servicePiloteIds: true, }) - .merge(filtreSpecifiqueSchema); + .extend({ + statuts: statutsSchema.array().optional(), + priorites: niveauPrioritesSchema.array().optional(), + + modifiedSince: z + .enum(['last-90-days', 'last-60-days', 'last-30-days', 'last-15-days']) + .optional(), + }); export type Filtre = z.infer; diff --git a/packages/api/src/indicateurs/actions/categorie.fetch.test.ts b/packages/api/src/indicateurs/actions/categorie.fetch.test.ts new file mode 100644 index 0000000000..5b399c0243 --- /dev/null +++ b/packages/api/src/indicateurs/actions/categorie.fetch.test.ts @@ -0,0 +1,20 @@ +import {signIn, signOut} from "../../tests/auth"; +import {dbAdmin, supabase} from "../../tests/supabase"; +import {beforeAll, expect, test} from 'vitest'; +import {testReset} from "../../tests/testReset"; +import {selectCategories} from "./categorie.fetch"; + + +beforeAll(async () => { + await signIn('yolododo'); + await testReset(); + + return async () => { + await signOut(); + }; +}); + +test('Test selectCategories', async () => { + const def = await selectCategories(supabase, 1); + expect(def!).toHaveLength(8); +}); \ No newline at end of file diff --git a/packages/api/src/indicateurs/actions/categorie.fetch.ts b/packages/api/src/indicateurs/actions/categorie.fetch.ts new file mode 100644 index 0000000000..e5b8b8da06 --- /dev/null +++ b/packages/api/src/indicateurs/actions/categorie.fetch.ts @@ -0,0 +1,28 @@ +import {DBClient} from "../../typeUtils"; +import {Categorie} from "../domain/categorie.schema"; +import {Groupement} from "../../collectivites/shared/domain/groupement.schema"; +import {selectGroupementParCollectivite} from "../../collectivites/shared/actions/groupement.fetch"; + +/** + * Récupère les catégories indicateurs prédéfinis pour une collectivité + * @param dbClient client supabase + * @param collectiviteId identifiant de la collectivité + * @return liste de catégories + */ +export async function selectCategories( + dbClient : DBClient, + collectiviteId : number +): Promise{ + const {data, error} = await dbClient + .from("categorie_tag") + .select('id, nom, groupement_id') + .is('collectivite_id', null); + + const groupement : Groupement[] = await selectGroupementParCollectivite(dbClient, collectiviteId); + const groupementIds = groupement.map(gp => gp.id); + const toReturn = data?.filter((item : any)=> item.groupement_id === null || + groupementIds.includes(item.groupement_id)) + .map((item : any) => ({id : item.id, nom : item.nom})) || []; + + return toReturn as Categorie[]; +} \ No newline at end of file diff --git a/packages/api/src/indicateurs/actions/fetchFilteredIndicateurs.test.ts b/packages/api/src/indicateurs/actions/fetchFilteredIndicateurs.test.ts new file mode 100644 index 0000000000..7464166085 --- /dev/null +++ b/packages/api/src/indicateurs/actions/fetchFilteredIndicateurs.test.ts @@ -0,0 +1,319 @@ +import {testReset} from '../../tests/testReset'; +import {dbAdmin, supabase} from '../../tests/supabase'; +import { + fetchFilteredIndicateurs, + Filters, + Subset, +} from './fetchFilteredIndicateurs'; +import {beforeAll, expect, test} from "vitest"; +import {signIn, signOut} from "../../tests/auth"; +import {Database} from '../../database.types'; + +type TableName = keyof Database['public']['Tables']; + +const FIXTURE = { + indicateur_action : [ + { + indicateur_id: 17, // eci_29 + action_id : 'eci_1.2' + } + ], + indicateur_pilote: [ + { + collectivite_id: 1, + indicateur_id: 17, //'eci_29', + user_id: '4ecc7d3a-7484-4a1c-8ac8-930cdacd2561', + }, + { + indicateur_id: 17, //'eci_29', + collectivite_id: 1, + tag_id: 1, + }, + { + indicateur_id: 3, //'eci_24', + collectivite_id: 1, + tag_id: 1, + }, + ], + indicateur_service_tag: [ + { + indicateur_id: 17, //'eci_29', + collectivite_id: 1, + service_tag_id: 1, + }, + ], + fiche_action_indicateur: [ + { + indicateur_id: 17, //'eci_29', + fiche_id: 1, + }, + ], + indicateur_thematique: [ + { + indicateur_id: 123, + thematique_id: 8, + }, + { + indicateur_id: 17, // eci_29 + thematique_id: 5, + }, + { + indicateur_id: 10, // eci_36 + thematique_id: 4, + }, + ], + indicateur_collectivite: [ + { + indicateur_id: 98, //'cae_1.a', + collectivite_id: 1, + confidentiel : true + }, + { + indicateur_id: 48, // 'cae_2.a' + collectivite_id: 1, + confidentiel : true + }, + { + indicateur_id: 113, + collectivite_id: 1, + confidentiel : false + }, + { + indicateur_id: 123, + collectivite_id: 1, + confidentiel : true + }, + ], +} as Partial< + Record +>; + +// wrap la fonction à tester pour ne pas avoir à repréciser toujours les mêmes paramètres +const fetchIndicateurs = (subset: Subset | null, filters: Filters) => + fetchFilteredIndicateurs(supabase, 1, subset, filters); + +beforeAll(async () => { + await signIn('yolododo'); + await testReset(); + + // insère les données de test + await Promise.all( + Object.entries(FIXTURE).map(async ([tableName, entries]) => { + const upsert = await dbAdmin + .from(tableName as TableName) + .upsert(entries); + expect(upsert.status).toEqual(201); + }) + ); + + return async () => { + await signOut(); + }; +}); + + + +test('Confidentialité - Devrait pouvoir insérer des résultats', async () => { + await supabase.from('indicateur_valeur').upsert([ + { + indicateur_id: 38, //'eci_8', + collectivite_id: 1, + date_valeur: new Date(2023, 0, 1).toLocaleDateString('sv-SE'), + resultat: 999, + }, + { + indicateur_id: 38, //'eci_8', + collectivite_id: 1, + date_valeur: new Date(2024, 0, 1).toLocaleDateString('sv-SE'), + resultat: 666, + }, + ]); + + await supabase + .from('indicateur_collectivite') + .upsert([{indicateur_id: 60, collectivite_id: 1, confidentiel : true}]); // 'cae_8' + + const {data} = await supabase + .from('indicateur_valeur') + .select('*') + .eq('collectivite_id', 1) + .eq('indicateur_id', 60); // 'cae_8' + + expect(data).toHaveLength(2); +}); + +test("Confidentialité - Devrait ne pas pouvoir lire des valeurs des collectivités sur lesquelles je n'ai pas de droits", async () => { + await signOut(); + await signIn('yulududu'); + const {data} = await supabase + .from('indicateur_valeur') + .select('*') + .eq('collectivite_id', 1) + .eq('indicateur_id', 60); // 'cae_8' + + expect(data).toHaveLength(0); + await signOut(); + await signIn('yolododo'); +}); + + +test('Filtrer les indicateurs - par le sous-ensemble ECi', async () => { + const {status, data} = await fetchIndicateurs('eci', {}); + expect(status).toEqual(200); + expect(data.length).toEqual(3); +}); + +test('Filtrer les indicateurs - par le sous-ensemble ECi et par texte (dans le titre ou la description)', async () => { + const {status, data} = await fetchIndicateurs('eci', { + text: 'activité', + }); + expect(status).toEqual(200); + expect(data).toHaveLength(1); +}); + +test('Filtrer les indicateurs - par le sous-ensemble ECi et par identifiant', async () => { + const {status, data} = await fetchIndicateurs('eci', { + text: '#29', + }); + expect(status).toEqual(200); + expect(data).toHaveLength(1); + expect(data[0].id).toEqual(17);// eci_29 +}); + +test('Filtrer les indicateurs - par le sous-ensemble ECi et par une thématique', async () => { + const {status, data} = await fetchIndicateurs('eci', { + thematique_ids: [5], + }); + expect(status).toEqual(200); + expect(data).toHaveLength(1); // 'ind. ECi dans la thématique' +}); + +test('Filtrer les indicateurs - par le sous-ensemble ECi et par plusieurs thématiques', async () => { + const {status, data} = await fetchIndicateurs('eci', { + thematique_ids: [5, 4], + }); + expect(status).toEqual(200); + expect(data).toHaveLength(2); +}); + +test('Filtrer les indicateurs - par le sous-ensemble ECi et par personne pilote', async () => { + const {status, data} = await fetchIndicateurs('eci', { + pilote_user_ids: ['4ecc7d3a-7484-4a1c-8ac8-930cdacd2561'], + }); + expect(status).toEqual(200); + expect(data).toHaveLength(1); +}); + +test('Filtrer les indicateurs - par le sous-ensemble ECi et par tag de personne pilote', async () => { + const {status, data} = await fetchIndicateurs('eci', { + pilote_tag_ids: [1], + }); + expect(status).toEqual(200); + expect(data).toHaveLength(1); +}); + +test('Filtrer les indicateurs - par le sous-ensemble ECi et par personne et tag pilote', async () => { + const {status, data} = await fetchIndicateurs('eci', { + pilote_user_ids: ['4ecc7d3a-7484-4a1c-8ac8-930cdacd2561'], + pilote_tag_ids: [1], + }); + expect(status).toEqual(200); + expect(data).toHaveLength(1); +}); + +test('Filtrer les indicateurs - par le sous-ensemble ECi et par action du référentiel', async () => { + const {status, data} = await fetchIndicateurs('eci', { + action_id: 'eci_1.2', + }); + expect(status).toEqual(200); + expect(data).toHaveLength(1); +}); + +test("Filtrer les indicateurs - par le sous-ensemble ECi et par id de plan d'actions", async () => { + const {status, data} = await fetchIndicateurs('eci', { + plan_ids: [1], + }); + expect(status).toEqual(200); + expect(data).toHaveLength(1); +}); + +test('Filtrer les indicateurs - par le sous-ensemble ECi et par id de service', async () => { + const {status, data} = await fetchIndicateurs('eci', { + service_ids: [1], + }); + expect(status).toEqual(200); + expect(data).toHaveLength(1); +}); + +test('Filtrer les indicateurs - par le sous-ensemble CAE', async () => { + const {status, data} = await fetchIndicateurs('cae', {}); + expect(status).toEqual(200); + expect(data.length).toBeCloseTo(66, 3); +}); + +test('Filtrer les indicateurs - par le sous-ensemble CAE et par le flag "participation au score"', async () => { + const {status, data} = await fetchIndicateurs('cae', { + participation_score: true, + }); + expect(status).toEqual(200); + expect(data.length).toBeCloseTo(31, 3); +}); + +test('Filtrer les indicateurs - par le sous-ensemble CAE et l\'état "complété"', async () => { + const {status, data} = await fetchIndicateurs('cae', {rempli: true}); + expect(status).toEqual(200); + expect(data).toHaveLength(1); +}); + +test('Filtrer les indicateurs - par le sous-ensemble CAE et l\'état non "complété"', async () => { + const {status, data} = await fetchIndicateurs('cae', {rempli: false}); + expect(status).toEqual(200); + expect(data).toHaveLength(65); +}); + +test('Filtrer les indicateurs - par le sous-ensemble CAE et l\'état "confidentiel"', async () => { + const {status, data} = await fetchIndicateurs('cae', { + confidentiel: true, + }); + expect(status).toEqual(200); + // Varie de 1 selon si on lance ce test unitairement ou tout le fichier + expect(data.length).toBeGreaterThanOrEqual(2); + expect(data.length).toBeLessThanOrEqual(3); +}); + +test('Filtrer les indicateurs - par le sous-ensemble CAE et l\'état non "confidentiel"', async () => { + const {status, data} = await fetchIndicateurs('cae', { + confidentiel: false, + }); + expect(status).toEqual(200); + // Varie de 1 selon si on lance ce test unitairement ou tout le fichier + expect(data.length).toBeGreaterThanOrEqual(63); + expect(data.length).toBeLessThanOrEqual(64); +}); + +test('Filtrer les indicateurs - par indicateur perso', async () => { + const {status, data} = await fetchIndicateurs('perso', {}); + expect(status).toEqual(200); + expect(data).toHaveLength(1); +}); + +test('Filtrer les indicateurs - par indicateur perso et confidentiel', async () => { + const {status, data} = await fetchIndicateurs('perso', { + confidentiel: true, + }); + expect(status).toEqual(200); + expect(data).toHaveLength(1); + const data2 = await fetchIndicateurs('perso', { + confidentiel: false, + }); + expect(data2.status).toEqual(200); + expect(data2.data).toHaveLength(0); +}); + +test('Filtrer les indicateurs - tous les indicateurs', async () => { + const {status, data} = await fetchIndicateurs(null, {}); + expect(status).toEqual(200); + expect(data).toHaveLength(123); +}); + + diff --git a/packages/api/src/indicateurs/actions/fetchFilteredIndicateurs.ts b/packages/api/src/indicateurs/actions/fetchFilteredIndicateurs.ts new file mode 100644 index 0000000000..e060f9b3c0 --- /dev/null +++ b/packages/api/src/indicateurs/actions/fetchFilteredIndicateurs.ts @@ -0,0 +1,277 @@ +import {Enums, DBClient} from '../../typeUtils'; +import {unaccent} from '../../utils/unaccent'; +import {IndicateurListItem} from "../domain"; +import {selectGroupements} from "../../collectivites/shared/actions/groupement.fetch"; +import {FetchOptions} from '../domain/fetch_options.schema'; +import {Groupement} from "../../collectivites/shared/domain/groupement.schema"; + +// Sous-ensemble d'indicateurs +export type Subset = 'cae' | 'eci' | 'crte' | 'perso' | 'cles' | 'selection'; + +const subsetPassage= new Map([ + ['cae', 'cae'], + ['eci', 'eci'], + ['crte', 'crte'], + ['cles', 'clef'], + ['selection','prioritaire'] +]); + +// Options de filtrage +export type Filters = { + thematique_ids?: number[]; + action_id?: string; + plan_ids?: number[]; + pilote_user_ids?: string[]; + pilote_tag_ids?: number[]; + service_ids?: number[]; + type?: Enums<'indicateur_referentiel_type'>[]; + participation_score?: boolean; + rempli?: boolean; + confidentiel?: boolean; + fiches_non_classees?: boolean; + text?: string; + sort?: { + field: keyof Filters; + direction: 'asc' | 'desc'; + }; +}; + +const filtresOptions: {[key in keyof Filters]?: string} = { + thematique_ids: 'indicateur_thematique!inner(thematique_id)', + action_id : 'indicateur_action!inner(action_id)', + plan_ids: 'fiche_action_indicateur!inner(fiche_id, fiche_action!inner(fiche_action_axe!inner(axe!inner())))', + pilote_user_ids: 'indicateur_pilote!inner()', + pilote_tag_ids: 'indicateur_pilote!inner()', + service_ids: 'indicateur_service_tag!inner(service_tag_id)', + rempli : 'indicateur_valeur()', + confidentiel : 'indicateur_collectivite(commentaire, confidentiel, collectivite_id)', + fiches_non_classees: 'fiche_action_indicateur!inner(fiche_id, fiche_action!inner(fiche_action_axe!inner(axe!inner())))' +}; + +export async function fetchFilteredIndicateurs( + dbClient : DBClient, + collectiviteId : number, + subset: Subset | null, + filters : Filters +) :Promise<{data:IndicateurListItem[], status:any}> { + const parts = new Set(); + const isPerso = subset === 'perso'; + const groupements: Groupement[] = await selectGroupements(dbClient); + + // Ajoute les relations supplémentaires en fonction des filtres voulus + let key: keyof Filters; + for (key in filters) { + if ( + (filters[key] as Array)?.length || + (filters[key] !== undefined && !Array.isArray(filters[key])) + ) { + const part = filtresOptions[key]; + if (part) parts.add(part); + } + } + if(subset!==null && !isPerso) parts.add('indicateur_categorie_tag!inner(categorie_tag!inner(id,nom,collectivite_id,groupement_id))'); + // construit la requête + const query = dbClient + .from('indicateur_definition') + .select( + [ + 'id', + 'identifiant_referentiel', + 'titre', + 'groupement_id', + 'indicateur_parents(id)', + ...parts, + ].join(',') + ); + + // filtre par sous-ensemble voulu + if (isPerso) { + // On ne récupère que les indicateurs personnalisés + query.eq('collectivite_id', collectiviteId); + } else { + if(subset!== null ||filters.type?.length){ + // On ne récupère que les indicateurs prédéfinis + query.is('collectivite_id', null); + // S'il y a un tri sur les catégories prédéfinies, + // on ne garde que les indicateurs ayant des catégories prédéfinies + query.is('indicateur_categorie_tag.categorie_tag.collectivite_id', null); + if(subset !== null){ + if (filters.type?.length) { + // S'il y a un tri sur le type et le programme + query.or(`nom.eq.${subsetPassage.get(subset)!}, nom.in.${filters.type}`, + {referencedTable : 'indicateur_categorie_tag.categorie_tag'}); + }else { + // S'il y a un tri que sur le programme + query.eq('indicateur_categorie_tag.categorie_tag.nom', subsetPassage.get(subset)!); + } + } else if (filters.type?.length) { + // S'il y a un tri que sur le type + query.in('indicateur_categorie_tag.categorie_tag.nom', filters.type); + } + } + } + + // recherche par texte + const text = filters.text?.trim() || ''; + let searchById = false; + if (text) { + // par identifiant si le texte recherché commence par un # + if (text.startsWith('#') && !isPerso) { + const idToSearch = text.replaceAll(/[#\s]/g, ''); + if (idToSearch) { + searchById = true; + query.ilike('identifiant_referentiel', `%${idToSearch}%`); + } + } else { + const search = unaccent(text) + .split(' ') + .map(s => s.trim()) + .filter(s => !!s) + .map(s => `"${s}":*`) + .join(' & '); + // ou dans le nom ou la description + query.or(`titre.fts.${search}, description.fts.${search}`); + } + } + + // détermine certains des filtres complémentaires à appliquer : + // si une de ces conditions est vraie alors le filtre "parent uniquement" sera désactivé + const filtrerPar = { + participationAuScore: + subset === 'cae' && filters.participation_score !== undefined, + confidentiel: filters.confidentiel, + planAction: !!filters.plan_ids?.length, + service: !!filters.service_ids?.length, + personne: + !!filters.pilote_user_ids?.length || !!filters.pilote_tag_ids?.length, + fichesNonClassees: !!filters.fiches_non_classees, + }; + + // sélectionne uniquement les indicateurs parent (sauf pour CRTE et perso ou si on fait + // une recherche par id ou si un des filtres complémentaires est actif) + const filtrerParParent = + subset !== null && + subset !== 'crte' && + subset !== 'perso' && + !searchById && + !Object.values(filtrerPar).find(v => !!v); + + if (filtrerParParent) { + query.is('indicateur_parents', null); + } + + // par thématique + if (filters.thematique_ids?.length) { + query.in('indicateur_thematique.thematique_id', filters.thematique_ids); + } + + // par action du référentiel (ne remonte que les parents) + if (filters.action_id) { + query.in('indicateur_action.action_id', [filters.action_id]); + } + + // par plan + if (filtrerPar.planAction) { + query.in('fiche_action_indicateur.fiche_action.fiche_action_axe.axe.plan', filters.plan_ids!); + } + + // filtre les indicateurs confidentiels + if (filters.confidentiel !== undefined) { + if(filters.confidentiel){ + query.not('indicateur_collectivite', 'is', null); + query.eq('indicateur_collectivite.collectivite_id', collectiviteId); + query.is('indicateur_collectivite.confidentiel', true); + }else{ + query.or(`indicateur_id.is.null, collectivite_id.eq.${collectiviteId})`, + { referencedTable: 'indicateur_collectivite' }); + } + } + + // par service pilote + if (filtrerPar.service) { + query.eq('indicateur_service_tag.collectivite_id', collectiviteId) + query.in('indicateur_service_tag.service_tag_id', filters.service_ids!); + } + + + // par personne pilote + if (filtrerPar.personne) { + const filterParams: string[] = []; + + // cumule les user_ids + filters.pilote_user_ids?.forEach(user_id => { + filterParams.push(`user_id.eq.${user_id}`); + }); + // et les tag_ids + filters.pilote_tag_ids?.forEach(tag_id => { + filterParams.push(`tag_id.eq.${tag_id}`); + }); + + // que l'on fusionne dans un `or` sur la relation calculée + query.or(filterParams.join(','), {referencedTable: 'indicateur_pilote'}); + } + + // participation au score CAE + if (filtrerPar.participationAuScore) { + query.is('participation_score', filters.participation_score!); + } + // filtre les indicateurs complétés / à compléter + if (filters.rempli !== undefined) { + query.eq('indicateur_valeur.collectivite_id', collectiviteId); + if(filters.rempli){ + query.not('indicateur_valeur', 'is', null); + }else{ + query.is('indicateur_valeur', null); + } + } + + /** Par défaut tri par ordre alphabétique */ + const orderByOptions = [ + { + field: 'titre', + direction: 'asc', + }, + ]; + + if (filters.sort) { + orderByOptions.unshift(filters.sort); + } + + orderByOptions.forEach(sort => { + query.order(sort.field, {ascending: sort.direction === 'asc'}); + }); + const {data, ...remaining} = await query; + let rows = data || []; + if(filters.confidentiel===false){ + // Filtre supplémentaire sur confidentiel car pas trouvé comment faire ma condition avec postgrest + rows = rows.filter((r: any)=> + r.indicateur_collectivite.length === 0 || r.indicateur_collectivite[0].confidentiel === false); + } + // Filtre sur les indicateurs d'un groupement + rows = rows.filter((r : any)=> r.groupement_id === null || + groupements.filter((g : Groupement) => g.id === r.groupement_id)[0].collectivites?.includes(collectiviteId)); + return { + ...remaining, + data: rows + // et conserve un id unique + .map((d : any) => ({id : d.id as number, titre : d.titre as string})) + }; +} + +export function moduleOptionsToFilters( + options: Pick +): Filters { + const {filtre} = options; + + return { + thematique_ids: filtre.thematiqueIds, + plan_ids: filtre.planActionIds, + pilote_user_ids: filtre.utilisateurPiloteIds, + pilote_tag_ids: filtre.personnePiloteIds, + service_ids: filtre.servicePiloteIds, + rempli: filtre.estComplet, + // sort: sort?.map(({field, direction}) => ({field, direction}))[0], + // page, + // limit, + }; +} \ No newline at end of file diff --git a/packages/api/src/indicateurs/actions/indicateur.delete.test.ts b/packages/api/src/indicateurs/actions/indicateur.delete.test.ts new file mode 100644 index 0000000000..ab1a7eec14 --- /dev/null +++ b/packages/api/src/indicateurs/actions/indicateur.delete.test.ts @@ -0,0 +1,41 @@ +import {beforeAll, expect, test} from "vitest"; +import {signIn, signOut} from "../../tests/auth"; +import {testReset} from "../../tests/testReset"; +import {dbAdmin, supabase} from "../../tests/supabase"; +import {deleteIndicateur, deleteIndicateurValeur} from "./indicateur.delete"; +import {selectIndicateurDefinition, selectIndicateurValeur} from "./indicateur.fetch"; + +beforeAll(async () => { + await signIn('yolododo'); + await testReset(); + + return async () => { + await signOut(); + }; +}); + +test('Test deleteIndicateur', async () => { + // Supprimer indicateur personnalisé + await deleteIndicateur(supabase, 123, 1); + const def = await selectIndicateurDefinition(supabase, 123, 1); + expect(def).toBeNull; + + // Supprimer indicateur prédéfini (pas possible) + await deleteIndicateur(supabase, 1, 1); + const def2 = await selectIndicateurDefinition(supabase, 1, 1); + expect(def2).not.toBeNull; +}); + +test('Test deleteIndicateurValeur', async () => { + const v = await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id : 1, collectivite_id : 10, metadonnee_id : null, date_valeur : '2020-01-01', resultat : 1 + }).select('id'); + // Supprime valeur collectivité + await deleteIndicateurValeur(supabase, 1); + const val = await selectIndicateurValeur(supabase, 1); + expect(val).toBeNull; + // Supprime valeur aure collectivité (pas possible) + await deleteIndicateurValeur(supabase, v.data![0].id); + const val2 = await selectIndicateurValeur(supabase, v.data![0].id); + expect(val2).not.toBeNull; +}); \ No newline at end of file diff --git a/packages/api/src/indicateurs/actions/indicateur.delete.ts b/packages/api/src/indicateurs/actions/indicateur.delete.ts new file mode 100644 index 0000000000..5452ff19e8 --- /dev/null +++ b/packages/api/src/indicateurs/actions/indicateur.delete.ts @@ -0,0 +1,31 @@ +import {DBClient} from "../../typeUtils"; + +/** + * Supprime un indicateur pour une collectivité + * @param dbClient client supabase + * @param indicateurId identifiant de l'indicateur + * @param collectiviteId identifiant de la collectivité + */ +export async function deleteIndicateur( + dbClient : DBClient, + indicateurId : number, + collectiviteId : number // Permet d'éviter de modifier un indicateur prédéfini +) { + await dbClient + .from('indicateur_definition') + .delete() + .eq('id', indicateurId) + .eq('collectivite_id', collectiviteId); +} + +/** + * Supprime la valeur d'un indicateur + * @param dbClient client supabase + * @param valeurId identifiant de la valeur + */ +export async function deleteIndicateurValeur(dbClient : DBClient, valeurId : number) { + await dbClient + .from('indicateur_valeur') + .delete() + .eq('id', valeurId); +} diff --git a/packages/api/src/indicateurs/actions/indicateur.fetch.test.ts b/packages/api/src/indicateurs/actions/indicateur.fetch.test.ts new file mode 100644 index 0000000000..1ecf9f1042 --- /dev/null +++ b/packages/api/src/indicateurs/actions/indicateur.fetch.test.ts @@ -0,0 +1,263 @@ +import { + selectIndicateurValeur, + selectIndicateurValeurs, + selectIndicateurPilotes, + selectIndicateurServices, + selectIndicateurThematiques, + selectIndicateurFiches, + selectIndicateurActions, + selectIndicateurListItems, + selectIndicateurDefinition, + selectIndicateurComplet, + selectIndicateurChartInfo, + selectIndicateurCategoriesUtilisateur, + getValeursComparaison, + selectIndicateurSources +} from './indicateur.fetch'; +import {beforeAll, expect, test} from "vitest"; +import {signIn, signOut} from "../../tests/auth"; +import {dbAdmin, supabase} from "../../tests/supabase"; +import {testReset} from "../../tests/testReset"; + + +beforeAll(async () => { + await signIn('yolododo'); + await testReset(); + // Groupement + const gp = + await dbAdmin.from('groupement').insert({nom: 'test'}).select('id'); + await dbAdmin.from('groupement_collectivite') + .insert({collectivite_id : 1, groupement_id : gp.data![0].id}); + const gp2 = + await dbAdmin.from('groupement').insert({nom: 'test2'}).select('id'); + await dbAdmin.from('groupement_collectivite') + .insert({collectivite_id : 2, groupement_id : gp2.data![0].id}); + + // Indicateur privé + const indi = await dbAdmin.from('indicateur_definition').insert({ + titre : 'testGroupement', unite : '%', groupement_id : gp.data![0].id + }); + + // Categories + const cat = await dbAdmin.from('categorie_tag').upsert( + {collectivite_id : 1, nom : 'test'}).select('id'); + await dbAdmin.from('indicateur_categorie_tag').insert( + {categorie_tag_id : cat.data![0].id, indicateur_id : 1}); + const cat2 = await dbAdmin.from('categorie_tag').upsert( + {groupement_id : gp.data![0].id, nom : 'testGP'}).select('id'); + await dbAdmin.from('indicateur_categorie_tag').insert( + {categorie_tag_id : cat2.data![0].id, indicateur_id : 1}); + const cat3 = await dbAdmin.from('categorie_tag').upsert( + {groupement_id : gp2.data![0].id, nom : 'testGP2'}).select('id'); + await dbAdmin.from('indicateur_categorie_tag').insert( + {categorie_tag_id : cat3.data![0].id, indicateur_id : 1}); + const cat4 = await dbAdmin.from('categorie_tag').upsert( + {collectivite_id : 2, nom : 'test2'}).select('id'); + await dbAdmin.from('indicateur_categorie_tag').insert( + {categorie_tag_id : cat4.data![0].id, indicateur_id : 1}); + // Pilotes + await dbAdmin.from('indicateur_pilote').insert( + {collectivite_id : 1, user_id : null, tag_id : 1, indicateur_id : 1}); + // Services + await dbAdmin.from('indicateur_service_tag').insert( + {collectivite_id : 1, service_tag_id : 1, indicateur_id : 1}); + // Thématiques + await dbAdmin.from('indicateur_thematique').insert( + {thematique_id : 1, indicateur_id : 123}); + // Fiches + await dbAdmin.from('fiche_action_indicateur').insert( + {fiche_id : 1, indicateur_id : 123}); + // Actions + await dbAdmin.from('indicateur_action').insert( + {action_id : 'eci_4', indicateur_id : 123}); + // Commentaire + await dbAdmin.from('indicateur_collectivite').insert( + {indicateur_id : 1, collectivite_id : 1, commentaire : 'test1'} + ) + await dbAdmin.from('indicateur_collectivite').insert( + {indicateur_id : 1, collectivite_id : 2, commentaire : 'test2'} + ) + // Metadonnées + const meta = await dbAdmin.from('indicateur_source_metadonnee').insert({ + source_id : 'citepa', + date_version : new Date().toLocaleDateString('sv-SE') + + }).select('id'); + const meta2 = await dbAdmin.from('indicateur_source_metadonnee').insert({ + source_id : 'citepa', + producteur : 'test', + date_version : new Date().toLocaleDateString('sv-SE') + + }).select('id'); + const meta3 = await dbAdmin.from('indicateur_source_metadonnee').insert({ + source_id : 'orcae', + date_version : new Date().toLocaleDateString('sv-SE') + + }).select('id'); + + // Valeurs + await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id : 1, date_valeur : '2020-01-01', collectivite_id : 1, resultat : 1.2}); + await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id : 8, date_valeur : '2020-01-01', collectivite_id : 1, resultat : 1.2}); + await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id : 1, date_valeur : '2020-01-01', collectivite_id : 1, resultat : 1.5, metadonnee_id : meta.data![0].id}); + await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id : 1, date_valeur : '2020-01-01', collectivite_id : 1, resultat : 1.9, metadonnee_id : meta2.data![0].id}); + await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id : 1, date_valeur : '2020-01-01', collectivite_id : 2, resultat : 1.5, metadonnee_id : meta.data![0].id}); + + return async () => { + await signOut(); + }; +}); + +test('Test selectIndicateurSources', async () => { + const data = await selectIndicateurSources(supabase, 1, 1); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); +}); + +test('Test selectIndicateurCategoriesUtilisateur', async () => { + const data = await selectIndicateurCategoriesUtilisateur(supabase, 1, 1); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); +}); + +test('Test selectIndicateurPilote', async () => { + const data = await selectIndicateurPilotes(supabase, 1, 1); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); + expect(data[0].nom).eq('Lou Piote'); +}); + +test('Test selectIndicateurServices', async () => { + const data = await selectIndicateurServices(supabase, 1, 1); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); +}); + +test('Test selectIndicateurThematiques', async () => { + const data = await selectIndicateurThematiques(supabase, 123); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); +}); + +test('Test selectIndicateurFiches', async () => { + const data = await selectIndicateurFiches(supabase, 123, 1); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); + expect(data[0].id).eq(1); +}); + +test('Test selectIndicateurActions', async () => { + const data = await selectIndicateurActions(supabase, 123); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); + expect(data[0].id).eq('eci_4'); +}); + +test('Test selectIndicateurListItems', async () => { + // Récupère la liste des indicateurs prédéfinis et personnalisés + const data = + await selectIndicateurListItems(supabase, 1, true, true); + expect(data).not.toBeNull(); + expect(data).toHaveLength(124); + // Récupère la liste des indicateurs personnalisés + const perso = + await selectIndicateurListItems(supabase, 1, true, false); + expect(perso).not.toBeNull(); + expect(perso).toHaveLength(1); + // Récupère la liste des indicateurs prédéfinis et privé + const predef = + await selectIndicateurListItems(supabase, 1, false, true); + expect(predef).not.toBeNull(); + expect(predef).toHaveLength(123); + // Récupère la liste des indicateurs prédéfinis et non privé + const predef2 = + await selectIndicateurListItems(supabase, 2, false, true); + expect(predef2).not.toBeNull(); + expect(predef2).toHaveLength(122); +}); + +test('Test selectIndicateurValeurs', async () => { + // Récupère les valeurs utilisateurs + const data = await selectIndicateurValeurs(supabase, 1, 1, null); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); + // Récupère les valeurs citepa + const dataSource = await selectIndicateurValeurs(supabase, 1, 1, 'citepa'); + expect(dataSource).not.toBeNull(); + expect(dataSource).toHaveLength(1); +}); + +test('Test selectIndicateurValeur', async () => { + const data = await selectIndicateurValeur(supabase, 1); + expect(data).not.toBeNull(); + expect(data!.resultat).eq(20); +}); + +test('Test selectIndicateurDefinition', async () => { + const data = await selectIndicateurDefinition(supabase, 1, 1); + expect(data).not.toBeNull(); + expect(data!.identifiant).eq('crte_4.1'); +}); + +test('Test selectIndicateurComplet', async () => { + const data = await selectIndicateurComplet(supabase, 1, 1); + expect(data).not.toBeNull(); + expect(data!.identifiant).eq('crte_4.1'); + expect(data!.pilotes).toHaveLength(1); +}); + +test('Test selectIndicateurChartInfo', async () => { + // Test retour indicateur + const data = await selectIndicateurChartInfo(supabase, 1, 1); + expect(data).not.toBeNull(); + // Test retour indicateur composé cae_2.a non rempli + const data2 = await selectIndicateurChartInfo(supabase, 48, 1); + expect(data2).not.toBeNull(); + expect(data2!.enfants).toHaveLength(5); + expect(data2!.enfants!.filter(e=> e.id=8)![0].rempli).toBe(true); + expect(data2!.valeurs).toHaveLength(0); + // Test retour indicateur composé cae_2.a non rempli car sans_valeur = false + await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id : 64, date_valeur : '2020-01-01', collectivite_id : 1, resultat : 1.2}); + await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id : 94, date_valeur : '2021-01-01', collectivite_id : 1, resultat : 1.2}); + await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id : 95, date_valeur : '2020-01-01', collectivite_id : 1, resultat : 1.2}); + await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id : 118, date_valeur : '2020-01-01', collectivite_id : 1, resultat : 1.2}); + const data3 = await selectIndicateurChartInfo(supabase, 48, 1); + expect(data3).not.toBeNull(); + expect(data3!.enfants).toHaveLength(5); + expect(data3!.valeurs).toHaveLength(0); + // Test retour indicateur composé cae_2.a non rempli car sans_valeur = true + await dbAdmin.from('indicateur_definition') + .update({sans_valeur_utilisateur : true}).eq('id', 48); + const data4 = await selectIndicateurChartInfo(supabase, 48, 1); + expect(data4).not.toBeNull(); + expect(data4!.enfants).toHaveLength(5); + expect(data4!.valeurs).toHaveLength(1); + // Test retour indicateur cae_9 non rempli + await dbAdmin.from('indicateur_groupe').insert({parent : 114, enfant : 3}); + const data5 = await selectIndicateurChartInfo(supabase, 114, 1); + expect(data5).not.toBeNull(); + expect(data5!.enfants).toHaveLength(1); + expect(data5!.valeurs).toHaveLength(0); + // Test retour indicateur cae_9 rempli + await dbAdmin.from('indicateur_groupe').insert({parent : 114, enfant : 1}); + const data6 = await selectIndicateurChartInfo(supabase, 114, 1); + expect(data6).not.toBeNull(); + expect(data6!.enfants).toHaveLength(2); + expect(data6!.valeurs).toHaveLength(1); +}); + +test('Test getValeursComparaison', async () => { + const data = + await getValeursComparaison(supabase, 1, 1, 'citepa'); + expect(data).not.toBeNull(); + expect(data!.resultats.lignes).toHaveLength(1); +}); + diff --git a/packages/api/src/indicateurs/actions/indicateur.fetch.ts b/packages/api/src/indicateurs/actions/indicateur.fetch.ts new file mode 100644 index 0000000000..e307a3eee8 --- /dev/null +++ b/packages/api/src/indicateurs/actions/indicateur.fetch.ts @@ -0,0 +1,693 @@ +import {DBClient} from "../../typeUtils"; +import {objectToCamel} from 'ts-case-convert'; +import {Valeur, ValeurComparaison, ValeurComparaisonLigne} from "../domain/valeur.schema"; +import {Action} from "../../referentiel/domain/action.schema"; +import {FicheResume} from "../../fiche_actions/domain/resume.schema"; +import { + IndicateurChartInfo, + IndicateurDefinition, + IndicateurDefinitionComplet, + IndicateurListItem +} from "../domain/definition.schema"; +import {Personne} from "../../shared/domain/personne.schema"; +import {Groupement} from "../../collectivites/shared/domain/groupement.schema"; +import { + selectGroupementParCollectivite, + selectGroupements +} from "../../collectivites/shared/actions/groupement.fetch"; +import {z} from "zod"; +import {Source} from "../domain"; + +// cas spécial pour cet indicateur TODO: utiliser un champ distinct dans les markdowns plutôt que cet ID "en dur" +const ID_COMPACITE_FORMES_URBAINES = 'cae_9'; + +const COLONNES_VALEURS = [ + 'id', + 'resultat', + 'objectif', + 'resultat_commentaire', + 'objectif_commentaire', + 'date_valeur', + 'collectivite_id', + 'indicateur_id', + 'source:indicateur_source_metadonnee(*)' +] as const + +const COLONNES_DEFINITION_COURTE = [ + 'id', + 'titre', + 'titre_long', + 'unite', + 'participation_score', + 'sans_valeur:sans_valeur_utilisateur', + 'identifiant:identifiant_referentiel' +] as const + +const COLONNES_DEFINITION = [ + ...COLONNES_DEFINITION_COURTE, + 'collectivite_id', + 'description', + 'borne_min', + 'borne_max', + 'plus:indicateur_collectivite(commentaire, confidentiel)', + 'actions:indicateur_action(...action_relation(*))', + 'thematiques:indicateur_thematique(...thematique_id(*))', + 'categories:indicateur_categorie_tag(...categorie_tag(id,nom,collectivite_id,groupement_id, groupement(groupement_collectivite(*))))', + 'valeurs:indicateur_valeur('+`${COLONNES_VALEURS.join(',')}`+')', + 'enfants:indicateur_enfants(id)', + 'parents:indicateur_parents(id)' +] as const + +/** + * Récupère les sources disponibles pour un indicateur et une collectivité + * @param dbClient client supabase + * @param indicateurId identifiant de l'indicateur + * @param collectiviteId identifiant de la collectivité + * @return liste des sources + */ +export async function selectIndicateurSources ( + dbClient : DBClient, + indicateurId : number, + collectiviteId : number +): Promise{ + const {data, error} = await dbClient + .from('indicateur_valeur') + .select('...indicateur_source_metadonnee(...indicateur_source(*))') + .eq('indicateur_id', indicateurId) + .eq('collectivite_id', collectiviteId) + .returns(); + + return data?.filter((s : Source) => s.id !== null) + .reduce((uniques, s) => { + // Enlever les doublons en utilisant id comme clé + if (!uniques.some(unique => unique.id === s.id)) { + uniques.push(s); + } + return uniques; + }, [] as Source[]) || []; +} + + +/** + * Récupère les catégories tags d'une collectivité et d'un indicateur + * @param dbClient client supabase + * @param indicateurId identifiant de l'indicateur + * @param collectiviteId identifiant de la collectivité + * @return liste des identifiants des tags + */ +export async function selectIndicateurCategoriesUtilisateur( + dbClient : DBClient, + indicateurId : number, + collectiviteId : number +): Promise{ + const {data, error} = await dbClient + .from('indicateur_categorie_tag') + .select('...categorie_tag!inner(id, collectivite_id)') + .eq('indicateur_id', indicateurId) + .eq('categorie_tag.collectivite_id', collectiviteId); + return data?.map((cat : any) => cat.id) as number[] || []; +} + + +/** + * Récupère les pilotes d'un indicateur mis par une collectivité + * @param dbClient client supabase + * @param indicateurId identifiant de l'indicateur + * @param collectiviteId identifiant de la collectivité + * @return liste de pilotes + */ +export async function selectIndicateurPilotes( + dbClient : DBClient, + indicateurId : number, + collectiviteId : number +): Promise{ + const {data, error} = await dbClient + .from('indicateur_pilote') + .select(`id, collectivite_id, user_id, tag_id, tag:personne_tag(*), user:indicateur_pilote_user(*)`) + .eq('indicateur_id', indicateurId) + .eq('collectivite_id', collectiviteId) + .returns(); + + if(!data){ + return [] + } + return data.map(p => { + return { + collectiviteId : p.collectivite_id, + userId : p.user_id, + tagId : p.tag_id, + nom : p.tag_id? p.tag.nom : (p.user.prenom +' ' +p.user.nom), + idTablePassage: p.id + }; + }); +} + +/** + * Récupère les identifiants des tags services d'un indicateur et d'une collectivité + * @param dbClient client supabase + * @param indicateurId identifiant de l'indicateur + * @param collectiviteId identifiant de la collectivité + * @return liste d'id de tags services + */ +export async function selectIndicateurServices( + dbClient : DBClient, + indicateurId : number, + collectiviteId : number +) : Promise { + const {data, error} = await dbClient + .from('indicateur_service_tag') + .select(`service_tag_id`) + .eq('indicateur_id', indicateurId) + .eq('collectivite_id', collectiviteId); + + return data?.map(d => d.service_tag_id) || []; +} + +/** + * Récupère les identifiants des thématiques d'un indicateur + * @param dbClient client supabase + * @param indicateurId identifiant de l'indicateur + * @return liste des identifiants des thématiques + */ +export async function selectIndicateurThematiques(dbClient : DBClient, indicateurId : number) : Promise { + const {data, error} = await dbClient + .from('indicateur_thematique') + .select(`thematique_id`) + .eq('indicateur_id', indicateurId); + + return data?.map(d => d.thematique_id) || []; +} + +/** + * Récupère les fiches résumées d'un indicateur + * @param dbClient client supabase + * @param indicateurId identifiant de l'indicateur + * @param collectiviteId identifiant de la collectivité + * @return liste de fiches résumées + */ +export async function selectIndicateurFiches( + dbClient : DBClient, + indicateurId : number, + collectiviteId : number +) : Promise { + const {data, error} = await dbClient + .from('fiche_action_indicateur') + .select(`...fiche_resume!inner(*)`) + .eq('indicateur_id', indicateurId) + .eq('fiche_resume.collectivite_id', collectiviteId) + .returns(); + + return data ? objectToCamel(data) as FicheResume[] : [] ; +} + +/** + * Récupère les actions liées à un indicateur + * @param dbClient client supabase + * @param indicateurId identifiant de l'indicateur + * @return liste d'actions + */ +export async function selectIndicateurActions(dbClient : DBClient, indicateurId : number) : Promise { + const {data, error} = await dbClient + .from('indicateur_action') + .select(`...action_relation(*)`) + .eq('indicateur_id', indicateurId) + .returns(); + return data ? data : []; +} + +/** + * Récupère les identifiants et titres des indicateurs d'une collectivité + * @param dbClient + * @param collectiviteId + * @param personnalise + * @param predefini + * @return liste des identifiants et titres des indicateurs + */ +export async function selectIndicateurListItems( + dbClient : DBClient, + collectiviteId : number, + personnalise : boolean, + predefini : boolean +) : Promise { + const query = dbClient + .from('indicateur_definition') + .select('id, titre, groupement_id, plus:indicateur_collectivite(collectivite_id)'); + if (personnalise && predefini){ + // Tous les indicateurs de la collectivité + query.or(`collectivite_id.is.null, collectivite_id.eq.${collectiviteId}`); + }else if (predefini){ + // Tous les indicateurs predefinis + query.is('collectivite_id', null) + }else{ + // Tous les indicateurs personnalisés + query.eq('collectivite_id', collectiviteId) + } + const {data, error} = await query; + // Filtre les indicateurs privés + let dataFilter = data? data : []; + if(predefini){ + const groupement : Groupement[] = await selectGroupementParCollectivite(dbClient, collectiviteId); + const groupementIds = groupement.map(gp => gp.id); + dataFilter = dataFilter.filter((item : any)=> + item.groupement_id === null || groupementIds.includes(item.groupement_id)); + } + const toReturn = dataFilter.map((item : any)=>{ + const plusInfoFilter = + item.plus?.filter((i : any) => i.collectivite_id === collectiviteId) || []; + const plusInfo = plusInfoFilter && plusInfoFilter[0] ? plusInfoFilter[0] : + {collectivite_id : collectiviteId}; + if (!item.prive || plusInfo.acces_prive){ + return { + id : item.id, + titre : item.titre + } + } + }); + + return toReturn as IndicateurListItem[]; +} + +/** + * Récupère les valeurs d'un indicateur + * @param dbClient client supabase + * @param indicateurId identifiant de l'indicateur + * @param collectiviteId identifiant de la collectivité + * @param source nom de la source des valeurs à récupérer, null pour les valeurs utilisateurs + * @return liste de valeurs + */ +export async function selectIndicateurValeurs( + dbClient: DBClient, + indicateurId : number, + collectiviteId : number, + source : string | null +) : Promise { + const {data, error} = await dbClient + .from('indicateur_valeur') + .select(`${COLONNES_VALEURS.join(',')}`) + .eq('indicateur_id', indicateurId) + .eq('collectivite_id', collectiviteId); + let toReturn; + if(!source) { + // Récupère les valeurs renseignées par l'utilisateur (sans source) + toReturn = data?.filter((val: any) => val.source === null || val.source.length === 0) || []; + }else{ + // Récupère les valeurs de la source donnée (garde que la dernière si conflit sur la date) + const valeursSource = data?.filter((val: any) => + val.source && + val.source.source_id === source + ) || []; + const groupeParAnneeResultat : Map = new Map(); + const groupeParAnneeObjectif : Map = new Map(); + const groupeParAnneeEstimation : Map = new Map(); + valeursSource.forEach((val : any) => { + // Tri les valeurs par an + // Tri séparément les valeurs ayant des résultats, des objectifs, et des estimations + const annee = new Date(val.date_valeur).getFullYear(); + if(val.resultat || val.resultat_commentaire){ + if (!groupeParAnneeResultat.get(annee)) groupeParAnneeResultat.set(annee, []); + groupeParAnneeResultat.get(annee)!.push(val); + } + if(val.objectif || val.objectif_commentaire){ + if (!groupeParAnneeObjectif.get(annee)) groupeParAnneeObjectif.set(annee, []); + groupeParAnneeObjectif.get(annee)!.push(val); + } + if(val.estimation){ + if (!groupeParAnneeEstimation.get(annee)) groupeParAnneeEstimation.set(annee, []); + groupeParAnneeEstimation.get(annee)!.push(val); + } + + }); + const maps = [groupeParAnneeResultat, groupeParAnneeObjectif, groupeParAnneeEstimation]; + toReturn = []; + const ids = []; + for (let m = 0; m + new Date(a.source.date_version) > new Date(b.source.date_version) ? a : b + ); + if(!ids[plusRecente.id]){ + toReturn.push(plusRecente); + ids.push(plusRecente.id); + } + } + } + } + toReturn = data ? dateEnAnnee(toReturn, true) : []; + return objectToCamel(toReturn) as Valeur[] +} + +/** + * Récupère la valeur pour une année/source + * @param dbClient client supabase + * @param valeurId identifiant de la valeur + * @return valeur + */ +export async function selectIndicateurValeur(dbClient: DBClient, valeurId : number) : Promise { + const {data, error} = await dbClient + .from('indicateur_valeur') + .select(`${COLONNES_VALEURS.join(',')}`) + .eq('id', valeurId); + + let toReturn = data ? dateEnAnnee(data, false) : null; + return toReturn ? objectToCamel(toReturn)[0] as Valeur : null; +} + +/** + * Récupère la définition d'un indicateur pour une collectivité + * @param dbClient client supabase + * @param indicateurId identifiant de l'indicateur + * @param collectiviteId identifiant de la collectivité + * @return indicateur + */ +export async function selectIndicateurDefinition( + dbClient: DBClient, + indicateurId : number, + collectiviteId : number +) : Promise { + const {data, error} = await dbClient + .from('indicateur_definition') + .select(`${COLONNES_DEFINITION.join(',')}`) + .eq('id', indicateurId) + .eq('plus.collectivite_id', collectiviteId) + .eq('valeurs.collectivite_id', collectiviteId); + let toReturn = data ? await transformeDefinition(dbClient, data, collectiviteId, false) : null; + return toReturn ? objectToCamel(toReturn)[0] as IndicateurDefinition : null; +} + +/** + * Récupère toutes les informations annexes d'un indicateur pour une collectivité + * @param dbClient client supabase + * @param indicateurId l'identifiant de l'indicateur + * @param collectiviteId identifiant de la collectivité + * @return indicateur complet + */ +export async function selectIndicateurComplet( + dbClient: DBClient, + indicateurId : number, + collectiviteId : number +) : Promise { + const {data, error} = await dbClient + .from('indicateur_definition') + .select(`${COLONNES_DEFINITION.join(',')}, ` + + 'services:indicateur_service_tag(service_tag_id, collectivite_id),' + + 'pilotes:indicateur_pilote(' + + 'tag_id, user_id, collectivite_id, tag:personne_tag(*), user:indicateur_pilote_user(*)),' + + 'fiches:fiche_action_indicateur(...fiche_resume(*))') + .eq('id', indicateurId) + .eq('plus.collectivite_id', collectiviteId) + .eq('valeurs.collectivite_id', collectiviteId) + .eq('services.collectivite_id', collectiviteId) + .eq('pilotes.collectivite_id', collectiviteId) + .eq('fiches.fiche_resume.collectivite_id', collectiviteId); + + let toReturn = data ? await transformeDefinition(dbClient, data, collectiviteId,true) : null; + return toReturn? objectToCamel(toReturn)[0] as IndicateurDefinitionComplet : null; +} + +/** + * Récupère les informations d'un indicateur pour un affichage graphique + * @param dbClient client supabase + * @param indicateurId l'identifiant de l'indicateur + * @param collectiviteId identifiant de la collectivité + * @return l'indicateur et ses valeurs pour un affichage graphique + */ +export async function selectIndicateurChartInfo( + dbClient : DBClient, + indicateurId : number, + collectiviteId : number +) : Promise { + const {data, error} = await dbClient + .from('indicateur_definition') + .select(`${COLONNES_DEFINITION_COURTE.join(',')}, groupement_id,` + + 'plus:indicateur_collectivite(confidentiel, collectivite_id), ' + + 'enfants:indicateur_enfants(' + + 'id, ' + + 'valeurs:indicateur_valeur(date_valeur, resultat, objectif, collectivite_id, metadonnee_id)' + + '), ' + + 'valeurs:indicateur_valeur(date_valeur, resultat, objectif, collectivite_id, metadonnee_id)') + .eq('id', indicateurId) + .eq('plus.collectivite_id', collectiviteId) + .eq('indicateur_valeur.collectivite_id', collectiviteId) + .is('valeurs.metadonnee_id', null) + .eq('indicateur_enfants.indicateur_valeur.collectivite_id', collectiviteId) + .is('indicateur_enfants.indicateur_valeur.metadonnee_id', null) + .returns(); + + const groupement : Groupement[] = await selectGroupementParCollectivite(dbClient, collectiviteId); + const groupementIds = groupement.map(gp => gp.id); + let toReturn = data?.filter((item : any)=> + item.groupement_id === null || groupementIds.includes(item.groupement_id)) + .map(item => { + // Récupère l'information de la confidentialité + const plusInfo = item.plus && item.plus[0] ? item.plus[0] : + { confidentiel: false, collectiviteId : collectiviteId }; + + // Transforme les valeurs + let valeursTransforme = dateEnAnnee(item.valeurs, true); + + // Vérifie le remplissage des indicateurs enfants + let enfantsTransforme = item.enfants.map((enf : any)=> { + return { + ...enf, + valeurs : enf.valeurs, + rempli : enf.valeurs.length > 0 + } + }); + + let count = null; + let total = null; + // Pour un indicateur composé n'ayant pas ses propres valeurs + if (item.sans_valeur && enfantsTransforme.length>0){ + // On compte le nombre d'enfants total et remplis + count = enfantsTransforme.filter((enf : any) => enf.rempli).length; + total = enfantsTransforme.length; + + // Si tous les enfants sont remplis ou si au moins un est rempli pour l'indicateur parent cae_9 + if(count === total || (item.identifiant === ID_COMPACITE_FORMES_URBAINES && count >=1)){ + // On affiche les valeurs du premier enfant rempli + const premierRempli = enfantsTransforme.find((enf : any) => enf.rempli); + valeursTransforme = dateEnAnnee(premierRempli.valeurs, true); + } + } + // On enlève l'attribut valeurs des enfants pour correspondre au schéma + enfantsTransforme = enfantsTransforme.map((enf : any) => { + return { + ...enf, + valeurs : undefined + } + }); + + return { + ...item, + valeurs : valeursTransforme, + rempli : item.valeurs.length > 0, // Ajoute l'attribut 'rempli' + enfants : enfantsTransforme, + plus : undefined, + confidentiel : plusInfo.confidentiel, // Remonte l'info 'confidentiel' + count : count, // Ajoute l'attribut 'count' + total : total, // Ajoute l'attribut 'total' + identifiant : undefined, // Enlève 'identifiant' pour correspondre au schéma + groupement_id : undefined // Enlève l'information du groupement + } + }) || null; + + return toReturn ? objectToCamel(toReturn)[0] as IndicateurChartInfo : null; +} + +/** + * Modifie une liste de valeurs d'indicateurs pour transformer date_valeur (date) en année (nombre) + * @param data liste de valeurs avec date_valeur (date) + * @param enleveDoublon si vrai, enlève les valeurs avec la même année + * @return liste de valeurs avec annee (nombre) + */ +function dateEnAnnee(data : any[], enleveDoublon : boolean){ + // En base de donnée l'année d'une valeur est sous forme de date 01/01/XXXX pour laisser la possibilité future + // d'avoir des évolutions de valeurs par semestre, mois, etc. + // Actuellement l'application n'affiche qu'une évolution par année, on transforme donc la date en année + // Dans le cas où il y aurait éventuellement plusieurs dates sur la même année en BDD, + // on ne garde que les valeurs sous la forme 01/01/XXXX + const toTransforme = enleveDoublon? + (data.filter((val : any) => + new Date(val.date_valeur).getMonth() === 0 && + new Date(val.date_valeur).getDate() === 1)) + :data; + return toTransforme.map((val : any) => { + return { + ...val, + annee: new Date(val.date_valeur).getFullYear(), + date_valeur : undefined + }; + }); +} + +/** + * Compare les valeurs de l'utilisateur et de la source d'un indicateur + * @param dbClient client supabase + * @param indicateurId identifiant de l'indicateur + * @param collectiviteId identifiant de la collectivité + * @param source source à comparer + * @return liste des valeurs résultats et objectifs à comparer + */ +export async function getValeursComparaison( + dbClient : DBClient, + indicateurId : number, + collectiviteId : number, + source : string +): Promise<{resultats: ValeurComparaison, objectifs: ValeurComparaison} | null>{ + const valeursUtilisateur = + await selectIndicateurValeurs(dbClient, indicateurId, collectiviteId, null); + const valeursSource = await selectIndicateurValeurs(dbClient, indicateurId, collectiviteId, source); + + if (!valeursSource.length) { + // rien à appliquer + return null; + } + + // Pour compter les lignes en conflit + let nbConflitsResultat = 0; + let nbConflitsObjectif = 0; + // et celles à insérer + let nbAjoutsResultat = 0; + let nbAjoutsObjectif = 0; + + const lignesResultat : ValeurComparaisonLigne[] = []; + const lignesObjectif : ValeurComparaisonLigne[] = []; + + // Parcours chaque ligne à appliquer + valeursSource.map(aAppliquer => { + // cherche si une valeur a déjà été saisie pour la même année + const aEcraser = valeursUtilisateur?.find(d => d.annee === aAppliquer.annee); + const ligneCommune : ValeurComparaisonLigne = { + conflit: false, + annee : aAppliquer.annee, + idAEcraser : aEcraser?.id ?? null, + idAAppliquer : aAppliquer.id!, + valeurAEcraser: null, + valeurAAppliquer: 0, + source : source + } + // Ajout d'une ligne résultat + if (aAppliquer.resultat){ + const ligne : ValeurComparaisonLigne = { + ...ligneCommune, + valeurAEcraser: aEcraser?.resultat ?? null, + valeurAAppliquer: aAppliquer.resultat! + }; + // Ajoute l'information du conflit + ligne.conflit = ligne.valeurAEcraser? ligne.valeurAEcraser !== ligne.valeurAAppliquer : false; + if (ligne.conflit) nbConflitsResultat++; + if (ligne.valeurAEcraser === null) nbAjoutsResultat++; + lignesResultat.push(ligne); + } + // Ajout d'une ligne objectif + if (aAppliquer.objectif){ + const ligne = { + ... ligneCommune, + valeurAEcraser: aEcraser?.objectif ?? null, + valeurAAppliquer: aAppliquer.objectif! + }; + // Ajoute l'information du conflit + ligne.conflit = ligne.valeurAEcraser? ligne.valeurAEcraser !== ligne.valeurAAppliquer : false; + if (ligne.conflit) nbConflitsObjectif++; + if (ligne.valeurAEcraser === null) nbAjoutsObjectif++; + lignesObjectif.push(ligne); + } + }); + + // renvoi le nombre et le détail des conflits relevés + return { + resultats : {lignes : lignesResultat, conflits: nbConflitsResultat, ajouts: nbAjoutsResultat}, + objectifs : {lignes : lignesObjectif, conflits: nbConflitsObjectif, ajouts: nbAjoutsObjectif}, + }; +} + +/** + * Modifie une liste d'indicateur pour coller aux schémas + * @param dbClient client supabase + * @param data liste d'indicateurs + * @param collectiviteId identifiant de la collectivité + * @param complet vrai si la liste d'indicateur contient tous les attributs annexes + */ +async function transformeDefinition( + dbClient : DBClient, + data : any[], + collectiviteId : number, + complet : boolean +){ + const groupement = await selectGroupements(dbClient); + return data.map(item => { + // Extraire les informations de 'plus' si elles existent + const plusInfo = item.plus && item.plus[0] ? item.plus[0] : + { commentaire: null, confidentiel: false, collectiviteId : collectiviteId }; + + let type; + let programmes : any[] = []; + let prioritaire = false; + let categoriesUtilisateur = undefined; + let valeurs = undefined; + let services = undefined; + let pilotes = undefined; + let fiches = undefined; + let fiches_non_classees = undefined; + + // Transforme les informations complémentaires aux indicateurs + if (complet){ + valeurs = item.valeurs?.filter((val: any) => val.source === null || val.source.length === 0)|| []; + valeurs = dateEnAnnee(valeurs, true); + services = item.services ? item.services : []; + pilotes = item.pilotes + .map((p : any) => { + return { + tagId : undefined, + userId : undefined, + nom : p.tag_id? p.tag.nom : (p.user.prenom +' ' +p.user.nom), + idTablePassage : p.id, + collectiviteId : p.collectivite_id + }; + }); + fiches = item.fiches; + fiches_non_classees = fiches.filter((fiche : any) => fiche.plans === null || fiche.plans.length === 0); + } + + // Découpe les catégories en type, programme et catégories utilisateur + item.categories.forEach((cat : any) => { + if (cat.collectivite_id !== null) { + if (complet && cat.collectivite_id === collectiviteId) { + categoriesUtilisateur = [] + categoriesUtilisateur.push({id: cat.id, nom: cat.nom, collectivite_id: cat.collectivite_id}); + } + }else if(cat.groupement_id !== null){ + const groupe = groupement.filter((g: any)=> g.id === cat.groupement_id); + if(groupe.length>0 && groupe[0].collectivites && groupe[0].collectivites.includes(collectiviteId)){ + programmes.push({id:cat.id, nom:cat.nom}); + } + } else if (cat.nom === 'resultat' || cat.nom === 'impact') { + type = cat; + } else if (cat.nom === 'prioritaire') { + prioritaire = true; + } else { + programmes.push({id:cat.id, nom:cat.nom}); + } + }); + + return { + ...item, + rempli: item.valeurs?.length > 0 || 0, // Ajouter le champ 'rempli' + commentaire: plusInfo.commentaire, // Remonte le champ 'commentaire' + confidentiel: plusInfo.confidentiel, // Remonte le champ 'confidentiel' + plus: undefined, // Supprimer le champ 'plus' + categories : undefined, // Supprimer le champ 'categories' + valeurs : valeurs, + categories_utilisateur: categoriesUtilisateur, // Divise le champ 'categorie' en 'categories_utilisateur' + type: type, // Divise le champ 'categorie' en 'type' + programmes: programmes, // Divise le champ 'categorie' en 'programmes' + prioritaire : prioritaire, // Divise le champ 'categorie' en 'prioritaire' + est_perso : item.collectivite_id !== null, + pilotes : pilotes, + services : services, + fiches : fiches, + fiches_non_classees : fiches_non_classees // Ajoute le champ 'est_perso' + }; + }); +} diff --git a/packages/api/src/indicateurs/actions/indicateur.save.test.ts b/packages/api/src/indicateurs/actions/indicateur.save.test.ts new file mode 100644 index 0000000000..146d6355ca --- /dev/null +++ b/packages/api/src/indicateurs/actions/indicateur.save.test.ts @@ -0,0 +1,408 @@ +import {signIn, signOut} from "../../tests/auth"; +import {dbAdmin, supabase} from "../../tests/supabase"; +import {beforeAll, expect, test} from 'vitest'; +import {testReset} from "../../tests/testReset"; +import { + insertIndicateurDefinition, updateIndicateurDefinition, upsertActions, + upsertCategoriesUtilisateur, upsertFiches, + upsertIndicateurValeur, upsertPilotes, + upsertServices, + upsertThematiques, upsertValeursUtilisateurAvecSource +} from "./indicateur.save"; +import { + selectIndicateurActions, selectIndicateurCategoriesUtilisateur, + selectIndicateurDefinition, + selectIndicateurFiches, selectIndicateurPilotes, selectIndicateurServices, + selectIndicateurThematiques, + selectIndicateurValeur, selectIndicateurValeurs +} from "./indicateur.fetch"; +import {IndicateurDefinitionInsert} from "../domain/definition.schema"; +import {Valeur} from "../domain/valeur.schema"; +import {Thematique} from "../../shared/domain/thematique.schema"; +import {FicheResume} from "../../fiche_actions/domain/resume.schema"; +import {Personne} from "../../shared/domain/personne.schema"; +import {Action} from "../../referentiel/domain/action.schema"; +import {Tag} from "../../shared/domain/tag.schema"; + + + +beforeAll(async () => { + await signIn('yolododo'); + await testReset(); + + return async () => { + await signOut(); + }; +}); + +test('Test updateIndicateurDefinition', async () => { + // Modification indicateur personnalisé + const def = await selectIndicateurDefinition(supabase, 123, 1); + const defToUpdate = JSON.parse(JSON.stringify(def!)); + defToUpdate.commentaire = 'test nouveau com'; + defToUpdate.description = 'test nouvel des' + await updateIndicateurDefinition(supabase, defToUpdate, 1); + const newDef = await selectIndicateurDefinition(supabase, 123, 1); + expect(def!.commentaire).not.eq(newDef!.commentaire); + expect(def!.description).not.eq(newDef!.description); + + // Modification indicateur prédéfini + const def2 = await selectIndicateurDefinition(supabase, 1, 1); + const def2ToUpdate = JSON.parse(JSON.stringify(def2!)); + def2ToUpdate.commentaire = 'test nouveau com'; + def2ToUpdate.description = 'test nouvel des' + await updateIndicateurDefinition(supabase, def2ToUpdate, 1); + const newDef2 = await selectIndicateurDefinition(supabase, 1, 1); + expect(def2!.commentaire).not.eq(newDef2!.commentaire); + expect(def2!.description).eq(newDef2!.description); // Ne peut pas modifier la description d'un indicateur prédéfini + +}); + +test('Test insertIndicateurDefinition', async () => { + const def : IndicateurDefinitionInsert = { + titre : 'test', + collectiviteId: 1, + thematiques: [{id : 1, nom :''}] + } + + const newId = await insertIndicateurDefinition(supabase, def); + const data = await selectIndicateurDefinition(supabase, newId!, 1); + expect(data).not.toBeNull(); + expect(data?.thematiques[0].id).eq(1); +}); + +test('Test upsertIndicateurValeur', async () => { + const valeur : Valeur = { + collectiviteId : 1, + indicateurId : 1, + resultat : 1.3, + objectif : 2, + resultatCommentaire : 'test', + annee : 2022 + }; + // Ajout valeur + const newId = await upsertIndicateurValeur(supabase, valeur); + const data = await selectIndicateurValeur(supabase, newId!); + expect(data).not.toBeNull(); + data!.objectif = 2.3; + // Modification valeur + await upsertIndicateurValeur(supabase, data!); + const result = await selectIndicateurValeur(supabase, newId!); + expect(result!.objectif).eq(2.3); + expect(data!.id).eq(result!.id); +}); + +test('Test upsertThematiques', async () => { + // Ajout thématique sur indicateur personnalisé + const def = await selectIndicateurDefinition(supabase, 123, 1); + const them : Thematique[] = [{ + id : 1, + nom : 'test' + }]; + await upsertThematiques(supabase, def!, them); + const data = await selectIndicateurThematiques(supabase, 123); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); + // Enlève thématique sur indicateur personnalisé + await upsertThematiques(supabase, def!, []); + const data2 = await selectIndicateurThematiques(supabase, 123); + expect(data2).not.toBeNull(); + expect(data2).toHaveLength(0); + // Ajout thématique sur indicateur prédéfini (pas possible) + const def2 = await selectIndicateurDefinition(supabase, 1, 1); + await upsertThematiques(supabase, def2!, them); + const data3 = await selectIndicateurThematiques(supabase, 1); + expect(data3).not.toBeNull(); + expect(data3).toHaveLength(0); +}); + +test('Test upsertServices', async () => { + // Données + const serv = await dbAdmin.from('service_tag') + .insert({nom : 'serv2', collectivite_id : 2}).select(); + await dbAdmin.from('indicateur_service_tag') + .insert({indicateur_id : 1, service_tag_id : serv!.data![0].id, collectivite_id : 2}); + + // Ajout service inexistant sur indicateur personnalisé + const def = await selectIndicateurDefinition(supabase, 123, 1); + const tags : Tag[] = [{ + nom : 'test', + collectiviteId: 1 + }]; + await upsertServices(supabase, def!, 1, tags); + const data = await selectIndicateurServices(supabase, 123, 1); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); + // Ajout service existant sur indicateur personnalisé + tags[0].id = data[0]; + tags.push({nom : '', collectiviteId: 1, id: 1}); + await upsertServices(supabase, def!, 1, tags); + const data2 = await selectIndicateurServices(supabase, 123, 1); + expect(data2).not.toBeNull(); + expect(data2).toHaveLength(2); + // Enlève services sur indicateur personnalisé + await upsertServices(supabase, def!, 1, []); + const data3 = await selectIndicateurServices(supabase, 123, 1); + expect(data3).not.toBeNull(); + expect(data3).toHaveLength(0); + // Ajout services sur indicateur prédéfini + const def2 = await selectIndicateurDefinition(supabase, 1, 1); + await upsertServices(supabase, def2!, 1, tags); + const data4 = await selectIndicateurServices(supabase, 1, 1); + expect(data4).not.toBeNull(); + expect(data4).toHaveLength(2); + // Enlève services sur indicateur prédéfini + await upsertServices(supabase, def2!, 1, []); + const data5 = await selectIndicateurServices(supabase, 1, 1); + expect(data5).not.toBeNull(); + expect(data5).toHaveLength(0); + // Vérifie qu'on supprime pas les services des autres collectivités + const data6 = await selectIndicateurServices(supabase, 1, 2); + expect(data6).not.toBeNull(); + expect(data6).toHaveLength(1); +}); + +test('Test upsertCategoriesUtilisateur', async () => { + // Données + const categorie = await dbAdmin.from('categorie_tag') + .insert({nom : 'testCat', collectivite_id : 1}).select(); + const catId = categorie!.data![0].id; + const categorie2 = await dbAdmin.from('categorie_tag') + .insert({nom : 'cat2', collectivite_id : 2}).select(); + await dbAdmin.from('indicateur_categorie_tag') + .insert({indicateur_id : 1, categorie_tag_id : categorie2!.data![0].id}); + + // Ajout catégorie inexistant sur indicateur personnalisé + const def = await selectIndicateurDefinition(supabase, 123, 1); + const tags : Tag[] = [{ + nom : 'test', + collectiviteId: 1 + }]; + await upsertCategoriesUtilisateur(supabase, def!, 1, tags); + const data = await selectIndicateurCategoriesUtilisateur(supabase, 123, 1); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); + // Ajout catégorie existant sur indicateur personnalisé + tags[0].id = data[0]; + tags.push({nom : '', collectiviteId: 1, id: catId}); + await upsertCategoriesUtilisateur(supabase, def!, 1, tags); + const data2 = await selectIndicateurCategoriesUtilisateur(supabase, 123, 1); + expect(data2).not.toBeNull(); + expect(data2).toHaveLength(2); + // Enlève catégorie sur indicateur personnalisé + await upsertCategoriesUtilisateur(supabase, def!, 1, []); + const data3 = await selectIndicateurCategoriesUtilisateur(supabase, 123, 1); + expect(data3).not.toBeNull(); + expect(data3).toHaveLength(0); + // Ajout catégorie sur indicateur prédéfini + const def2 = await selectIndicateurDefinition(supabase, 1, 1); + await upsertCategoriesUtilisateur(supabase, def2!, 1, tags); + const data4 = await selectIndicateurCategoriesUtilisateur(supabase, 1, 1); + expect(data4).not.toBeNull(); + expect(data4).toHaveLength(2); + // Enlève catégorie sur indicateur prédéfini + await upsertCategoriesUtilisateur(supabase, def2!, 1, []); + const data5 = await selectIndicateurCategoriesUtilisateur(supabase, 1, 1); + expect(data5).not.toBeNull(); + expect(data5).toHaveLength(0); + // Vérifie qu'on a pas supprimé les catégories d'une autre collectivité sur le même indicateur + const data6 = await selectIndicateurCategoriesUtilisateur(supabase, 1, 2); + expect(data6).not.toBeNull(); + expect(data6).toHaveLength(1); +}); + +test('Test upsertPilotes', async () => { + // Données + const pil = await dbAdmin.from('personne_tag') + .insert({nom : 'pil2', collectivite_id : 2}).select(); + await dbAdmin.from('indicateur_pilote') + .insert({indicateur_id : 1, tag_id : pil!.data![0].id, collectivite_id : 2}); + + // Ajout pilote inexistant sur indicateur personnalisé + const def = await selectIndicateurDefinition(supabase, 123, 1); + const tags : Personne[] = [{ + nom : 'test', + tagId : null, + userId : null, + collectiviteId: 1 + }]; + await upsertPilotes(supabase, def!, 1, tags); + const data = await selectIndicateurPilotes(supabase, 123, 1); + expect(data).not.toBeNull(); + expect(data).not.toHaveLength(0); + // Ajout pilote existant sur indicateur personnalisé + tags[0] = data[0]; + tags.push({tagId: 1, collectiviteId: 1}); + tags.push({userId : '17440546-f389-4d4f-bfdb-b0c94a1bd0f9', collectiviteId : 1}); + await upsertPilotes(supabase, def!, 1, tags); + const data2 = await selectIndicateurPilotes(supabase, 123, 1); + expect(data2).not.toBeNull(); + expect(data2).toHaveLength(3); + // Enlève pilote sur indicateur personnalisé + await upsertPilotes(supabase, def!, 1, []); + const data3 = await selectIndicateurPilotes(supabase, 123, 1); + expect(data3).not.toBeNull(); + expect(data3).toHaveLength(0); + // Ajout pilote sur indicateur prédéfini + const def2 = await selectIndicateurDefinition(supabase, 1, 1); + tags[0].idTablePassage = null; + await upsertPilotes(supabase, def2!, 1, tags); + const data4 = await selectIndicateurPilotes(supabase, 1, 1); + expect(data4).not.toBeNull(); + expect(data4).toHaveLength(3); + // Enlève pilote sur indicateur prédéfini + await upsertPilotes(supabase, def2!, 1, []); + const data5 = await selectIndicateurPilotes(supabase, 1, 1); + expect(data5).not.toBeNull(); + expect(data5).toHaveLength(0); + // Vérifie que les pilotes des autres collectivités n'ont pas été supprimés + const data6 = await selectIndicateurPilotes(supabase, 1, 2 ); + expect(data6).not.toBeNull(); + expect(data6).toHaveLength(1); + +}); + +test('Test upsertFiches', async () => { + const fiche = await dbAdmin + .from('fiche_action') + .insert({titre : 'test2', collectivite_id :2}) + .select(); + await dbAdmin.from('fiche_action_indicateur') + .insert({fiche_id : fiche!.data![0].id, indicateur_id : 1}); + + // Ajoute fiche sur indicateur personnalisé + const def = await selectIndicateurDefinition(supabase, 123, 1); + const fr : FicheResume[] = [{ + ameliorationContinue : false, + collectiviteId : 1, + dateFinProvisoire : '2020-01-01', + id : 1, + modifiedAt : '2020-01-01', + niveauPriorite : 'Bas', + pilotes : [], + plans : [], + restreint : false, + statut : 'En cours', + titre : 'test' + }]; + await upsertFiches(supabase, def!, 1, fr); + const data = await selectIndicateurFiches(supabase, 123, 1); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); + // Enlève fiche sur indicateur personnalisé + await upsertFiches(supabase, def!, 1, []); + const data3 = await selectIndicateurFiches(supabase, 123, 1); + expect(data3).not.toBeNull(); + expect(data3).toHaveLength(0); + // Ajout fiche sur indicateur prédéfini + const def2 = await selectIndicateurDefinition(supabase, 1, 1); + await upsertFiches(supabase, def2!, 1, fr); + const data4 = await selectIndicateurFiches(supabase, 1, 1); + expect(data4).not.toBeNull(); + expect(data4).toHaveLength(1); + // Enlève fiche sur indicateur prédéfini + await upsertFiches(supabase, def2!, 1, []); + const data5 = await selectIndicateurFiches(supabase, 1, 1 ); + expect(data5).not.toBeNull(); + expect(data5).toHaveLength(0); + // Vérifie que les fiches des autres collectivités n'ont pas été supprimés + const data6 = await selectIndicateurFiches(supabase, 1, 2 ); + expect(data6).not.toBeNull(); + expect(data6).toHaveLength(1); +}); + +test('Test upsertActions', async () => { + // Ajout action sur indicateur personnalisé + const def = await selectIndicateurDefinition(supabase, 123, 1); + const act : Action[] = [{ + parent : null, + id : 'eci', + referentiel : 'eci' + }]; + await upsertActions(supabase, def!, act); + const data = await selectIndicateurActions(supabase, 123); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); + // Enlève action indicateur personnalisé + await upsertActions(supabase, def!, []); + const data2 = await selectIndicateurActions(supabase, 123); + expect(data2).not.toBeNull(); + expect(data2).toHaveLength(0); +}); + +test('Test upsertValeursUtilisateurAvecSource', async () => { + // Données + await testReset(); + // Ajout valeur utilisateur + const val = await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id : 1, + date_valeur : '2025-01-01', + collectivite_id : 1, + resultat : 1.5}).select('id'); + // Ajout valeur import + const meta = + await dbAdmin.from('indicateur_source_metadonnee').insert({ + source_id : 'citepa', + date_version : new Date().toLocaleDateString('sv-SE') + }).select('id'); + await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id : 1, + date_valeur : '2025-01-01', + collectivite_id : 1, + resultat : 1.8, + metadonnee_id : meta.data![0].id}); + await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id : 1, + date_valeur : '2026-01-01', + collectivite_id : 1, + resultat : 2, + metadonnee_id : meta.data![0].id}); + + const args = { + dbClient : supabase, + indicateurId : 1, + collectiviteId : 1, + source : 'citepa', + appliquerResultat : false, + appliquerObjectif : true, + ecraserResultat : true, + ecraserObjectif : true + } + + // Test que le résultat n'a pas été appliqué + await upsertValeursUtilisateurAvecSource(args); + const data1 = await selectIndicateurValeur(supabase, val.data![0].id); + expect(data1).not.toBeNull(); + expect(data1?.resultat).eq(1.5); + const d1 = await selectIndicateurValeurs(supabase, 1, 1, null); + expect(d1).toHaveLength(1); + + // Test que le résultat n'a pas été écrasé + args.appliquerResultat = true; + args.ecraserResultat = false; + await upsertValeursUtilisateurAvecSource(args); + const data2 = await selectIndicateurValeur(supabase, val.data![0].id); + expect(data2).not.toBeNull(); + expect(data2?.resultat).eq(1.5); + const d2 = await selectIndicateurValeurs(supabase, 1, 1, null); + expect(d2).toHaveLength(2); + + // Test que le résultat a bien été appliqué + const idNewValeur = d2.filter(d => d.id!==val.data![0].id)![0].id; + await dbAdmin.from('indicateur_valeur').delete().eq('id', idNewValeur!); + const d3bis = await selectIndicateurValeurs(supabase, 1, 1, null); + expect(d3bis).toHaveLength(1); + + args.ecraserResultat = true; + await upsertValeursUtilisateurAvecSource(args); + const data = await selectIndicateurValeur(supabase, val.data![0].id); + expect(data).not.toBeNull(); + expect(data?.resultat).eq(1.8); + const d3 = await selectIndicateurValeurs(supabase, 1, 1, null); + expect(d3).toHaveLength(2); + +}); + + + + diff --git a/packages/api/src/indicateurs/actions/indicateur.save.ts b/packages/api/src/indicateurs/actions/indicateur.save.ts new file mode 100644 index 0000000000..4c595dd3af --- /dev/null +++ b/packages/api/src/indicateurs/actions/indicateur.save.ts @@ -0,0 +1,478 @@ +import {DBClient} from "../../typeUtils"; +import {Valeur, valeurSchema} from "../domain/valeur.schema"; +import { + IndicateurDefinition, + IndicateurDefinitionInsert, + indicateurDefinitionSchemaInsert +} from "../domain/definition.schema"; +import {TablesInsert} from "../../typeUtils"; +import {objectToSnake} from "ts-case-convert"; +import {Personne} from "../../shared/domain/personne.schema"; +import {insertTags} from "../../shared/actions/tag.save"; +import {Tag} from "../../shared/domain/tag.schema"; +import {Thematique} from "../../shared/domain/thematique.schema"; +import {FicheResume} from "../../fiche_actions/domain/resume.schema"; +import {Action} from "../../referentiel/domain/action.schema"; +import {getValeursComparaison} from "./indicateur.fetch"; +import {selectTags} from "../../shared/actions/tag.fetch"; + +export type upsertValeursUtilisateurAvecSourceParametres = { + dbClient : DBClient, + indicateurId : number, + collectiviteId : number, + source : string, + appliquerResultat : boolean, + appliquerObjectif : boolean, + ecraserResultat : boolean, + ecraserObjectif : boolean +}; + +/** + * Modifie la définition d'un indicateur pour une collectivité + * @param dbClient client supabase + * @param indicateur indicateur à modifier + * @param collectiviteId identifiant de la collectivité + */ +export async function updateIndicateurDefinition( + dbClient: DBClient, + indicateur : IndicateurDefinition, + collectiviteId : number +) { + + // Modifier commentaire && confidentiel + await dbClient + .from('indicateur_collectivite') + .upsert({ + indicateur_id : indicateur.id, + collectivite_id : collectiviteId, + commentaire : indicateur.commentaire, + confidentiel : indicateur.confidentiel + }); + + + // Modifier l'indicateur si personnalise + if(indicateur.estPerso){ + await dbClient + .from('indicateur_definition') + .upsert({ + id : indicateur.id, + collectivite_id : indicateur.collectiviteId, + titre: indicateur.titre, + titre_long: indicateur.titreLong, + description: indicateur.description, + unite: indicateur.unite, + borne_max: indicateur.borneMax, + borne_min: indicateur.borneMin, + }); + } +} + +/** + * Ajoute un indicateur personnalisé + * @param dbClient client supabase + * @param indicateur indicateur à ajouter + * @return identifiant de l'indicateur ajouté + */ +export async function insertIndicateurDefinition( + dbClient : DBClient, + indicateur : IndicateurDefinitionInsert +) : Promise { + indicateurDefinitionSchemaInsert.parse(indicateur); // Vérifie le type + try { + const {data, error } = await dbClient + .from('indicateur_definition') + .insert({ + collectivite_id : indicateur.collectiviteId, + titre : indicateur.titre, + unite : indicateur.unite ? indicateur.unite : "" + }) + .select('id'); + + if(data && data.length >0 && indicateur.thematiques !=null && indicateur.thematiques.length>0) { + await dbClient + .from('indicateur_thematique') + .insert(indicateur.thematiques.map(t => ( + { + indicateur_id : data[0].id, + thematique_id : t.id + }))) + } + + return data? data[0].id: null; + } catch (error) { + throw error + } +} + +/** + * Upsert la valeur utilisateur d'un indicateur, supprime la valeur si aucun champ rempli + * @param dbClient client supabase + * @param indicateurValeur valeur à ajouter/modifier + * @return identifiant de la valeur ajoutée/modifiée, null si supprimée + */ +export async function upsertIndicateurValeur( + dbClient : DBClient, + indicateurValeur : Valeur +) : Promise { + valeurSchema.parse(indicateurValeur); // Vérifie le type + if( + indicateurValeur.resultat === null && + indicateurValeur.objectif === null && + indicateurValeur.estimation === null && + (indicateurValeur.resultatCommentaire === null || indicateurValeur.resultatCommentaire === '') && + (indicateurValeur.objectifCommentaire === null || indicateurValeur.objectifCommentaire === '') + ){ + if(indicateurValeur.id){ + await dbClient + .from('indicateur_valeur') + .delete() + .eq('id', indicateurValeur.id); + } + return null; + } + let {annee, ...rest} = indicateurValeur; + const toUpsert = { + ...rest, + dateValeur : new Date(indicateurValeur.annee, 0, 1).toLocaleDateString('sv-SE'), + source : undefined, + metadonneeId : rest.source?.id || null + } + try { + const {data, error} = await dbClient + .from('indicateur_valeur') + .upsert(objectToSnake(toUpsert) as TablesInsert<'indicateur_valeur'>) + .select('id'); + return data && data.length>0? data[0].id : null; + } catch (error) { + throw error + } +} + +/** + * Modifie les thématiques d'un indicateur + * @param dbClient client supabase + * @param indicateur indicateur concerné + * @param thematiques thématiques à modifier + */ +export async function upsertThematiques( + dbClient : DBClient, + indicateur : IndicateurDefinition, + thematiques : Thematique[], +) { + if(indicateur.estPerso){ + // Supprime les liens vers les thématiques qui ne sont plus concernés + await dbClient + .from('indicateur_thematique') + .delete() + .eq('indicateur_id', indicateur.id) + .not( + 'thematique_id', + 'in', + `(${thematiques.map(t => t.id).join(',')})` + ); + + // Fait les nouveaux liens entre l'indicateur et les thématiques + await dbClient + .from('indicateur_thematique') + .upsert( + thematiques.map(t => ({thematique_id: t.id, indicateur_id : indicateur.id})), + {onConflict: 'indicateur_id,thematique_id'} + ); + } +} + +/** + * Modifie les services d'un indicateur + * @param dbClient client supabase + * @param indicateur indicateur concerné + * @param collectiviteId identifiant de la collectivité concernée + * @param services services à modifier + */ +export async function upsertServices( + dbClient : DBClient, + indicateur : IndicateurDefinition, + collectiviteId : number, + services : Tag[], +) { + const tagIds: number[] = []; + const newTags : Tag[] = []; + + services.forEach(s => { + if (s.id) { + tagIds.push(s.id as number); + }else if (s.nom) { + newTags.push(s); + } + }); + + // Supprime les services qui ne sont plus concernés + await dbClient + .from('indicateur_service_tag') + .delete() + .eq('indicateur_id', indicateur.id) + .eq('collectivite_id', collectiviteId) + .not( + 'service_tag_id', + 'in', + `(${tagIds.join(',')})` + ); + + // Ajoute les nouveaux tags + const newTagsAdded : Tag[] = await insertTags(dbClient,'service', newTags); + + // Fait les nouveaux liens entre l'indicateur et les pilotes + const toUpsert = tagIds.concat(newTagsAdded.map(t => t.id as number)) + .map(s => ({collectivite_id: collectiviteId, indicateur_id: indicateur.id, service_tag_id : s})); + + await dbClient.from('indicateur_service_tag').upsert(toUpsert, { + onConflict: 'indicateur_id, collectivite_id, service_tag_id' + }); +} + +/** + * Modifie les categories utilisateur d'un indicateur + * @param dbClient client supabase + * @param indicateur indicateur concerné + * @param collectiviteId identifiant de la collectivité concernée + * @param categories categories à modifier + */ +export async function upsertCategoriesUtilisateur( + dbClient : DBClient, + indicateur : IndicateurDefinition, + collectiviteId : number, + categories : Tag[], +) { + const tagIds: number[] = []; + const newTags : Tag[] = []; + const categoriesCollectivite = await selectTags(dbClient, collectiviteId, 'categorie'); + + categories.forEach(s => { + if (s.id) { + tagIds.push(s.id as number); + }else if (s.nom && s.collectiviteId === collectiviteId) { + newTags.push(s); + } + }); + + // Supprime les categories qui ne sont plus concernés + await dbClient + .from('indicateur_categorie_tag') + .delete() + .eq('indicateur_id', indicateur.id) + // Ne supprime que les catégories de la collectivité + .in('categorie_tag_id', categoriesCollectivite.map(c => c.id)) + .not('categorie_tag_id', 'in', `(${tagIds.join(',')})`); + + // Ajoute les nouveaux tags + const newTagsAdded : Tag[] = await insertTags(dbClient,'categorie', newTags); + + // Fait les nouveaux liens entre l'indicateur et les pilotes + const toUpsert = tagIds.concat(newTagsAdded.map(t => t.id as number)) + .map(s => ({indicateur_id: indicateur.id, categorie_tag_id : s})); + + await dbClient.from('indicateur_categorie_tag').upsert(toUpsert, { + onConflict: 'indicateur_id, categorie_tag_id' + }); +} + +/** + * Modifie les pilotes d'un indicateur + * @param dbClient client supabase + * @param indicateur indicateur concerné + * @param collectiviteId identifiant de la collectivité + * @param pilotes liste des pilotes à upsert + */ +export async function upsertPilotes( + dbClient : DBClient, + indicateur : IndicateurDefinition, + collectiviteId : number, + pilotes : Personne[], +){ + const passageIds: number[] = []; + const userIds : string[] = []; + const tagIds: number[] = []; + const newTags : Tag[] = []; + pilotes.forEach(p => { + if (p.idTablePassage){ + passageIds.push(p.idTablePassage); + }else if (p.tagId ) { + tagIds.push(p.tagId as number); + }else if (p.userId) { + userIds.push(p.userId as string); + }else if (p.nom){ + newTags.push({collectiviteId : collectiviteId, nom: p.nom as string}); + } + }); + // Supprime les liens vers les pilotes qui ne sont plus concernés + await dbClient + .from('indicateur_pilote') + .delete() + .eq('indicateur_id', indicateur.id) + .eq('collectivite_id', collectiviteId) + .not('id', 'in',`(${passageIds.join(',')})`); + + // Ajoute les nouveaux tags personne + const newTagsAdded : Tag[] = await insertTags(dbClient, 'personne', newTags); + + // Fait les nouveaux liens entre l'indicateur et les pilotes + const toUpsert = [ + ...userIds + .map(p => ({user_id: p, tag_id: null})), + ...tagIds.concat(newTagsAdded.map(t => t.id as number)) + .map(p => ({user_id: null, tag_id: p})), + ].map(p => ({...p, collectivite_id: collectiviteId, indicateur_id: indicateur.id})); + + // Sauvegarde les nouveaux pilotes + if(toUpsert.length>0){ + await dbClient.from('indicateur_pilote').upsert(toUpsert, { + onConflict: 'indicateur_id, collectivite_id, user_id, tag_id' + }); + } + +} + +/** + * Modifie les fiches d'un indicateur + * @param dbClient client supabase + * @param indicateur indicateur concerné + * @param collectiviteId identifiant de la collectivité + * @param fiches fiches à modifier + */ +export async function upsertFiches( + dbClient : DBClient, + indicateur : IndicateurDefinition, + collectiviteId : number, + fiches : FicheResume[], +) { + const requestCol = await dbClient + .from('fiche_action') + .select('id') + .eq('collectivite_id', collectiviteId); + const fichesCol : number[] = requestCol.data?.map(r=> r.id) || []; + if(fichesCol.length>0){ + // Supprime les liens vers les fiches qui ne sont plus concernés + await dbClient + .from('fiche_action_indicateur') + .delete() + .eq('indicateur_id', indicateur.id) + .in('fiche_id', fichesCol) + .not( + 'fiche_id', + 'in', + `(${fiches.map(f => f.id).join(',')})` + ); + } + + + // Fait les nouveaux liens entre l'indicateur et les fiches + await dbClient + .from('fiche_action_indicateur') + .upsert( + fiches.map(f => ({fiche_id: f.id, indicateur_id : indicateur.id})), + {onConflict: 'indicateur_id,fiche_id'} + ); + +} + +/** + * Modifie les actions d'un indicateur + * @param dbClient client supabase + * @param indicateur indicateur concerné + * @param actions actions à modifier + */ +export async function upsertActions( + dbClient : DBClient, + indicateur : IndicateurDefinition, + actions : Action[], +) { + if(indicateur.estPerso){ + // Supprime les liens vers les actions qui ne sont plus concernés + await dbClient + .from('indicateur_action') + .delete() + .eq('indicateur_id', indicateur.id) + .not( + 'action_id', + 'in', + `(${actions.map(a => a.id).join(',')})` + ); + + // Fait les nouveaux liens entre l'indicateur et les fiches + await dbClient + .from('indicateur_action') + .upsert( + actions.map(a => ({action_id: a.id, indicateur_id : indicateur.id})), + {onConflict: 'indicateur_id,action_id'} + ); + } +} + + +/** + * Applique les valeurs d'une source aux valeurs utilisateurs d'un indicateur + * @param args upsertValeursUtilisateurAvecSourceParametres
      + *
    • dbClient : client supabase
    • + *
    • indicateurId : identifiant de l'indicateur
    • + *
    • collectiviteId: identifiant de la collectivite
    • + *
    • source : source à appliquer
    • + *
    • appliquerResultat : vrai pour appliquer les résultats de la source
    • + *
    • appliquerObjectif : vrai pour appliquer les objectifs de la source
    • + *
    • ecraserResultat : vrai pour écraser les résultats existants utilisateur par ceux de la source
    • + *
    • ecraserObjectif : vrai pour écraser les objectifs existants utilisateur par ceux de la source
    • + *
    + */ +export async function upsertValeursUtilisateurAvecSource( + args : upsertValeursUtilisateurAvecSourceParametres +) { + const valeurs = await getValeursComparaison( + args.dbClient, + args.indicateurId, + args.collectiviteId, + args.source + ); + const valeursToUpsert : Map = new Map(); + if(valeurs){ + if(args.appliquerResultat){ + for(let ligne of valeurs.resultats.lignes){ + // Si nouvelle ligne, ou nouveau résultat qu'on écrase + if(!ligne.idAEcraser || (ligne.conflit && args.ecraserResultat)) { + let valeurToUpsert : Valeur = { + id : ligne.idAEcraser?ligne.idAEcraser:undefined, + indicateurId : args.indicateurId, + annee : ligne.annee, + collectiviteId: args.collectiviteId, + source : null, + resultat: ligne.valeurAAppliquer + } + if(!ligne.idAEcraser) valeurToUpsert.resultatCommentaire = `Copié de la source ${args.source}`; + valeursToUpsert.set(ligne.annee, valeurToUpsert); + } + } + } + if(args.appliquerObjectif){ + for(let ligne of valeurs.objectifs.lignes){ + if(!ligne.idAEcraser || (ligne.conflit && args.ecraserObjectif)) { + const valeurFromResultat = valeursToUpsert.get(ligne.annee); + let valeurToUpsert : Valeur = valeurFromResultat? valeurFromResultat : + { + id : ligne.idAEcraser, + indicateurId : args.indicateurId, + annee : ligne.annee, + collectiviteId: args.collectiviteId, + source : null + }; + valeurToUpsert.objectif = ligne.valeurAAppliquer; + if(!ligne.idAEcraser) valeurToUpsert.objectifCommentaire = `Copié de la source ${args.source}`; + valeursToUpsert.set(ligne.annee, valeurToUpsert) + } + } + } + + for(let valeurToUpsert of valeursToUpsert.values()){ + // TODO faire un upsert de plusieurs valeurs en une fois + await upsertIndicateurValeur(args.dbClient, valeurToUpsert); + } + } +} + + diff --git a/packages/api/src/indicateurs/actions/source.fetch.test.ts b/packages/api/src/indicateurs/actions/source.fetch.test.ts new file mode 100644 index 0000000000..79680d6131 --- /dev/null +++ b/packages/api/src/indicateurs/actions/source.fetch.test.ts @@ -0,0 +1,21 @@ +import {beforeAll, expect, test} from "vitest"; +import {signIn, signOut} from "../../tests/auth"; +import {testReset} from "../../tests/testReset"; +import {selectThematiques} from "../../shared/actions/thematique.fetch"; +import {dbAdmin, supabase} from "../../tests/supabase"; +import {selectSources} from "./source.fetch"; + +beforeAll(async () => { + await signIn('yolododo'); + await testReset(); + + return async () => { + await signOut(); + }; +}); + +test('Test selectSources', async () => { + const data = await selectSources(supabase); + expect(data!).not.toBeNull(); + expect(data!).toHaveLength(4); +}); \ No newline at end of file diff --git a/packages/api/src/indicateurs/actions/source.fetch.ts b/packages/api/src/indicateurs/actions/source.fetch.ts new file mode 100644 index 0000000000..4bf67c478f --- /dev/null +++ b/packages/api/src/indicateurs/actions/source.fetch.ts @@ -0,0 +1,15 @@ +import {DBClient} from "../../typeUtils"; +import {Source} from "../domain/source.schema"; + +/** + * Recupère les sources + * @param dbClient client supabase + * @return liste des sources existantes + */ +export async function selectSources(dbClient : DBClient): Promise{ + const {data, error} = await dbClient + .from('indicateur_source') + .select(); + + return data ? data as Source[] : []; +} \ No newline at end of file diff --git a/packages/api/src/indicateurs/domain/categorie.schema.ts b/packages/api/src/indicateurs/domain/categorie.schema.ts new file mode 100644 index 0000000000..0bd8907ffd --- /dev/null +++ b/packages/api/src/indicateurs/domain/categorie.schema.ts @@ -0,0 +1,13 @@ +import {z} from 'zod'; +import {tagSchema} from "../../shared/domain/tag.schema"; + +/** + * Schéma zod d'une catégorie d'indicateur (type et programmes) + */ +export const categorieSchema = + tagSchema.omit({collectiviteId: true}); + +/** + * Type TS d'une catégorie d'indicateur (type et programmes) + */ +export type Categorie = z.input; diff --git a/packages/api/src/indicateurs/domain/definition.schema.ts b/packages/api/src/indicateurs/domain/definition.schema.ts new file mode 100644 index 0000000000..5d49b90f9c --- /dev/null +++ b/packages/api/src/indicateurs/domain/definition.schema.ts @@ -0,0 +1,160 @@ +import {z} from 'zod'; +import {valeurSchema} from "./valeur.schema"; +import {tagSchema} from "../../shared/domain/tag.schema"; +import {actionSchema} from "../../referentiel/domain/action.schema"; +import {categorieSchema} from "./categorie.schema"; +import {thematiqueSchema} from "../../shared/domain/thematique.schema"; +import {resumeSchema} from "../../fiche_actions/domain/resume.schema"; +import {personneSchema} from "../../shared/domain/personne.schema"; + +/** + * Schéma zod à fusionner à une définition pour avoir les valeurs + */ +const plusValeur = z.object({ + valeurs : valeurSchema.array() +}); + +/** + * Schéma zod à fusionner à une définition pour avoir les données annexes aux indicateurs + */ +const plusDetailsCollectivite = z.object({ + services : z.number().array(), // Lise d'id + pilotes : personneSchema.array(), + fiches : resumeSchema.array(), + fichesNonClassees : resumeSchema.array(), + categoriesUtilisateur : tagSchema.array() +}); + +/** + * Schéma zod de la définition d'un indicateur à créer + */ +export const indicateurDefinitionSchemaInsert = z.object ({ + titre : z.string(), + collectiviteId : z.number(), + unite : z.string().optional(), + description : z.string().optional(), + thematiques : thematiqueSchema.array().optional() +}); + +/** + * Type TS de la définition d'un indicateur à créer + */ +export type IndicateurDefinitionInsert = z.input; + + +/** + * Schéma zod d'un élément d'une liste d'indicateurs + */ +export const indicateurListItemSchema = z.object ({ + id : z.number(), + titre : z.string() +}); +/** + * Type TS d'un élément d'une liste d'indicateurs + */ +export type IndicateurListItem = z.input; + +/** + * Schéma zod d'un indicateur pour un affichage en graphique + */ +export const IndicateurChartInfoSchema = z.object ({ + id : z.number(), + titre: z.string(), + titreLong : z.string().nullable(), + unite: z.string(), + rempli: z.boolean(), + confidentiel: z.boolean(), + participationScore: z.boolean(), + sansValeur : z.boolean().nullable(), + enfants: z.object({ + id : z.number(), + rempli : z.boolean() + }).array().nullable(), + count: z.number().nullable(), + total: z.number().nullable(), + valeurs : z.object({ + annee : z.number(), + resultat : z.number(), + objectif : z.number() + }).array().nullable() +}); + +/** + * Type TS d'un indicateur pour un affichage en graphique + */ +export type IndicateurChartInfo = z.input; + +/** + * Schéma zod de la définition d'un indicateur + */ +export const definitionSchema = z.object({ + id : z.number().readonly(), + groupementId : z.number().nullable(), + collectiviteId : z.number().nullable(), // perso + identifiant : z.string().nullable().readonly(), + titre : z.string(), + titreLong : z.string().nullable(), + description : z.string().nullable(), + unite : z.string(), + borneMin : z.number().nullable(), + borneMax : z.number().nullable(), + participationScore : z.boolean().readonly(), + sansValeur : z.boolean(), + commentaire : z.string().nullable(), + confidentiel : z.boolean(), + rempli : z.boolean().readonly(), + estPerso : z.boolean().readonly(), + actions : actionSchema.array(), + type : categorieSchema.readonly(), + programmes : categorieSchema.array().readonly(), + prioritaire : z.boolean().readonly(), + thematiques : thematiqueSchema.array(), + enfants : z.number().array().readonly(), + parents : z.number().array().readonly() +}); +/** + * Type TS de la définition d'un indicateur + */ +export type IndicateurDefinition = z.input; + +/** + * Schéma zod d'un indicateur avec toutes les informations annexes liées + */ +export const definitionCompleteSchema = definitionSchema + .merge(plusValeur) + .merge(plusDetailsCollectivite); +/** + * Type TS d'un indicateur avec toutes les informations annexes liées + */ +export type IndicateurDefinitionComplet = z.input; + +/** + * Schéma zod d'un indicateur personnalisé + */ +export const definitionPersonaliseSchema = definitionSchema + .omit({ + identifiant : true, + type : true, + programmes : true, + sansValeur: true, + participationScore: true, + enfants : true, + parents : true + }); +/** + * Type TS d'un indicateur personnalisé + */ +export type IndicateurDefinitionPersonalise = z.input; + +/** + * Schéma zod d'un indicateur prédéfini + */ +export const definitionPredefiniSchema = definitionSchema + .omit({ + collectiviteId : true + }); +/** + * Type TS d'un indicateur prédéfini + */ +export type IndicateurDefinitionPredefini = z.input; + diff --git a/packages/api/src/indicateurs/indicateurs.list/domain/fetch_options.schema.ts b/packages/api/src/indicateurs/domain/fetch_options.schema.ts similarity index 70% rename from packages/api/src/indicateurs/indicateurs.list/domain/fetch_options.schema.ts rename to packages/api/src/indicateurs/domain/fetch_options.schema.ts index f3d2b53e03..f145d2a369 100644 --- a/packages/api/src/indicateurs/indicateurs.list/domain/fetch_options.schema.ts +++ b/packages/api/src/indicateurs/domain/fetch_options.schema.ts @@ -1,13 +1,14 @@ import {z} from 'zod'; -import {filtreRessourceLieesSchema} from '../../../collectivites/shared/domain/filtre_ressource_liees.schema'; -import {getQueryOptionsSchema} from '../../../shared/domain/query_options.schema'; +import {filtreRessourceLieesSchema} from '../../collectivites/shared/domain/filtre_ressource_liees.schema'; +import {getQueryOptionsSchema} from '../../shared/domain/query_options.schema'; export const filtreSpecifiqueSchema = z.object({ - estComplet: z.boolean().optional(), + estComplet: z.boolean().optional(), }); export type FiltreSpecifique = z.infer; + /** * Schema de filtre pour le fetch des indicateurs. */ @@ -19,7 +20,7 @@ export const filtreSchema = filtreRessourceLieesSchema servicePiloteIds: true, thematiqueIds: true, }) - .merge(filtreSpecifiqueSchema); + .merge(filtreSpecifiqueSchema); export type Filtre = z.infer; diff --git a/packages/api/src/indicateurs/domain/source.schema.ts b/packages/api/src/indicateurs/domain/source.schema.ts new file mode 100644 index 0000000000..f9b0c0ba30 --- /dev/null +++ b/packages/api/src/indicateurs/domain/source.schema.ts @@ -0,0 +1,34 @@ +import {z} from 'zod'; +import {valeurSchema} from "./valeur.schema"; + +/** + * Schéma zod des métadonnées d'une source pour une valeur d'indicateur + */ +export const sourceMetadonneeSchema = z.object({ + id : z.number(), + source : z.string(), + dateVersion : z.string().datetime(), + nomDonnee : z.string().nullable(), + diffuseur : z.string().nullable(), + producteur : z.string().nullable(), + methodologie : z.string().nullable(), + limites : z.string().nullable() +}); +/** + * Type TS des métadonnées d'une source pour une valeur d'indicateur + */ +export type SourceMetadonnee = z.input; + +/** + * Schéma zod d'une source de donnée + */ +export const sourceSchema = z.object ({ + id : z.string(), + libelle : z.string(), + ordreAffichage : z.number().optional().nullable() +}); +/** + * Type TS d'une source de donnée + */ +export type Source = z.input; + diff --git a/packages/api/src/indicateurs/domain/valeur.schema.ts b/packages/api/src/indicateurs/domain/valeur.schema.ts new file mode 100644 index 0000000000..15315e04bc --- /dev/null +++ b/packages/api/src/indicateurs/domain/valeur.schema.ts @@ -0,0 +1,56 @@ +import {z} from 'zod'; +import {sourceMetadonneeSchema} from "./source.schema"; + +/** + * Schéma zod d'une valeur d'indicateur + */ +export const valeurSchema = z.object({ + id : z.number().optional().nullable(), + collectiviteId : z.number(), + indicateurId : z.number(), + source : sourceMetadonneeSchema.optional().nullable(), + resultat : z.number().optional().nullable(), + objectif : z.number().optional().nullable(), + estimation : z.number().optional().nullable(), + resultatCommentaire : z.string().optional().nullable(), + objectifCommentaire : z.string().optional().nullable(), + annee : z.number() +}); + +/** + * Type TS d'une valeur d'indicateur + */ +export type Valeur = z.input; + + +/** + * Schéma zod d'une ligne de comparaison entre les valeurs utilisateurs et source + */ +export const valeurComparaisonLigneSchema = z.object({ + conflit: z.boolean(), + annee : z.number(), + idAEcraser : z.number().nullable(), + idAAppliquer : z.number(), + valeurAEcraser: z.number().nullable(), + valeurAAppliquer: z.number(), + source : z.string() +}); + +/** + * Type TS d'une ligne de comparaison entre les valeurs utilisateurs et source + */ +export type ValeurComparaisonLigne = z.input; + +/** + * Schéma zod pour la comparaison des valeurs utilisateurs avec les valeurs d'une source + */ +export const valeurComparaisonSchema = z.object({ + lignes : valeurComparaisonLigneSchema.array(), + conflits : z.number(), + ajouts : z.number() +}); + +/** + * Type TS pour la comparaison des valeurs utilisateurs avec les valeurs d'une source + */ +export type ValeurComparaison = z.input; \ No newline at end of file diff --git a/packages/api/src/indicateurs/fetchFilteredIndicateurs.test.ts b/packages/api/src/indicateurs/fetchFilteredIndicateurs.test.ts deleted file mode 100644 index 612a03b579..0000000000 --- a/packages/api/src/indicateurs/fetchFilteredIndicateurs.test.ts +++ /dev/null @@ -1,295 +0,0 @@ -import {assert} from 'chai'; -import {signIn, signOut} from '../tests/auth'; -import {testReset} from '../tests/testReset'; -import {supabase} from '../tests/supabase'; -import { - fetchFilteredIndicateurs, - Filters, - Subset, -} from './fetchFilteredIndicateurs'; -import {Database} from '../database.types'; - -type TableName = keyof Database['public']['Tables']; - -const FIXTURE = { - indicateur_pilote: [ - { - collectivite_id: 1, - indicateur_id: 'eci_24', - user_id: '4ecc7d3a-7484-4a1c-8ac8-930cdacd2561', - }, - { - indicateur_id: 'eci_24', - collectivite_id: 1, - tag_id: 1, - }, - { - indicateur_id: 'eci_24', - collectivite_id: 1, - tag_id: 1, - }, - ], - indicateur_service_tag: [ - { - indicateur_id: 'eci_24', - collectivite_id: 1, - service_tag_id: 1, - }, - ], - fiche_action_indicateur: [ - { - indicateur_id: 'eci_24', - fiche_id: 1, - }, - ], - indicateur_personnalise_thematique: [ - { - indicateur_id: 0, - thematique_id: 8, - }, - ], - indicateur_confidentiel: [ - { - indicateur_id: 'cae_1.a', - collectivite_id: 1, - }, - { - indicateur_id: 'cae_2.b', - collectivite_id: 1, - }, - { - indicateur_perso_id: 0, - }, - ], -} as Partial< - Record ->; - -// wrap la fonction à tester pour ne pas avoir à repréciser toujours les mêmes paramètres -const fetchIndicateurs = (subset: Subset, filters: Filters) => - fetchFilteredIndicateurs(supabase, 1, subset, filters); - -describe('Confidentialité', async () => { - before(async () => { - await testReset(); - }); - - it('Devrait pouvoir insérer des résultats', async () => { - await signIn('yolododo'); - await supabase.from('indicateur_resultat').upsert([ - { - indicateur_id: 'eci_8', - collectivite_id: 1, - annee: 2023, - valeur: 999, - }, - { - indicateur_id: 'eci_8', - collectivite_id: 1, - annee: 2024, - valeur: 666, - }, - ]); - - await supabase - .from('indicateur_confidentiel') - .upsert([{indicateur_id: 'cae_8', collectivite_id: 1}]); - - const {data} = await supabase - .from('indicateur_resultat') - .select('*') - .eq('collectivite_id', 1) - .eq('indicateur_id', 'cae_8'); - - assert.equal(data?.length, 2); - await signOut(); - }); - - it("Devrait ne pas pouvoir lire des valeurs des collectivités sur lesquelles je n'ai pas de droits", async () => { - await signIn('yulududu'); - const {data} = await supabase - .from('indicateur_resultat') - .select('*') - .eq('collectivite_id', 1) - .eq('indicateur_id', 'cae_8'); - - assert.equal(data?.length, 1); - await signOut(); - }); -}); - -describe('Filtrer les indicateurs', async () => { - before(async function () { - await testReset(); - await signIn('yolododo'); - - // insère les données de test - await Promise.all( - Object.entries(FIXTURE).map(async ([tableName, entries]) => { - console.log(`insert fixture into ${tableName}`); - const upsert = await supabase - .from(tableName as TableName) - .upsert(entries); - assert.equal( - upsert.status, - 201, - `insertion de ${JSON.stringify(entries)} dans ${tableName}` - ); - }) - ); - }); - - it('par le sous-ensemble ECi', async () => { - const {status, data} = await fetchIndicateurs('eci', {}); - assert.equal(status, 200); - assert.closeTo(data.length, 35, 3, 'plus ou moins 35 ind. ECi'); - }); - - it('par le sous-ensemble ECi et par texte (dans le titre ou la description)', async () => { - const {status, data} = await fetchIndicateurs('eci', { - text: 'activité', - }); - assert.equal(status, 200); - - const total = data.length; - const count = data.filter(d => d.nom.includes('Activité')).length; - - assert.isAbove( - total, - count, - "nb. d'occurences dans le nom ou la description > nb. dans le nom seulement" - ); - assert.closeTo( - total, - 5, - 2, - 'plus ou moins 5 ind. ECi contiennent le texte recherché dans leur nom ou leur description' - ); - assert.closeTo( - count, - 4, - 2, - 'plus ou moins 4 ind. ECi contiennent le texte recherché dans leur nom' - ); - }); - - it('par le sous-ensemble ECi et par identifiant', async () => { - const {status, data} = await fetchIndicateurs('eci', { - text: '#10', - }); - assert.equal(status, 200); - assert.equal(data.length, 1); - assert.equal(data[0].id, 'eci_10'); - }); - - it('par le sous-ensemble ECi et par une thématique', async () => { - const {status, data} = await fetchIndicateurs('eci', { - thematique_ids: [5], - }); - assert.equal(status, 200); - assert.equal(data.length, 4, 'ind. ECi dans la thématique'); - }); - - it('par le sous-ensemble ECi et par plusieurs thématiques', async () => { - const {status, data} = await fetchIndicateurs('eci', { - thematique_ids: [5, 4], - }); - assert.equal(status, 200); - assert.closeTo( - data.length, - 17, - 3, - 'plus ou moins 17 ind. ECi dans les thématiques' - ); - }); - - it('par le sous-ensemble ECi et par personne pilote', async () => { - const {status, data} = await fetchIndicateurs('eci', { - pilote_user_ids: ['4ecc7d3a-7484-4a1c-8ac8-930cdacd2561'], - }); - assert.equal(status, 200); - assert.equal(data.length, 1); - }); - - it('par le sous-ensemble ECi et par tag de personne pilote', async () => { - const {status, data} = await fetchIndicateurs('eci', { - pilote_tag_ids: [1], - }); - assert.equal(status, 200); - assert.equal(data.length, 1); - }); - - it('par le sous-ensemble ECi et par personne et tag pilote', async () => { - const {status, data} = await fetchIndicateurs('eci', { - pilote_user_ids: ['4ecc7d3a-7484-4a1c-8ac8-930cdacd2561'], - pilote_tag_ids: [1], - }); - assert.equal(status, 200); - assert.equal(data.length, 1); - }); - - it('par le sous-ensemble ECi et par action du référentiel', async () => { - const {status, data} = await fetchIndicateurs('eci', { - action_id: 'eci_1.2', - }); - assert.equal(status, 200); - assert.equal(data.length, 2); - }); - - it("par le sous-ensemble ECi et par id de plan d'actions", async () => { - const {status, data} = await fetchIndicateurs('eci', { - plan_ids: [1], - }); - assert.equal(status, 200); - assert.equal(data.length, 1); - }); - - it('par le sous-ensemble ECi et par id de service', async () => { - const {status, data} = await fetchIndicateurs('eci', { - service_ids: [1], - }); - assert.equal(status, 200); - assert.equal(data.length, 1); - }); - - it('par le sous-ensemble CAE', async () => { - const {status, data} = await fetchIndicateurs('cae', {}); - assert.equal(status, 200); - assert.closeTo(data.length, 65, 3); - }); - - it('par le sous-ensemble CAE et par le flag "participation au score"', async () => { - const {status, data} = await fetchIndicateurs('cae', { - participation_score: true, - }); - assert.equal(status, 200); - assert.closeTo(data.length, 44, 3); - }); - - it('par le sous-ensemble CAE et l\'état "complété"', async () => { - const {status, data} = await fetchIndicateurs('cae', {rempli: true}); - assert.equal(status, 200); - assert.closeTo(data.length, 2, 1); - }); - - it('par le sous-ensemble CAE et l\'état "confidentiel"', async () => { - const {status, data} = await fetchIndicateurs('cae', { - confidentiel: true, - }); - assert.equal(status, 200); - assert.equal(data.length, 2); - }); - - it('par indicateur perso et confidentiel', async () => { - const {status, data} = await fetchIndicateurs('perso', { - confidentiel: true, - }); - assert.equal(status, 200); - assert.equal(data.length, 1); - }); - - after(async function () { - // runs once after the last test in this block - await signOut(); - }); -}); diff --git a/packages/api/src/indicateurs/fetchFilteredIndicateurs.ts b/packages/api/src/indicateurs/fetchFilteredIndicateurs.ts deleted file mode 100644 index 1567cc0266..0000000000 --- a/packages/api/src/indicateurs/fetchFilteredIndicateurs.ts +++ /dev/null @@ -1,284 +0,0 @@ -import {Enums, DBClient} from '../typeUtils'; -import {unaccent} from '../utils/unaccent'; -import {FetchOptions} from './indicateurs.list/domain/fetch_options.schema'; - -// type renvoyé par la fonction de fetch -type IndicateurItemFetched = { - indicateur_id: string; - indicateur_perso_id: number; - nom: string; -}; - -export type IndicateurItem = { - id: string | number; - nom: string; -}; - -// Sous-ensemble d'indicateurs -export type Subset = 'cae' | 'eci' | 'crte' | 'perso' | 'cles' | 'selection'; - -// Options de filtrage -export type Filters = { - thematique_ids?: number[]; - action_id?: string; - plan_ids?: number[]; - pilote_user_ids?: string[]; - pilote_tag_ids?: number[]; - service_ids?: number[]; - type?: Enums<'indicateur_referentiel_type'>[]; - participation_score?: boolean; - rempli?: boolean; - confidentiel?: boolean; - fiches_non_classees?: boolean; - text?: string; - sort?: { - field: keyof Filters; - direction: 'asc' | 'desc'; - }; -}; - -// Associe les parties requises aux champs sur lesquels on filtre. -const filterParts: {[key in keyof Filters]?: string} = { - thematique_ids: 'thematiques!inner()', - plan_ids: 'axes!inner()', - pilote_user_ids: 'pilotes!inner()', - pilote_tag_ids: 'pilotes!inner()', - service_ids: 'services!inner()', - action_id: 'indicateur_action!inner()', - fiches_non_classees: 'fiches_non_classees!inner()', -}; - -// Hack temporaire en attendant le nouveau modèle indicateurs -// pour afficher des indicateurs spécifiques à certaines collectivités -const sydevCollectiviteIds = [ - 5285, 5286, 5287, 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297, - 5298, 5299, 5300, 5301, 5302, 5303, 5540, -]; - -/** - * Charge une liste d'indicateurs en fonction des paramètres de filtrage - * - * @param subset Sous-ensemble voulu (clés, sélection, cae, eci, etc.) - * @param filters Paramètres de filtrage - * @returns Liste d'id de définitions d'indicateur - */ -export const fetchFilteredIndicateurs = async ( - dbClient: DBClient, - collectivite_id: number, - subset: Subset | null, - filters: Filters -) => { - const parts = new Set(); - const isPerso = subset === 'perso'; - - // cas des indicateurs prédéfinis - if (!isPerso && (subset || filters.text?.startsWith('#'))) { - parts.add('definition_referentiel!inner(programmes)'); - } - - // ajoute les relations supplémentaires en fonction des filtres voulus - let key: keyof Filters; - for (key in filters) { - if ( - (filters[key] as Array)?.length || - (filters[key] !== undefined && !Array.isArray(filters[key])) - ) { - const part = filterParts[key]; - if (part) parts.add(part); - } - } - - // construit la requête - const query = dbClient - // depuis la vue des définitions des indicateurs personnalisés et prédéfinis - .from('indicateur_definitions') - .select( - [ - 'indicateur_perso_id', - 'indicateur_id', - // le nom - 'nom', - // et les relations supplémentaires nécessaires au filtrage - ...parts, - ].join(',') - ) - // filtre toujours sur la collectivité - .eq('collectivite_id', collectivite_id); - - // Hack temporaire en attendant le nouveau modèle indicateurs - // pour afficher des indicateurs spécifiques à certaines collectivités - if (!sydevCollectiviteIds.includes(collectivite_id) && !isPerso) { - query.or('indicateur_id.is.null, indicateur_id.not.like.s_%'); - } - - // filtre par sous-ensemble voulu - if (isPerso) { - query.not('indicateur_perso_id', 'is', null); - } else { - if (subset === 'selection') { - query.is('definition_referentiel.selection', true); - } else if (subset === 'cles') { - query.contains('definition_referentiel.programmes', ['clef']); - } else if (subset !== null) { - query.contains('definition_referentiel.programmes', [subset]); - } - } - - // recherche par texte - const text = filters.text?.trim() || ''; - let searchById = false; - if (text) { - // par identifiant si le texte recherché commence par un # - if (text.startsWith('#') && !isPerso) { - const idToSearch = text.replaceAll(/[#\s]/g, ''); - if (idToSearch) { - searchById = true; - query.ilike('definition_referentiel.identifiant', `${idToSearch}%`); - } - } else { - // ou dans le nom ou la description - query.textSearch( - 'cherchable', - unaccent(text) - .split(' ') - .map(s => s.trim()) - .filter(s => !!s) - .map(s => `"${s}":*`) - .join(' & ') - ); - } - } - - // détermine certains des filtres complémentaires à appliquer : - // si une de ces conditions est vraie alors le filtre "parent uniquement" sera désactivé - const filtrerPar = { - participationAuScore: - subset === 'cae' && filters.participation_score !== undefined, - confidentiel: filters.confidentiel, - planAction: !!filters.plan_ids?.length, - service: !!filters.service_ids?.length, - personne: - !!filters.pilote_user_ids?.length || !!filters.pilote_tag_ids?.length, - fichesNonClassees: !!filters.fiches_non_classees, - }; - - // sélectionne uniquement les indicateurs parent (sauf pour CRTE et perso ou si on fait - // une recherche par id ou si un des filtres complémentaires est actif) - const filtrerParParent = - subset !== null && - subset !== 'crte' && - subset !== 'perso' && - !searchById && - !Object.values(filtrerPar).find(v => !!v); - - if (filtrerParParent) { - query.is('definition_referentiel.parent', null); - } - - // par thématique - if (filters.thematique_ids?.length) { - query.in('thematiques.id', filters.thematique_ids); - } - - // par action du référentiel (ne remonte que les parents) - if (filters.action_id) { - query.in('indicateur_action.action_id', [filters.action_id]); - } - - // par plan - if (filtrerPar.planAction) { - query.in('axes.plan', filters.plan_ids!); - } - - // par service pilote - if (filtrerPar.service) { - query.in('services.service_tag_id', filters.service_ids!); - } - - // par type - if (filters.type?.length) { - query.in('definition_referentiel.type', filters.type); - } - - // participation au score CAE - if (filtrerPar.participationAuScore) { - query.is( - 'definition_referentiel.participation_score', - filters.participation_score! - ); - } - - // filtre les indicateurs complétés / à compléter - if (filters.rempli !== undefined) { - query.is('rempli', filters.rempli!); - } - - // filtre les indicateurs confidentiels - if (filters.confidentiel !== undefined) { - query.is('confidentiel', filters.confidentiel!); - } - - // par personne pilote - if (filtrerPar.personne) { - const filterParams: string[] = []; - - // cumule les user_ids - filters.pilote_user_ids?.forEach(user_id => { - filterParams.push(`user_id.eq.${user_id}`); - }); - // et les tag_ids - filters.pilote_tag_ids?.forEach(tag_id => { - filterParams.push(`tag_id.eq.${tag_id}`); - }); - - // que l'on fusionne dans un `or` sur la relation calculée - query.or(filterParams.join(','), {foreignTable: 'pilotes'}); - } - - /** Par défaut tri par ordre alphabétique */ - const orderByOptions = [ - { - field: 'nom', - direction: 'asc', - }, - ]; - - if (filters.sort) { - orderByOptions.unshift(filters.sort); - } - - orderByOptions.forEach(sort => { - query.order(sort.field, {ascending: sort.direction === 'asc'}); - }); - - const {data, ...remaining} = await query.returns(); - const rows = data || []; - - return { - ...remaining, - data: rows - // et conserve un id unique - .map(({indicateur_id, indicateur_perso_id, ...otherProps}) => ({ - id: indicateur_id || indicateur_perso_id, - ...otherProps, - })), - }; -}; - -export function moduleOptionsToFilters( - options: Pick -): Filters { - const {filtre} = options; - - return { - thematique_ids: filtre.thematiqueIds, - plan_ids: filtre.planActionIds, - pilote_user_ids: filtre.utilisateurPiloteIds, - pilote_tag_ids: filtre.personnePiloteIds, - service_ids: filtre.servicePiloteIds, - rempli: filtre.estComplet, - // sort: sort?.map(({field, direction}) => ({field, direction}))[0], - // page, - // limit, - }; -} diff --git a/packages/api/src/indicateurs/index.ts b/packages/api/src/indicateurs/index.ts index d3b5736d62..a9a7bbd9fe 100644 --- a/packages/api/src/indicateurs/index.ts +++ b/packages/api/src/indicateurs/index.ts @@ -1,2 +1,6 @@ -export {fetchFilteredIndicateurs} from './fetchFilteredIndicateurs'; -export type {Filters, IndicateurItem, Subset} from './fetchFilteredIndicateurs'; +export {fetchFilteredIndicateurs} from './actions/fetchFilteredIndicateurs'; +export type {Filters, Subset} from './actions/fetchFilteredIndicateurs'; +export * as fetch from './actions/indicateur.fetch'; +export * as save from './actions/indicateur.save'; +export * as delete from './actions/indicateur.delete'; +export * as domain from './domain'; diff --git a/packages/api/src/referentiel/domain/action.schema.ts b/packages/api/src/referentiel/domain/action.schema.ts new file mode 100644 index 0000000000..2b93cb9c76 --- /dev/null +++ b/packages/api/src/referentiel/domain/action.schema.ts @@ -0,0 +1,16 @@ +import {z} from 'zod'; +import {referentielSchema} from "./enum.schema"; + +/** + * Schéma zod d'une action du référentiel + */ +export const actionSchema = z.object({ + id : z.string(), + parent : z.string().nullable(), + referentiel : referentielSchema +}); + +/** + * Type TS d'une action du référentiel + */ +export type Action = z.input; \ No newline at end of file diff --git a/packages/api/src/referentiel/domain/enum.schema.ts b/packages/api/src/referentiel/domain/enum.schema.ts new file mode 100644 index 0000000000..897292260a --- /dev/null +++ b/packages/api/src/referentiel/domain/enum.schema.ts @@ -0,0 +1,6 @@ +import {z} from "zod"; + +/** + * Schéma zod de l'énum des référentiels + */ +export const referentielSchema = z.enum(['eci', 'cae']); diff --git a/packages/api/src/shared/actions/personne.fetch.test.ts b/packages/api/src/shared/actions/personne.fetch.test.ts new file mode 100644 index 0000000000..03101ce0f3 --- /dev/null +++ b/packages/api/src/shared/actions/personne.fetch.test.ts @@ -0,0 +1,20 @@ +import {beforeAll, expect, test} from "vitest"; +import {signIn, signOut} from "../../tests/auth"; +import {testReset} from "../../tests/testReset"; +import {selectCategories} from "../../indicateurs/actions/categorie.fetch"; +import {supabase} from "../../tests/supabase"; +import {selectPersonnes} from "./personne.fetch"; + +beforeAll(async () => { + await signIn('yolododo'); + await testReset(); + + return async () => { + await signOut(); + }; +}); + +test('Test selectPersonnes', async () => { + const data = await selectPersonnes(supabase, 1); + expect(data!).not.toHaveLength(0); +}); \ No newline at end of file diff --git a/packages/api/src/shared/actions/personne.fetch.ts b/packages/api/src/shared/actions/personne.fetch.ts new file mode 100644 index 0000000000..4fbdc39f1f --- /dev/null +++ b/packages/api/src/shared/actions/personne.fetch.ts @@ -0,0 +1,19 @@ +import {objectToCamel} from "ts-case-convert"; +import {DBClient} from "../../typeUtils"; +import {Personne} from "../domain/personne.schema"; + +/** + * Récupère les personnes d'une collectivité + * @param dbClient client supabase + * @param collectiviteId identifiant de la collectivité + * @return liste de personnes + */ +export async function selectPersonnes( + dbClient : DBClient, + collectiviteId : number +): Promise{ + // TODO ne plus utiliser une rpc postgresql + const {data, error} = await dbClient + .rpc('personnes_collectivite', {collectivite_id : collectiviteId}); + return data ? objectToCamel(data) as Personne[] : []; +} \ No newline at end of file diff --git a/packages/api/src/shared/actions/tag.fetch.test.ts b/packages/api/src/shared/actions/tag.fetch.test.ts new file mode 100644 index 0000000000..421fa81fa9 --- /dev/null +++ b/packages/api/src/shared/actions/tag.fetch.test.ts @@ -0,0 +1,20 @@ +import {beforeAll, expect, test} from "vitest"; +import {signIn, signOut} from "../../tests/auth"; +import {testReset} from "../../tests/testReset"; +import {selectCategories} from "../../indicateurs/actions/categorie.fetch"; +import {supabase} from "../../tests/supabase"; +import {selectTags} from "./tag.fetch"; + +beforeAll(async () => { + await signIn('yolododo'); + await testReset(); + + return async () => { + await signOut(); + }; +}); + +test('Test selectTags', async () => { + const def = await selectTags(supabase, 1, 'service'); + expect(def!).not.toHaveLength(0); +}); \ No newline at end of file diff --git a/packages/api/src/shared/actions/tag.fetch.ts b/packages/api/src/shared/actions/tag.fetch.ts new file mode 100644 index 0000000000..c8ae7e35e5 --- /dev/null +++ b/packages/api/src/shared/actions/tag.fetch.ts @@ -0,0 +1,23 @@ +import {DBClient} from "../../typeUtils"; +import {Tag, TypeTag} from "../domain/tag.schema"; +import {objectToCamel} from "ts-case-convert"; + +/** + * Récupère les tags d'une collectivité + * @param dbClient client supabase + * @param collectiviteId identifiant de la collectivité + * @param typeTag type de tag + * @return liste de tags + */ +export async function selectTags( + dbClient : DBClient, + collectiviteId : number, + typeTag : TypeTag +): Promise{ + const {data, error} = await dbClient + .from(`${typeTag}_tag` as const) + .select('id, nom, collectivite_id') + .eq('collectivite_id', collectiviteId); + + return data ? objectToCamel(data) as Tag[] : []; +} \ No newline at end of file diff --git a/packages/api/src/shared/actions/tag.save.test.ts b/packages/api/src/shared/actions/tag.save.test.ts new file mode 100644 index 0000000000..c304bae215 --- /dev/null +++ b/packages/api/src/shared/actions/tag.save.test.ts @@ -0,0 +1,29 @@ +import {beforeAll, expect, test} from "vitest"; +import {signIn, signOut} from "../../tests/auth"; +import {testReset} from "../../tests/testReset"; +import {selectCategories} from "../../indicateurs/actions/categorie.fetch"; +import {supabase} from "../../tests/supabase"; +import {insertTags} from "./tag.save"; +import {Tag} from "../domain/tag.schema"; + +beforeAll(async () => { + await signIn('yolododo'); + await testReset(); + + return async () => { + await signOut(); + }; +}); + +test('Test insertTags', async () => { + const toInsert : Tag[] = [{ + nom : 'test', + collectiviteId: 1 + }, + { + nom : 'test2', + collectiviteId: 1 + }]; + const def = await insertTags(supabase, 'categorie', toInsert); + expect(def!).toHaveLength(2); +}); \ No newline at end of file diff --git a/packages/api/src/shared/actions/tag.save.ts b/packages/api/src/shared/actions/tag.save.ts new file mode 100644 index 0000000000..6c7f7f571b --- /dev/null +++ b/packages/api/src/shared/actions/tag.save.ts @@ -0,0 +1,22 @@ +import {DBClient} from "../../typeUtils"; +import {Tag, TypeTag} from "../domain/tag.schema"; +import {objectToCamel, objectToSnake} from "ts-case-convert"; + +/** + * Ajoute des tags + * @param dbClient client supabase + * @param typeTag type de tag + * @param tags listes des tags à ajouter + * @return liste de tags ajoutés avec leur identifiant + */ +export async function insertTags( + dbClient : DBClient, + typeTag : TypeTag, + tags : Tag[] +): Promise{ + const {data, error} = await dbClient + .from(`${typeTag}_tag` as const) + .insert(objectToSnake(tags)) + .select(); + return data ? objectToCamel(data) as Tag[] : []; +} diff --git a/packages/api/src/shared/actions/thematique.fetch.test.ts b/packages/api/src/shared/actions/thematique.fetch.test.ts new file mode 100644 index 0000000000..a682d25656 --- /dev/null +++ b/packages/api/src/shared/actions/thematique.fetch.test.ts @@ -0,0 +1,26 @@ +import {beforeAll, expect, test} from "vitest"; +import {signIn, signOut} from "../../tests/auth"; +import {testReset} from "../../tests/testReset"; +import {supabase} from "../../tests/supabase"; +import {selectSousThematiques, selectThematiques} from "./thematique.fetch"; + +beforeAll(async () => { + await signIn('yolododo'); + await testReset(); + + return async () => { + await signOut(); + }; +}); + +test('Test selectThematiques', async () => { + const data = await selectThematiques(supabase); + expect(data!).not.toBeNull(); + expect(data!).not.toHaveLength(0); +}); + +test('Test selectSousThematiques', async () => { + const data = await selectSousThematiques(supabase, null, true); + expect(data!).not.toBeNull(); + expect(data!).not.toHaveLength(0); +}); \ No newline at end of file diff --git a/packages/api/src/shared/actions/thematique.fetch.ts b/packages/api/src/shared/actions/thematique.fetch.ts new file mode 100644 index 0000000000..6e6a3c7e87 --- /dev/null +++ b/packages/api/src/shared/actions/thematique.fetch.ts @@ -0,0 +1,43 @@ +import {DBClient} from "../../typeUtils"; +import {SousThematique, SousThematiqueId, Thematique} from "../domain/thematique.schema"; + +/** + * Recupère les thématiques + * @param dbClient client supabase + * @return liste de thématiques + */ +export async function selectThematiques(dbClient : DBClient): Promise{ + const {data, error} = await dbClient + .from('thematique') + .select('id, nom'); + + return data ? data as Thematique[] : []; +} + +/** + * Recupère les sous thématiques + * @param dbClient client supabase + * @param thematiqueId identifiant de la thématique parent, null pour récupérer toutes les sous thématiques + * @param lienThematiqueId vrai pour avoir le lien vers la thématique parente sous forme d'identifiant, + * faux pour avoir l'objet complet + * @return liste de sous thématiques + */ +export async function selectSousThematiques( + dbClient : DBClient, + thematiqueId : number | null, + lienThematiqueId : boolean): Promise { + + const colonnes = 'id, nom:sous_thematique, thematique:' +(thematiqueId?'thematique_id':'thematique(*)'); + const query = dbClient + .from('sous_thematique') + .select(colonnes); + if(thematiqueId){ + query.eq('thematique_id', thematiqueId!); + } + const {data, error} = await query.returns(); + if(!data){ + return []; + } + return lienThematiqueId? data as SousThematiqueId[] : data as SousThematique[]; +} + diff --git a/packages/api/src/shared/domain/personne.schema.ts b/packages/api/src/shared/domain/personne.schema.ts new file mode 100644 index 0000000000..6987d01285 --- /dev/null +++ b/packages/api/src/shared/domain/personne.schema.ts @@ -0,0 +1,17 @@ +import {z} from 'zod'; + +/** + * Schéma zod d'une personne avec id du tag ou de l'utilisateur + */ +export const personneSchema = z.object({ + nom : z.string().nullable().optional(), + collectiviteId : z.number(), + tagId : z.number().nullable().optional(), + userId : z.string().nullable().optional(), + idTablePassage : z.number().nullable().optional() +}); + +/** + * Type TS d'une personne avec id du tag ou de l'utilisateur + */ +export type Personne = z.input; \ No newline at end of file diff --git a/packages/api/src/shared/domain/tag.schema.ts b/packages/api/src/shared/domain/tag.schema.ts new file mode 100644 index 0000000000..49febdc0f0 --- /dev/null +++ b/packages/api/src/shared/domain/tag.schema.ts @@ -0,0 +1,23 @@ +import {z} from 'zod'; + +export type TypeTag = + 'personne' | + 'service' | + 'partenaire' | + 'categorie' | + 'financeur' | + 'structure'; + +/** + * Schéma zod d'un tag + */ +export const tagSchema = z.object({ + id : z.number().optional(), + collectiviteId : z.number(), + nom : z.string() +}); + +/** + * Type TS d'un tag + */ +export type Tag = z.input; \ No newline at end of file diff --git a/packages/api/src/shared/domain/thematique.schema.ts b/packages/api/src/shared/domain/thematique.schema.ts new file mode 100644 index 0000000000..40e5408a22 --- /dev/null +++ b/packages/api/src/shared/domain/thematique.schema.ts @@ -0,0 +1,44 @@ +import {z} from 'zod'; + +/** + * Schéma zod d'une thématique + */ +export const thematiqueSchema = z.object({ + id : z.number(), + nom : z.string() +}); + +/** + * Type TS d'une thématique + */ +export type Thematique = z.input; + + +/** + * Schéma zod d'une sous thématique avec l'objet de la thématique + */ +export const sousThematiqueSchema = z.object({ + id : z.number(), + nom : z.string(), + thematique : thematiqueSchema +}); + +/** + * Type TS d'une sous thématique avec l'objet de la thématique + */ +export type SousThematique = z.input; + +/** + * Schéma zod d'une sous thématique avec l'id de la thématique + */ +export const sousThematiqueSchemaId = z.object({ + id : z.number(), + nom : z.string(), + thematique : z.number() +}); + +/** + * Type TS d'une sous thématique avec l'id de la thématique + */ +export type SousThematiqueId = z.input; + From bf2ebbc4ff30318d2fba46f13cde646756cda5b7 Mon Sep 17 00:00:00 2001 From: Amandine Jacquelin Date: Fri, 31 May 2024 14:27:59 +0200 Subject: [PATCH 04/46] MAJ database.types.ts --- api_tests/lib/database.types.ts | 8370 +++++++----------- packages/api/src/database.types.ts | 8370 +++++++----------- supabase/functions/_shared/database.types.ts | 8370 +++++++----------- 3 files changed, 8985 insertions(+), 16125 deletions(-) diff --git a/api_tests/lib/database.types.ts b/api_tests/lib/database.types.ts index e22e60671d..09c914b6b7 100644 --- a/api_tests/lib/database.types.ts +++ b/api_tests/lib/database.types.ts @@ -3499,15 +3499,15 @@ export type Database = { action_impact_indicateur: { Row: { action_impact_id: number - indicateur_id: string + indicateur_id: number } Insert: { action_impact_id: number - indicateur_id: string + indicateur_id: number } Update: { action_impact_id?: number - indicateur_id?: string + indicateur_id?: number } Relationships: [ { @@ -4761,743 +4761,769 @@ export type Database = { } Relationships: [] } - client_scores: { + categorie_tag: { Row: { - collectivite_id: number - modified_at: string - payload_timestamp: string | null - referentiel: Database["public"]["Enums"]["referentiel"] - scores: Json + collectivite_id: number | null + created_at: string + created_by: string | null + groupement_id: number | null + id: number + nom: string + visible: boolean } Insert: { - collectivite_id: number - modified_at: string - payload_timestamp?: string | null - referentiel: Database["public"]["Enums"]["referentiel"] - scores: Json + collectivite_id?: number | null + created_at?: string + created_by?: string | null + groupement_id?: number | null + id?: number + nom: string + visible?: boolean } Update: { - collectivite_id?: number - modified_at?: string - payload_timestamp?: string | null - referentiel?: Database["public"]["Enums"]["referentiel"] - scores?: Json + collectivite_id?: number | null + created_at?: string + created_by?: string | null + groupement_id?: number | null + id?: number + nom?: string + visible?: boolean } Relationships: [ { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, + { + foreignKeyName: "categorie_tag_created_by_fkey" + columns: ["created_by"] + isOneToOne: false + referencedRelation: "users" + referencedColumns: ["id"] + }, + { + foreignKeyName: "categorie_tag_groupement_id_fkey" + columns: ["groupement_id"] + isOneToOne: false + referencedRelation: "groupement" + referencedColumns: ["id"] + }, ] } - client_scores_update: { + client_scores: { Row: { collectivite_id: number modified_at: string + payload_timestamp: string | null referentiel: Database["public"]["Enums"]["referentiel"] + scores: Json } Insert: { collectivite_id: number modified_at: string + payload_timestamp?: string | null referentiel: Database["public"]["Enums"]["referentiel"] + scores: Json } Update: { collectivite_id?: number modified_at?: string + payload_timestamp?: string | null referentiel?: Database["public"]["Enums"]["referentiel"] + scores?: Json } Relationships: [ { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" @@ -5505,1142 +5531,1142 @@ export type Database = { }, ] } - collectivite: { - Row: { - access_restreint: boolean - created_at: string - id: number - modified_at: string - active: boolean | null - collectivite_axe: unknown | null - collectivite_personne_tag: unknown | null - collectivite_service_tag: unknown | null - collectivite_structure_tag: unknown | null - collectivite_thematique: unknown | null - collectivite_utilisateur: unknown | null - } - Insert: { - access_restreint?: boolean - created_at?: string - id?: number - modified_at?: string - } - Update: { - access_restreint?: boolean - created_at?: string - id?: number - modified_at?: string - } - Relationships: [] - } - collectivite_banatic_competence: { + client_scores_update: { Row: { collectivite_id: number - competence_code: number + modified_at: string + referentiel: Database["public"]["Enums"]["referentiel"] } Insert: { collectivite_id: number - competence_code: number + modified_at: string + referentiel: Database["public"]["Enums"]["referentiel"] } Update: { collectivite_id?: number - competence_code?: number + modified_at?: string + referentiel?: Database["public"]["Enums"]["referentiel"] } Relationships: [ { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, - { - foreignKeyName: "collectivite_banatic_competence_competence_code_fkey" - columns: ["competence_code"] - isOneToOne: false - referencedRelation: "banatic_competence" - referencedColumns: ["code"] - }, ] } - collectivite_bucket: { + collectivite: { + Row: { + access_restreint: boolean + created_at: string + id: number + modified_at: string + active: boolean | null + collectivite_axe: unknown | null + collectivite_personne_tag: unknown | null + collectivite_service_tag: unknown | null + collectivite_structure_tag: unknown | null + collectivite_thematique: unknown | null + collectivite_utilisateur: unknown | null + } + Insert: { + access_restreint?: boolean + created_at?: string + id?: number + modified_at?: string + } + Update: { + access_restreint?: boolean + created_at?: string + id?: number + modified_at?: string + } + Relationships: [] + } + collectivite_banatic_competence: { Row: { - bucket_id: string collectivite_id: number + competence_code: number } Insert: { - bucket_id: string collectivite_id: number + competence_code: number } Update: { - bucket_id?: string collectivite_id?: number + competence_code?: number } Relationships: [ { - foreignKeyName: "collectivite_bucket_bucket_id_fkey" - columns: ["bucket_id"] - isOneToOne: false - referencedRelation: "buckets" - referencedColumns: ["id"] - }, - { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, + { + foreignKeyName: "collectivite_banatic_competence_competence_code_fkey" + columns: ["competence_code"] + isOneToOne: false + referencedRelation: "banatic_competence" + referencedColumns: ["code"] + }, ] } - collectivite_test: { + collectivite_bucket: { Row: { - collectivite_id: number | null - id: number - nom: string + bucket_id: string + collectivite_id: number } Insert: { - collectivite_id?: number | null - id?: number - nom: string + bucket_id: string + collectivite_id: number } Update: { - collectivite_id?: number | null - id?: number - nom?: string + bucket_id?: string + collectivite_id?: number } Relationships: [ { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_bucket_id_fkey" + columns: ["bucket_id"] + isOneToOne: false + referencedRelation: "buckets" + referencedColumns: ["id"] + }, + { + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" @@ -6648,371 +6674,368 @@ export type Database = { }, ] } - commune: { + collectivite_test: { Row: { - code: string collectivite_id: number | null id: number nom: string } Insert: { - code: string collectivite_id?: number | null id?: number nom: string } Update: { - code?: string collectivite_id?: number | null id?: number nom?: string } Relationships: [ { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" @@ -7020,8430 +7043,6154 @@ export type Database = { }, ] } - confidentialite_crud: { + commune: { Row: { - c: Database["public"]["Enums"]["confidentialite_option_crud"] - d: Database["public"]["Enums"]["confidentialite_option_crud"] - nom_element: string - profil: Database["public"]["Enums"]["confidentialite_profil"] - r: Database["public"]["Enums"]["confidentialite_option_crud"] - type_element: Database["public"]["Enums"]["confidentialite_type_element"] - u: Database["public"]["Enums"]["confidentialite_option_crud"] + code: string + collectivite_id: number | null + id: number + nom: string } Insert: { - c: Database["public"]["Enums"]["confidentialite_option_crud"] - d: Database["public"]["Enums"]["confidentialite_option_crud"] - nom_element: string - profil: Database["public"]["Enums"]["confidentialite_profil"] - r: Database["public"]["Enums"]["confidentialite_option_crud"] - type_element: Database["public"]["Enums"]["confidentialite_type_element"] - u: Database["public"]["Enums"]["confidentialite_option_crud"] + code: string + collectivite_id?: number | null + id?: number + nom: string } Update: { - c?: Database["public"]["Enums"]["confidentialite_option_crud"] - d?: Database["public"]["Enums"]["confidentialite_option_crud"] - nom_element?: string - profil?: Database["public"]["Enums"]["confidentialite_profil"] - r?: Database["public"]["Enums"]["confidentialite_option_crud"] - type_element?: Database["public"]["Enums"]["confidentialite_type_element"] - u?: Database["public"]["Enums"]["confidentialite_option_crud"] - } - Relationships: [] - } - cot: { - Row: { - actif: boolean - collectivite_id: number - signataire: number | null - } - Insert: { - actif: boolean - collectivite_id: number - signataire?: number | null - } - Update: { - actif?: boolean - collectivite_id?: number - signataire?: number | null + code?: string + collectivite_id?: number | null + id?: number + nom?: string } Relationships: [ { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false - referencedRelation: "carte_collectivite_active" + referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + ] + } + confidentialite_crud: { + Row: { + c: Database["public"]["Enums"]["confidentialite_option_crud"] + d: Database["public"]["Enums"]["confidentialite_option_crud"] + nom_element: string + profil: Database["public"]["Enums"]["confidentialite_profil"] + r: Database["public"]["Enums"]["confidentialite_option_crud"] + type_element: Database["public"]["Enums"]["confidentialite_type_element"] + u: Database["public"]["Enums"]["confidentialite_option_crud"] + } + Insert: { + c: Database["public"]["Enums"]["confidentialite_option_crud"] + d: Database["public"]["Enums"]["confidentialite_option_crud"] + nom_element: string + profil: Database["public"]["Enums"]["confidentialite_profil"] + r: Database["public"]["Enums"]["confidentialite_option_crud"] + type_element: Database["public"]["Enums"]["confidentialite_type_element"] + u: Database["public"]["Enums"]["confidentialite_option_crud"] + } + Update: { + c?: Database["public"]["Enums"]["confidentialite_option_crud"] + d?: Database["public"]["Enums"]["confidentialite_option_crud"] + nom_element?: string + profil?: Database["public"]["Enums"]["confidentialite_profil"] + r?: Database["public"]["Enums"]["confidentialite_option_crud"] + type_element?: Database["public"]["Enums"]["confidentialite_type_element"] + u?: Database["public"]["Enums"]["confidentialite_option_crud"] + } + Relationships: [] + } + cot: { + Row: { + actif: boolean + collectivite_id: number + signataire: number | null + } + Insert: { + actif: boolean + collectivite_id: number + signataire?: number | null + } + Update: { + actif?: boolean + collectivite_id?: number + signataire?: number | null + } + Relationships: [ + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "action_snippet" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "action_statuts" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "active_collectivite" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "auditeurs" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "audits" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "carte_collectivite_active" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, - ] - } - dcp: { - Row: { - cgu_acceptees_le: string | null - created_at: string - deleted: boolean - email: string - limited: boolean - modified_at: string - nom: string - prenom: string - telephone: string | null - user_id: string - } - Insert: { - cgu_acceptees_le?: string | null - created_at?: string - deleted?: boolean - email: string - limited?: boolean - modified_at?: string - nom: string - prenom: string - telephone?: string | null - user_id: string - } - Update: { - cgu_acceptees_le?: string | null - created_at?: string - deleted?: boolean - email?: string - limited?: boolean - modified_at?: string - nom?: string - prenom?: string - telephone?: string | null - user_id?: string - } - Relationships: [ - { - foreignKeyName: "dcp_user_id_fkey" - columns: ["user_id"] - isOneToOne: true - referencedRelation: "users" - referencedColumns: ["id"] - }, - ] - } - effet_attendu: { - Row: { - id: number - nom: string - notice: string | null - } - Insert: { - id?: number - nom: string - notice?: string | null - } - Update: { - id?: number - nom?: string - notice?: string | null - } - Relationships: [] - } - epci: { - Row: { - collectivite_id: number | null - id: number - nature: Database["public"]["Enums"]["nature"] - nom: string - siren: string - } - Insert: { - collectivite_id?: number | null - id?: number - nature: Database["public"]["Enums"]["nature"] - nom: string - siren: string - } - Update: { - collectivite_id?: number | null - id?: number - nature?: Database["public"]["Enums"]["nature"] - nom?: string - siren?: string - } - Relationships: [ { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] + isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, ] } - fiche_action: { + dcp: { Row: { - amelioration_continue: boolean | null - budget_previsionnel: number | null - calendrier: string | null - cibles: Database["public"]["Enums"]["fiche_action_cibles"][] | null - collectivite_id: number + cgu_acceptees_le: string | null created_at: string - date_debut: string | null - date_fin_provisoire: string | null - description: string | null - financements: string | null - id: number - maj_termine: boolean | null + deleted: boolean + email: string + limited: boolean modified_at: string - modified_by: string | null - niveau_priorite: - | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] - | null - notes_complementaires: string | null - objectifs: string | null - piliers_eci: - | Database["public"]["Enums"]["fiche_action_piliers_eci"][] - | null - ressources: string | null - restreint: boolean | null - resultats_attendus: - | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] - | null - statut: Database["public"]["Enums"]["fiche_action_statuts"] | null - titre: string | null + nom: string + prenom: string + telephone: string | null + user_id: string } Insert: { - amelioration_continue?: boolean | null - budget_previsionnel?: number | null - calendrier?: string | null - cibles?: Database["public"]["Enums"]["fiche_action_cibles"][] | null - collectivite_id: number + cgu_acceptees_le?: string | null created_at?: string - date_debut?: string | null - date_fin_provisoire?: string | null - description?: string | null - financements?: string | null - id?: number - maj_termine?: boolean | null + deleted?: boolean + email: string + limited?: boolean modified_at?: string - modified_by?: string | null - niveau_priorite?: - | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] - | null - notes_complementaires?: string | null - objectifs?: string | null - piliers_eci?: - | Database["public"]["Enums"]["fiche_action_piliers_eci"][] - | null - ressources?: string | null - restreint?: boolean | null - resultats_attendus?: - | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] - | null - statut?: Database["public"]["Enums"]["fiche_action_statuts"] | null - titre?: string | null + nom: string + prenom: string + telephone?: string | null + user_id: string } Update: { - amelioration_continue?: boolean | null - budget_previsionnel?: number | null - calendrier?: string | null - cibles?: Database["public"]["Enums"]["fiche_action_cibles"][] | null - collectivite_id?: number + cgu_acceptees_le?: string | null created_at?: string - date_debut?: string | null - date_fin_provisoire?: string | null - description?: string | null - financements?: string | null - id?: number - maj_termine?: boolean | null + deleted?: boolean + email?: string + limited?: boolean modified_at?: string - modified_by?: string | null - niveau_priorite?: - | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] - | null - notes_complementaires?: string | null - objectifs?: string | null - piliers_eci?: - | Database["public"]["Enums"]["fiche_action_piliers_eci"][] - | null - ressources?: string | null - restreint?: boolean | null - resultats_attendus?: - | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] - | null - statut?: Database["public"]["Enums"]["fiche_action_statuts"] | null - titre?: string | null + nom?: string + prenom?: string + telephone?: string | null + user_id?: string } Relationships: [ { - foreignKeyName: "fiche_action_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] + foreignKeyName: "dcp_user_id_fkey" + columns: ["user_id"] + isOneToOne: true + referencedRelation: "users" + referencedColumns: ["id"] }, - { - foreignKeyName: "fiche_action_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false + ] + } + effet_attendu: { + Row: { + id: number + nom: string + notice: string | null + } + Insert: { + id?: number + nom: string + notice?: string | null + } + Update: { + id?: number + nom?: string + notice?: string | null + } + Relationships: [] + } + epci: { + Row: { + collectivite_id: number | null + id: number + nature: Database["public"]["Enums"]["nature"] + nom: string + siren: string + } + Insert: { + collectivite_id?: number | null + id?: number + nature: Database["public"]["Enums"]["nature"] + nom: string + siren: string + } + Update: { + collectivite_id?: number | null + id?: number + nature?: Database["public"]["Enums"]["nature"] + nom?: string + siren?: string + } + Relationships: [ + { + foreignKeyName: "epci_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "action_snippet" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "epci_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, - { - foreignKeyName: "fiche_action_modified_by_fkey" - columns: ["modified_by"] - isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] - }, ] } - fiche_action_action: { + fiche_action: { Row: { - action_id: string - fiche_id: number + amelioration_continue: boolean | null + budget_previsionnel: number | null + calendrier: string | null + cibles: Database["public"]["Enums"]["fiche_action_cibles"][] | null + collectivite_id: number + created_at: string + date_debut: string | null + date_fin_provisoire: string | null + description: string | null + financements: string | null + id: number + maj_termine: boolean | null + modified_at: string + modified_by: string | null + niveau_priorite: + | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] + | null + notes_complementaires: string | null + objectifs: string | null + piliers_eci: + | Database["public"]["Enums"]["fiche_action_piliers_eci"][] + | null + ressources: string | null + restreint: boolean | null + resultats_attendus: + | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] + | null + statut: Database["public"]["Enums"]["fiche_action_statuts"] | null + titre: string | null } Insert: { - action_id: string - fiche_id: number + amelioration_continue?: boolean | null + budget_previsionnel?: number | null + calendrier?: string | null + cibles?: Database["public"]["Enums"]["fiche_action_cibles"][] | null + collectivite_id: number + created_at?: string + date_debut?: string | null + date_fin_provisoire?: string | null + description?: string | null + financements?: string | null + id?: number + maj_termine?: boolean | null + modified_at?: string + modified_by?: string | null + niveau_priorite?: + | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] + | null + notes_complementaires?: string | null + objectifs?: string | null + piliers_eci?: + | Database["public"]["Enums"]["fiche_action_piliers_eci"][] + | null + ressources?: string | null + restreint?: boolean | null + resultats_attendus?: + | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] + | null + statut?: Database["public"]["Enums"]["fiche_action_statuts"] | null + titre?: string | null } Update: { - action_id?: string - fiche_id?: number + amelioration_continue?: boolean | null + budget_previsionnel?: number | null + calendrier?: string | null + cibles?: Database["public"]["Enums"]["fiche_action_cibles"][] | null + collectivite_id?: number + created_at?: string + date_debut?: string | null + date_fin_provisoire?: string | null + description?: string | null + financements?: string | null + id?: number + maj_termine?: boolean | null + modified_at?: string + modified_by?: string | null + niveau_priorite?: + | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] + | null + notes_complementaires?: string | null + objectifs?: string | null + piliers_eci?: + | Database["public"]["Enums"]["fiche_action_piliers_eci"][] + | null + ressources?: string | null + restreint?: boolean | null + resultats_attendus?: + | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] + | null + statut?: Database["public"]["Enums"]["fiche_action_statuts"] | null + titre?: string | null } Relationships: [ { - foreignKeyName: "fiche_action_action_action_id_fkey" - columns: ["action_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "action_relation" - referencedColumns: ["id"] + referencedRelation: "action_snippet" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_action_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] + referencedRelation: "action_statuts" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_action_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "active_collectivite" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_action_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "auditeurs" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_action_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "audits" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_action_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "carte_collectivite_active" + referencedColumns: ["collectivite_id"] }, - ] - } - fiche_action_axe: { - Row: { - axe_id: number - fiche_id: number - } - Insert: { - axe_id: number - fiche_id: number - } - Update: { - axe_id?: number - fiche_id?: number - } - Relationships: [ { - foreignKeyName: "fiche_action_axe_axe_id_fkey" - columns: ["axe_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "axe" + referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "fiche_action_axe_axe_id_fkey" - columns: ["axe_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "plan_action" - referencedColumns: ["id"] + referencedRelation: "collectivite" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_axe_axe_id_fkey" - columns: ["axe_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "plan_action_profondeur" - referencedColumns: ["id"] + referencedRelation: "collectivite_action_statut" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_axe_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] + referencedRelation: "collectivite_card" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_axe_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "collectivite_carte_identite" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_axe_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" + referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "fiche_action_axe_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "collectivite_labellisation" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_axe_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "collectivite_membre_crm" + referencedColumns: ["collectivite_id"] }, - ] - } - fiche_action_effet_attendu: { - Row: { - effet_attendu_id: number - fiche_id: number - } - Insert: { - effet_attendu_id: number - fiche_id: number - } - Update: { - effet_attendu_id?: number - fiche_id?: number - } - Relationships: [ { - foreignKeyName: "fiche_action_effet_attendu_effet_attendu_id_fkey" - columns: ["effet_attendu_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "effet_attendu" - referencedColumns: ["id"] + referencedRelation: "collectivite_niveau_acces" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] + referencedRelation: "collectivite_plan_action" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "collectivite_plan_action" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "collectivite_referentiel" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "collectivite_utilisateur" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "collectivites_crm" + referencedColumns: ["collectivite_id"] }, - ] - } - fiche_action_financeur_tag: { - Row: { - fiche_id: number - financeur_tag_id: number - id: number - montant_ttc: number | null - } - Insert: { - fiche_id: number - financeur_tag_id: number - id?: number - montant_ttc?: number | null - } - Update: { - fiche_id?: number - financeur_tag_id?: number - id?: number - montant_ttc?: number | null - } - Relationships: [ { - foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] + referencedRelation: "comparaison_scores_audit" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "crm_collectivites" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "crm_usages" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "crm_usages" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "engagement_collectivite" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_financeur_tag_financeur_tag_id_fkey" - columns: ["financeur_tag_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "financeur_tag" - referencedColumns: ["id"] - }, - ] - } - fiche_action_import_csv: { - Row: { - amelioration_continue: string | null - axe: string | null - budget: string | null - calendrier: string | null - cibles: string | null - collectivite_id: string | null - date_debut: string | null - date_fin: string | null - description: string | null - elu_referent: string | null - financements: string | null - financeur_deux: string | null - financeur_trois: string | null - financeur_un: string | null - montant_deux: string | null - montant_trois: string | null - montant_un: string | null - moyens: string | null - notes: string | null - num_action: string | null - objectifs: string | null - partenaires: string | null - personne_referente: string | null - plan_nom: string | null - priorite: string | null - resultats_attendus: string | null - service: string | null - sous_axe: string | null - sous_sous_axe: string | null - statut: string | null - structure_pilote: string | null - titre: string | null - } - Insert: { - amelioration_continue?: string | null - axe?: string | null - budget?: string | null - calendrier?: string | null - cibles?: string | null - collectivite_id?: string | null - date_debut?: string | null - date_fin?: string | null - description?: string | null - elu_referent?: string | null - financements?: string | null - financeur_deux?: string | null - financeur_trois?: string | null - financeur_un?: string | null - montant_deux?: string | null - montant_trois?: string | null - montant_un?: string | null - moyens?: string | null - notes?: string | null - num_action?: string | null - objectifs?: string | null - partenaires?: string | null - personne_referente?: string | null - plan_nom?: string | null - priorite?: string | null - resultats_attendus?: string | null - service?: string | null - sous_axe?: string | null - sous_sous_axe?: string | null - statut?: string | null - structure_pilote?: string | null - titre?: string | null - } - Update: { - amelioration_continue?: string | null - axe?: string | null - budget?: string | null - calendrier?: string | null - cibles?: string | null - collectivite_id?: string | null - date_debut?: string | null - date_fin?: string | null - description?: string | null - elu_referent?: string | null - financements?: string | null - financeur_deux?: string | null - financeur_trois?: string | null - financeur_un?: string | null - montant_deux?: string | null - montant_trois?: string | null - montant_un?: string | null - moyens?: string | null - notes?: string | null - num_action?: string | null - objectifs?: string | null - partenaires?: string | null - personne_referente?: string | null - plan_nom?: string | null - priorite?: string | null - resultats_attendus?: string | null - service?: string | null - sous_axe?: string | null - sous_sous_axe?: string | null - statut?: string | null - structure_pilote?: string | null - titre?: string | null - } - Relationships: [] - } - fiche_action_indicateur: { - Row: { - fiche_id: number - indicateur_id: string | null - indicateur_personnalise_id: number | null - } - Insert: { - fiche_id: number - indicateur_id?: string | null - indicateur_personnalise_id?: number | null - } - Update: { - fiche_id?: number - indicateur_id?: string | null - indicateur_personnalise_id?: number | null - } - Relationships: [ - { - foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_indicateur_personnalise_id_fkey" - columns: ["indicateur_personnalise_id"] - isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" - referencedColumns: ["id"] - }, - ] - } - fiche_action_lien: { - Row: { - fiche_deux: number - fiche_une: number - } - Insert: { - fiche_deux: number - fiche_une: number - } - Update: { - fiche_deux?: number - fiche_une?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_lien_fiche_deux_fkey" - columns: ["fiche_deux"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_deux_fkey" - columns: ["fiche_deux"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_deux_fkey" - columns: ["fiche_deux"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_deux_fkey" - columns: ["fiche_deux"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_deux_fkey" - columns: ["fiche_deux"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_une_fkey" - columns: ["fiche_une"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_une_fkey" - columns: ["fiche_une"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_une_fkey" - columns: ["fiche_une"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_une_fkey" - columns: ["fiche_une"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_une_fkey" - columns: ["fiche_une"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - ] - } - fiche_action_partenaire_tag: { - Row: { - fiche_id: number - partenaire_tag_id: number - } - Insert: { - fiche_id: number - partenaire_tag_id: number - } - Update: { - fiche_id?: number - partenaire_tag_id?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_partenaire_tag_partenaire_tag_id_fkey" - columns: ["partenaire_tag_id"] - isOneToOne: false - referencedRelation: "partenaire_tag" - referencedColumns: ["id"] - }, - ] - } - fiche_action_pilote: { - Row: { - fiche_id: number - tag_id: number | null - user_id: string | null - } - Insert: { - fiche_id: number - tag_id?: number | null - user_id?: string | null - } - Update: { - fiche_id?: number - tag_id?: number | null - user_id?: string | null - } - Relationships: [ - { - foreignKeyName: "fiche_action_pilote_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_tag_id_fkey" - columns: ["tag_id"] - isOneToOne: false - referencedRelation: "personne_tag" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_user_id_fkey" - columns: ["user_id"] - isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] - }, - ] - } - fiche_action_referent: { - Row: { - fiche_id: number - tag_id: number | null - user_id: string | null - } - Insert: { - fiche_id: number - tag_id?: number | null - user_id?: string | null - } - Update: { - fiche_id?: number - tag_id?: number | null - user_id?: string | null - } - Relationships: [ - { - foreignKeyName: "fiche_action_referent_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_tag_id_fkey" - columns: ["tag_id"] - isOneToOne: false - referencedRelation: "personne_tag" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_user_id_fkey" - columns: ["user_id"] - isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] - }, - ] - } - fiche_action_service_tag: { - Row: { - fiche_id: number - service_tag_id: number - } - Insert: { - fiche_id: number - service_tag_id: number - } - Update: { - fiche_id?: number - service_tag_id?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_service_tag_service_tag_id_fkey" - columns: ["service_tag_id"] - isOneToOne: false - referencedRelation: "service_tag" - referencedColumns: ["id"] - }, - ] - } - fiche_action_sous_thematique: { - Row: { - fiche_id: number - thematique_id: number - } - Insert: { - fiche_id: number - thematique_id: number - } - Update: { - fiche_id?: number - thematique_id?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_sous_thematique_thematique_id_fkey" - columns: ["thematique_id"] - isOneToOne: false - referencedRelation: "sous_thematique" - referencedColumns: ["id"] - }, - ] - } - fiche_action_structure_tag: { - Row: { - fiche_id: number - structure_tag_id: number - } - Insert: { - fiche_id: number - structure_tag_id: number - } - Update: { - fiche_id?: number - structure_tag_id?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_structure_tag_structure_tag_id_fkey" - columns: ["structure_tag_id"] - isOneToOne: false - referencedRelation: "structure_tag" - referencedColumns: ["id"] - }, - ] - } - fiche_action_thematique: { - Row: { - fiche_id: number - thematique_id: number - } - Insert: { - fiche_id: number - thematique_id: number - } - Update: { - fiche_id?: number - thematique_id?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - ] - } - filtre_intervalle: { - Row: { - id: string - intervalle: unknown - libelle: string - type: Database["public"]["Enums"]["collectivite_filtre_type"] - } - Insert: { - id: string - intervalle: unknown - libelle: string - type: Database["public"]["Enums"]["collectivite_filtre_type"] - } - Update: { - id?: string - intervalle?: unknown - libelle?: string - type?: Database["public"]["Enums"]["collectivite_filtre_type"] - } - Relationships: [] - } - financeur_tag: { - Row: { - collectivite_id: number - id: number - nom: string - } - Insert: { - collectivite_id: number - id?: number - nom: string - } - Update: { - collectivite_id?: number - id?: number - nom?: string - } - Relationships: [] - } - indicateur_action: { - Row: { - action_id: string - indicateur_id: string - modified_at: string - } - Insert: { - action_id: string - indicateur_id: string - modified_at?: string - } - Update: { - action_id?: string - indicateur_id?: string - modified_at?: string - } - Relationships: [ - { - foreignKeyName: "indicateur_action_action_id_fkey" - columns: ["action_id"] - isOneToOne: false - referencedRelation: "action_relation" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_action_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_action_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_action_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - ] - } - indicateur_artificialisation: { - Row: { - activite: number - collectivite_id: number - ferroviaire: number - habitat: number - inconnue: number - mixte: number - routiere: number - total: number - } - Insert: { - activite: number - collectivite_id: number - ferroviaire: number - habitat: number - inconnue: number - mixte: number - routiere: number - total: number - } - Update: { - activite?: number - collectivite_id?: number - ferroviaire?: number - habitat?: number - inconnue?: number - mixte?: number - routiere?: number - total?: number - } - Relationships: [ - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] - }, - ] - } - indicateur_confidentiel: { - Row: { - collectivite_id: number | null - indicateur_id: string | null - indicateur_perso_id: number | null - } - Insert: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - } - Update: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - } - Relationships: [ - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_confidentiel_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_confidentiel_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_confidentiel_indicateur_perso_id_fkey" - columns: ["indicateur_perso_id"] - isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" - referencedColumns: ["id"] - }, - ] - } - indicateur_definition: { - Row: { - description: string - id: string - identifiant: string | null - modified_at: string - nom: string - parent: string | null - participation_score: boolean - programmes: Database["public"]["Enums"]["indicateur_programme"][] - sans_valeur: boolean - selection: boolean - source: string | null - thematiques: Database["public"]["Enums"]["indicateur_thematique"][] - titre_long: string - type: - | Database["public"]["Enums"]["indicateur_referentiel_type"] - | null - unite: string - valeur_indicateur: string | null - cherchable: string | null - enfants: unknown | null - } - Insert: { - description: string - id: string - identifiant?: string | null - modified_at?: string - nom: string - parent?: string | null - participation_score?: boolean - programmes?: Database["public"]["Enums"]["indicateur_programme"][] - sans_valeur?: boolean - selection?: boolean - source?: string | null - thematiques?: Database["public"]["Enums"]["indicateur_thematique"][] - titre_long?: string - type?: - | Database["public"]["Enums"]["indicateur_referentiel_type"] - | null - unite: string - valeur_indicateur?: string | null - } - Update: { - description?: string - id?: string - identifiant?: string | null - modified_at?: string - nom?: string - parent?: string | null - participation_score?: boolean - programmes?: Database["public"]["Enums"]["indicateur_programme"][] - sans_valeur?: boolean - selection?: boolean - source?: string | null - thematiques?: Database["public"]["Enums"]["indicateur_thematique"][] - titre_long?: string - type?: - | Database["public"]["Enums"]["indicateur_referentiel_type"] - | null - unite?: string - valeur_indicateur?: string | null - } - Relationships: [ - { - foreignKeyName: "indicateur_definition_valeur_indicateur_fkey" - columns: ["valeur_indicateur"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_definition_valeur_indicateur_fkey" - columns: ["valeur_indicateur"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_definition_valeur_indicateur_fkey" - columns: ["valeur_indicateur"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - ] - } - indicateur_objectif: { - Row: { - annee: number - collectivite_id: number - indicateur_id: string - modified_at: string - modified_by: string | null - valeur: number | null - } - Insert: { - annee: number - collectivite_id: number - indicateur_id: string - modified_at?: string - modified_by?: string | null - valeur?: number | null - } - Update: { - annee?: number - collectivite_id?: number - indicateur_id?: string - modified_at?: string - modified_by?: string | null - valeur?: number | null - } - Relationships: [ - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - ] - } - indicateur_objectif_commentaire: { - Row: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: string - modified_at: string - modified_by: string - } - Insert: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: string - modified_at: string - modified_by: string - } - Update: { - annee?: number - collectivite_id?: number - commentaire?: string - indicateur_id?: string - modified_at?: string - modified_by?: string - } - Relationships: [ - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_modified_by_fkey" - columns: ["modified_by"] - isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] - }, - ] - } - indicateur_parent: { - Row: { - id: number - nom: string - numero: string - } - Insert: { - id?: number - nom: string - numero: string - } - Update: { - id?: number - nom?: string - numero?: string - } - Relationships: [] - } - indicateur_perso_objectif_commentaire: { - Row: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: number - modified_at: string - modified_by: string - } - Insert: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: number - modified_at: string - modified_by: string - } - Update: { - annee?: number - collectivite_id?: number - commentaire?: string - indicateur_id?: number - modified_at?: string - modified_by?: string - } - Relationships: [ - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "late_collectivite" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" + referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "suivi_audit" + referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_indicateur_id_fkey" - columns: ["indicateur_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" - referencedColumns: ["id"] + referencedRelation: "rattachement" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_modified_by_fkey" - columns: ["modified_by"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] + referencedRelation: "report_indicateur_resultat" + referencedColumns: ["collectivite_id"] }, - ] - } - indicateur_perso_resultat_commentaire: { - Row: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: number - modified_at: string - modified_by: string - } - Insert: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: number - modified_at: string - modified_by: string - } - Update: { - annee?: number - collectivite_id?: number - commentaire?: string - indicateur_id?: number - modified_at?: string - modified_by?: string - } - Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "action_snippet" + referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "action_statuts" + referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "active_collectivite" + referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "auditeurs" + referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "audits" + referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "carte_collectivite_active" + referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["id"] + referencedRelation: "retool_completude_compute" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite" + referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_action_statut" + referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_card" + referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_carte_identite" + referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] + referencedRelation: "retool_score" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_labellisation" + referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_membre_crm" + referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_niveau_acces" + referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_plan_action" + referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_plan_action" + referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_modified_by_fkey" + columns: ["modified_by"] isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] + referencedRelation: "users" + referencedColumns: ["id"] }, + ] + } + fiche_action_action: { + Row: { + action_id: string + fiche_id: number + } + Insert: { + action_id: string + fiche_id: number + } + Update: { + action_id?: string + fiche_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_action_id_fkey" + columns: ["action_id"] isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] + referencedRelation: "action_relation" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, + ] + } + fiche_action_axe: { + Row: { + axe_id: number + fiche_id: number + } + Insert: { + axe_id: number + fiche_id: number + } + Update: { + axe_id?: number + fiche_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_axe_id_fkey" + columns: ["axe_id"] isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "axe" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_axe_id_fkey" + columns: ["axe_id"] isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "plan_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_axe_id_fkey" + columns: ["axe_id"] isOneToOne: false - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "plan_action_profondeur" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, + ] + } + fiche_action_effet_attendu: { + Row: { + effet_attendu_id: number + fiche_id: number + } + Insert: { + effet_attendu_id: number + fiche_id: number + } + Update: { + effet_attendu_id?: number + fiche_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_effet_attendu_id_fkey" + columns: ["effet_attendu_id"] isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] + referencedRelation: "effet_attendu" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, + ] + } + fiche_action_financeur_tag: { + Row: { + fiche_id: number + financeur_tag_id: number + id: number + montant_ttc: number | null + } + Insert: { + fiche_id: number + financeur_tag_id: number + id?: number + montant_ttc?: number | null + } + Update: { + fiche_id?: number + financeur_tag_id?: number + id?: number + montant_ttc?: number | null + } + Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_financeur_tag_id_fkey" + columns: ["financeur_tag_id"] isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "financeur_tag" + referencedColumns: ["id"] }, + ] + } + fiche_action_import_csv: { + Row: { + amelioration_continue: string | null + axe: string | null + budget: string | null + calendrier: string | null + cibles: string | null + collectivite_id: string | null + date_debut: string | null + date_fin: string | null + description: string | null + elu_referent: string | null + financements: string | null + financeur_deux: string | null + financeur_trois: string | null + financeur_un: string | null + montant_deux: string | null + montant_trois: string | null + montant_un: string | null + moyens: string | null + notes: string | null + num_action: string | null + objectifs: string | null + partenaires: string | null + personne_referente: string | null + plan_nom: string | null + priorite: string | null + resultats_attendus: string | null + service: string | null + sous_axe: string | null + sous_sous_axe: string | null + statut: string | null + structure_pilote: string | null + titre: string | null + } + Insert: { + amelioration_continue?: string | null + axe?: string | null + budget?: string | null + calendrier?: string | null + cibles?: string | null + collectivite_id?: string | null + date_debut?: string | null + date_fin?: string | null + description?: string | null + elu_referent?: string | null + financements?: string | null + financeur_deux?: string | null + financeur_trois?: string | null + financeur_un?: string | null + montant_deux?: string | null + montant_trois?: string | null + montant_un?: string | null + moyens?: string | null + notes?: string | null + num_action?: string | null + objectifs?: string | null + partenaires?: string | null + personne_referente?: string | null + plan_nom?: string | null + priorite?: string | null + resultats_attendus?: string | null + service?: string | null + sous_axe?: string | null + sous_sous_axe?: string | null + statut?: string | null + structure_pilote?: string | null + titre?: string | null + } + Update: { + amelioration_continue?: string | null + axe?: string | null + budget?: string | null + calendrier?: string | null + cibles?: string | null + collectivite_id?: string | null + date_debut?: string | null + date_fin?: string | null + description?: string | null + elu_referent?: string | null + financements?: string | null + financeur_deux?: string | null + financeur_trois?: string | null + financeur_un?: string | null + montant_deux?: string | null + montant_trois?: string | null + montant_un?: string | null + moyens?: string | null + notes?: string | null + num_action?: string | null + objectifs?: string | null + partenaires?: string | null + personne_referente?: string | null + plan_nom?: string | null + priorite?: string | null + resultats_attendus?: string | null + service?: string | null + sous_axe?: string | null + sous_sous_axe?: string | null + statut?: string | null + structure_pilote?: string | null + titre?: string | null + } + Relationships: [] + } + fiche_action_indicateur: { + Row: { + fiche_id: number + indicateur_id: number + } + Insert: { + fiche_id: number + indicateur_id: number + } + Update: { + fiche_id?: number + indicateur_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_indicateur_id_fkey" + foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" + referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_modified_by_fkey" - columns: ["modified_by"] + foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "users" + referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, ] } - indicateur_personnalise_definition: { + fiche_action_lien: { Row: { - collectivite_id: number - commentaire: string - description: string - id: number - modified_at: string - modified_by: string - titre: string - unite: string - cherchable: string | null + fiche_deux: number + fiche_une: number } Insert: { - collectivite_id: number - commentaire: string - description: string - id?: number - modified_at?: string - modified_by?: string - titre: string - unite: string + fiche_deux: number + fiche_une: number } Update: { - collectivite_id?: number - commentaire?: string - description?: string - id?: number - modified_at?: string - modified_by?: string - titre?: string - unite?: string + fiche_deux?: number + fiche_une?: number } Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_deux_fkey" + columns: ["fiche_deux"] isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_deux_fkey" + columns: ["fiche_deux"] isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_deux_fkey" + columns: ["fiche_deux"] isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_deux_fkey" + columns: ["fiche_deux"] isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_deux_fkey" + columns: ["fiche_deux"] isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_une_fkey" + columns: ["fiche_une"] isOneToOne: false - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_une_fkey" + columns: ["fiche_une"] isOneToOne: false - referencedRelation: "collectivite" + referencedRelation: "fiche_resume" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_une_fkey" + columns: ["fiche_une"] isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_une_fkey" + columns: ["fiche_une"] isOneToOne: false - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_une_fkey" + columns: ["fiche_une"] isOneToOne: false - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] + }, + ] + } + fiche_action_partenaire_tag: { + Row: { + fiche_id: number + partenaire_tag_id: number + } + Insert: { + fiche_id: number + partenaire_tag_id: number + } + Update: { + fiche_id?: number + partenaire_tag_id?: number + } + Relationships: [ + { + foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" + columns: ["fiche_id"] + isOneToOne: false + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_identite" + referencedRelation: "fiche_resume" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_partenaire_tag_partenaire_tag_id_fkey" + columns: ["partenaire_tag_id"] isOneToOne: false - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] + referencedRelation: "partenaire_tag" + referencedColumns: ["id"] + }, + ] + } + fiche_action_pilote: { + Row: { + fiche_id: number + tag_id: number | null + user_id: string | null + } + Insert: { + fiche_id: number + tag_id?: number | null + user_id?: string | null + } + Update: { + fiche_id?: number + tag_id?: number | null + user_id?: string | null + } + Relationships: [ + { + foreignKeyName: "fiche_action_pilote_fiche_id_fkey" + columns: ["fiche_id"] + isOneToOne: false + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_tag_id_fkey" + columns: ["tag_id"] isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] + referencedRelation: "personne_tag" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_user_id_fkey" + columns: ["user_id"] isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "users" + referencedColumns: ["id"] }, + ] + } + fiche_action_referent: { + Row: { + fiche_id: number + tag_id: number | null + user_id: string | null + } + Insert: { + fiche_id: number + tag_id?: number | null + user_id?: string | null + } + Update: { + fiche_id?: number + tag_id?: number | null + user_id?: string | null + } + Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_tag_id_fkey" + columns: ["tag_id"] isOneToOne: false - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "personne_tag" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_user_id_fkey" + columns: ["user_id"] isOneToOne: false - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "users" + referencedColumns: ["id"] }, + ] + } + fiche_action_service_tag: { + Row: { + fiche_id: number + service_tag_id: number + } + Insert: { + fiche_id: number + service_tag_id: number + } + Update: { + fiche_id?: number + service_tag_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_service_tag_id_fkey" + columns: ["service_tag_id"] isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] + referencedRelation: "service_tag" + referencedColumns: ["id"] }, + ] + } + fiche_action_sous_thematique: { + Row: { + fiche_id: number + thematique_id: number + } + Insert: { + fiche_id: number + thematique_id: number + } + Update: { + fiche_id?: number + thematique_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_thematique_id_fkey" + columns: ["thematique_id"] isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] + referencedRelation: "sous_thematique" + referencedColumns: ["id"] }, + ] + } + fiche_action_structure_tag: { + Row: { + fiche_id: number + structure_tag_id: number + } + Insert: { + fiche_id: number + structure_tag_id: number + } + Update: { + fiche_id?: number + structure_tag_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_structure_tag_id_fkey" + columns: ["structure_tag_id"] isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] + referencedRelation: "structure_tag" + referencedColumns: ["id"] }, + ] + } + fiche_action_thematique: { + Row: { + fiche_id: number + thematique_id: number + } + Insert: { + fiche_id: number + thematique_id: number + } + Update: { + fiche_id?: number + thematique_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] + foreignKeyName: "fiche_action_thematique_fiche_id_fkey" + columns: ["fiche_id"] + isOneToOne: false + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_modified_by_fkey" - columns: ["modified_by"] + foreignKeyName: "fiche_action_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "users" + referencedRelation: "fiches_action" referencedColumns: ["id"] }, ] } - indicateur_personnalise_objectif: { + filtre_intervalle: { + Row: { + id: string + intervalle: unknown + libelle: string + type: Database["public"]["Enums"]["collectivite_filtre_type"] + } + Insert: { + id: string + intervalle: unknown + libelle: string + type: Database["public"]["Enums"]["collectivite_filtre_type"] + } + Update: { + id?: string + intervalle?: unknown + libelle?: string + type?: Database["public"]["Enums"]["collectivite_filtre_type"] + } + Relationships: [] + } + financeur_tag: { Row: { - annee: number collectivite_id: number - indicateur_id: number - modified_at: string - modified_by: string | null - valeur: number | null + id: number + nom: string } Insert: { - annee: number collectivite_id: number - indicateur_id: number - modified_at?: string - modified_by?: string | null - valeur?: number | null + id?: number + nom: string } Update: { - annee?: number collectivite_id?: number - indicateur_id?: number - modified_at?: string - modified_by?: string | null - valeur?: number | null + id?: number + nom?: string + } + Relationships: [] + } + groupement: { + Row: { + id: number + nom: string + } + Insert: { + id?: number + nom: string + } + Update: { + id?: number + nom?: string + } + Relationships: [] + } + groupement_collectivite: { + Row: { + collectivite_id: number + groupement_id: number + } + Insert: { + collectivite_id: number + groupement_id: number + } + Update: { + collectivite_id?: number + groupement_id?: number } Relationships: [ { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_indicateur_id_fkey" + foreignKeyName: "groupement_collectivite_groupement_id_fkey" + columns: ["groupement_id"] + isOneToOne: false + referencedRelation: "groupement" + referencedColumns: ["id"] + }, + ] + } + indicateur_action: { + Row: { + action_id: string + indicateur_id: number + } + Insert: { + action_id: string + indicateur_id: number + } + Update: { + action_id?: string + indicateur_id?: number + } + Relationships: [ + { + foreignKeyName: "indicateur_action_action_id_fkey" + columns: ["action_id"] + isOneToOne: false + referencedRelation: "action_relation" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_action_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_action_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_action_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" + referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, ] } - indicateur_personnalise_resultat: { + indicateur_artificialisation: { Row: { - annee: number + activite: number collectivite_id: number - indicateur_id: number - modified_at: string - modified_by: string | null - valeur: number | null + ferroviaire: number + habitat: number + inconnue: number + mixte: number + routiere: number + total: number } Insert: { - annee: number + activite: number collectivite_id: number - indicateur_id: number - modified_at?: string - modified_by?: string | null - valeur?: number | null + ferroviaire: number + habitat: number + inconnue: number + mixte: number + routiere: number + total: number } Update: { - annee?: number + activite?: number collectivite_id?: number - indicateur_id?: number - modified_at?: string - modified_by?: string | null - valeur?: number | null + ferroviaire?: number + habitat?: number + inconnue?: number + mixte?: number + routiere?: number + total?: number } Relationships: [ { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, - { - foreignKeyName: "indicateur_personnalise_resultat_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" - referencedColumns: ["id"] - }, ] } - indicateur_personnalise_thematique: { + indicateur_categorie_tag: { Row: { + categorie_tag_id: number indicateur_id: number - thematique_id: number + modified_at: string + modified_by: string | null } Insert: { + categorie_tag_id: number indicateur_id: number - thematique_id: number + modified_at?: string + modified_by?: string | null } Update: { + categorie_tag_id?: number indicateur_id?: number - thematique_id?: number + modified_at?: string + modified_by?: string | null } Relationships: [ { - foreignKeyName: "indicateur_personnalise_thematique_indicateur_id_fkey" + foreignKeyName: "indicateur_categorie_tag_categorie_tag_id_fkey" + columns: ["categorie_tag_id"] + isOneToOne: false + referencedRelation: "categorie_tag" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_categorie_tag_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" + referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_thematique_thematique_id_fkey" - columns: ["thematique_id"] + foreignKeyName: "indicateur_categorie_tag_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "thematique" + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_categorie_tag_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "indicateur_definition" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_categorie_tag_modified_by_fkey" + columns: ["modified_by"] + isOneToOne: false + referencedRelation: "users" referencedColumns: ["id"] }, ] } - indicateur_pilote: { + indicateur_collectivite: { Row: { - collectivite_id: number | null - indicateur_id: string | null - indicateur_perso_id: number | null - tag_id: number | null - user_id: string | null - personne: Database["public"]["CompositeTypes"]["personne"] | null + collectivite_id: number + commentaire: string | null + confidentiel: boolean + favoris: boolean + indicateur_id: number } Insert: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - tag_id?: number | null - user_id?: string | null + collectivite_id: number + commentaire?: string | null + confidentiel?: boolean + favoris?: boolean + indicateur_id: number } Update: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - tag_id?: number | null - user_id?: string | null + collectivite_id?: number + commentaire?: string | null + confidentiel?: boolean + favoris?: boolean + indicateur_id?: number } Relationships: [ { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_indicateur_id_fkey" + foreignKeyName: "indicateur_collectivite_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_pilote_indicateur_id_fkey" + foreignKeyName: "indicateur_collectivite_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_pilote_indicateur_id_fkey" + foreignKeyName: "indicateur_collectivite_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, - { - foreignKeyName: "indicateur_pilote_indicateur_perso_id_fkey" - columns: ["indicateur_perso_id"] - isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_pilote_tag_id_fkey" - columns: ["tag_id"] - isOneToOne: false - referencedRelation: "personne_tag" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_pilote_user_id_fkey" - columns: ["user_id"] - isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] - }, ] } - indicateur_resultat: { + indicateur_definition: { Row: { - annee: number - collectivite_id: number - indicateur_id: string + borne_max: number | null + borne_min: number | null + collectivite_id: number | null + created_at: string + created_by: string | null + description: string | null + groupement_id: number | null + id: number + identifiant_referentiel: string | null modified_at: string modified_by: string | null - valeur: number | null + participation_score: boolean + sans_valeur_utilisateur: boolean + titre: string + titre_long: string | null + unite: string + valeur_calcule: string | null + indicateur_enfants: unknown | null + indicateur_parents: unknown | null } Insert: { - annee: number - collectivite_id: number - indicateur_id: string + borne_max?: number | null + borne_min?: number | null + collectivite_id?: number | null + created_at?: string + created_by?: string | null + description?: string | null + groupement_id?: number | null + id?: number + identifiant_referentiel?: string | null modified_at?: string modified_by?: string | null - valeur?: number | null + participation_score?: boolean + sans_valeur_utilisateur?: boolean + titre: string + titre_long?: string | null + unite: string + valeur_calcule?: string | null } Update: { - annee?: number - collectivite_id?: number - indicateur_id?: string + borne_max?: number | null + borne_min?: number | null + collectivite_id?: number | null + created_at?: string + created_by?: string | null + description?: string | null + groupement_id?: number | null + id?: number + identifiant_referentiel?: string | null modified_at?: string modified_by?: string | null - valeur?: number | null + participation_score?: boolean + sans_valeur_utilisateur?: boolean + titre?: string + titre_long?: string | null + unite?: string + valeur_calcule?: string | null } Relationships: [ { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_definition_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "site_labellisation" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_definition_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_active_real_collectivites" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_definition_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_carte_collectivite_active" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_definition_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_locales_engagement_collectivite" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_definition_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "suivi_audit" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_definition_created_by_fkey" + columns: ["created_by"] + isOneToOne: false + referencedRelation: "users" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_definition_groupement_id_fkey" + columns: ["groupement_id"] isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] + referencedRelation: "groupement" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_definition_modified_by_fkey" + columns: ["modified_by"] isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "users" + referencedColumns: ["id"] }, + ] + } + indicateur_groupe: { + Row: { + enfant: number + parent: number + } + Insert: { + enfant: number + parent: number + } + Update: { + enfant?: number + parent?: number + } + Relationships: [ { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_groupe_enfant_fkey" + columns: ["enfant"] isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_groupe_enfant_fkey" + columns: ["enfant"] isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_groupe_enfant_fkey" + columns: ["enfant"] isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "indicateur_definition" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_indicateur_id_fkey" - columns: ["indicateur_id"] + foreignKeyName: "indicateur_groupe_parent_fkey" + columns: ["parent"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_indicateur_id_fkey" - columns: ["indicateur_id"] + foreignKeyName: "indicateur_groupe_parent_fkey" + columns: ["parent"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_indicateur_id_fkey" - columns: ["indicateur_id"] + foreignKeyName: "indicateur_groupe_parent_fkey" + columns: ["parent"] isOneToOne: false referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, ] } - indicateur_resultat_commentaire: { + indicateur_pilote: { Row: { - annee: number | null collectivite_id: number - commentaire: string - indicateur_id: string - modified_at: string - modified_by: string + id: number + indicateur_id: number + tag_id: number | null + user_id: string | null + indicateur_pilote_user: unknown | null } Insert: { - annee?: number | null collectivite_id: number - commentaire: string - indicateur_id: string - modified_at?: string - modified_by?: string + id?: number + indicateur_id: number + tag_id?: number | null + user_id?: string | null } Update: { - annee?: number | null collectivite_id?: number - commentaire?: string - indicateur_id?: string - modified_at?: string - modified_by?: string + id?: number + indicateur_id?: number + tag_id?: number | null + user_id?: string | null } Relationships: [ { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_indicateur_id_fkey" + foreignKeyName: "indicateur_pilote_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_commentaire_indicateur_id_fkey" + foreignKeyName: "indicateur_pilote_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_commentaire_indicateur_id_fkey" + foreignKeyName: "indicateur_pilote_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_commentaire_modified_by_fkey" - columns: ["modified_by"] + foreignKeyName: "indicateur_pilote_tag_id_fkey" + columns: ["tag_id"] + isOneToOne: false + referencedRelation: "personne_tag" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_pilote_user_id_fkey" + columns: ["user_id"] isOneToOne: false referencedRelation: "users" referencedColumns: ["id"] }, ] } - indicateur_resultat_import: { + indicateur_service_tag: { Row: { - annee: number collectivite_id: number - indicateur_id: string - modified_at: string - source: string - source_id: string - valeur: number + indicateur_id: number + service_tag_id: number } Insert: { - annee: number collectivite_id: number - indicateur_id: string - modified_at: string - source: string - source_id: string - valeur: number + indicateur_id: number + service_tag_id: number } Update: { - annee?: number collectivite_id?: number - indicateur_id?: string - modified_at?: string - source?: string - source_id?: string - valeur?: number + indicateur_id?: number + service_tag_id?: number } Relationships: [ { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "site_labellisation" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_active_real_collectivites" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_carte_collectivite_active" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_locales_engagement_collectivite" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "suivi_audit" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "indicateur_definition" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_service_tag_service_tag_id_fkey" + columns: ["service_tag_id"] + isOneToOne: false + referencedRelation: "service_tag" + referencedColumns: ["id"] + }, + ] + } + indicateur_source: { + Row: { + id: string + libelle: string + ordre_affichage: number | null + } + Insert: { + id: string + libelle: string + ordre_affichage?: number | null + } + Update: { + id?: string + libelle?: string + ordre_affichage?: number | null + } + Relationships: [] + } + indicateur_source_metadonnee: { + Row: { + date_version: string + diffuseur: string | null + id: number + limites: string | null + methodologie: string | null + nom_donnees: string | null + producteur: string | null + source_id: string + } + Insert: { + date_version: string + diffuseur?: string | null + id?: number + limites?: string | null + methodologie?: string | null + nom_donnees?: string | null + producteur?: string | null + source_id: string + } + Update: { + date_version?: string + diffuseur?: string | null + id?: number + limites?: string | null + methodologie?: string | null + nom_donnees?: string | null + producteur?: string | null + source_id?: string + } + Relationships: [ + { + foreignKeyName: "indicateur_source_metadonnee_source_id_fkey" + columns: ["source_id"] isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] + referencedRelation: "indicateur_source" + referencedColumns: ["id"] }, + ] + } + indicateur_sous_thematique: { + Row: { + indicateur_id: number + sous_thematique_id: number + } + Insert: { + indicateur_id: number + sous_thematique_id: number + } + Update: { + indicateur_id?: number + sous_thematique_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_sous_thematique_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_sous_thematique_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_sous_thematique_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "indicateur_definition" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_sous_thematique_sous_thematique_id_fkey" + columns: ["sous_thematique_id"] isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "sous_thematique" + referencedColumns: ["id"] }, + ] + } + indicateur_thematique: { + Row: { + indicateur_id: number + thematique_id: number + } + Insert: { + indicateur_id: number + thematique_id: number + } + Update: { + indicateur_id?: number + thematique_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_resultat_import_indicateur_id_fkey" + foreignKeyName: "indicateur_thematique_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_indicateur_id_fkey" + foreignKeyName: "indicateur_thematique_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_indicateur_id_fkey" + foreignKeyName: "indicateur_thematique_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_source_id_fkey" - columns: ["source_id"] + foreignKeyName: "indicateur_thematique_thematique_id_fkey" + columns: ["thematique_id"] isOneToOne: false - referencedRelation: "indicateur_source" + referencedRelation: "thematique" referencedColumns: ["id"] }, ] } - indicateur_service_tag: { + indicateur_valeur: { Row: { - collectivite_id: number | null - indicateur_id: string | null - indicateur_perso_id: number | null - service_tag_id: number + collectivite_id: number + created_at: string + created_by: string | null + date_valeur: string + estimation: number | null + id: number + indicateur_id: number + metadonnee_id: number | null + modified_at: string + modified_by: string | null + objectif: number | null + objectif_commentaire: string | null + resultat: number | null + resultat_commentaire: string | null } Insert: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - service_tag_id: number + collectivite_id: number + created_at?: string + created_by?: string | null + date_valeur: string + estimation?: number | null + id?: number + indicateur_id: number + metadonnee_id?: number | null + modified_at?: string + modified_by?: string | null + objectif?: number | null + objectif_commentaire?: string | null + resultat?: number | null + resultat_commentaire?: string | null } Update: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - service_tag_id?: number + collectivite_id?: number + created_at?: string + created_by?: string | null + date_valeur?: string + estimation?: number | null + id?: number + indicateur_id?: number + metadonnee_id?: number | null + modified_at?: string + modified_by?: string | null + objectif?: number | null + objectif_commentaire?: string | null + resultat?: number | null + resultat_commentaire?: string | null } Relationships: [ { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + foreignKeyName: "indicateur_valeur_created_by_fkey" + columns: ["created_by"] + isOneToOne: false + referencedRelation: "users" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_valeur_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + foreignKeyName: "indicateur_valeur_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + foreignKeyName: "indicateur_valeur_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_indicateur_perso_id_fkey" - columns: ["indicateur_perso_id"] + foreignKeyName: "indicateur_valeur_metadonnee_id_fkey" + columns: ["metadonnee_id"] isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" + referencedRelation: "indicateur_source_metadonnee" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_service_tag_id_fkey" - columns: ["service_tag_id"] + foreignKeyName: "indicateur_valeur_modified_by_fkey" + columns: ["modified_by"] isOneToOne: false - referencedRelation: "service_tag" + referencedRelation: "users" referencedColumns: ["id"] }, ] } - indicateur_source: { - Row: { - id: string - libelle: string - } - Insert: { - id: string - libelle: string - } - Update: { - id?: string - libelle?: string - } - Relationships: [] - } - indicateur_terristory_json: { - Row: { - created_at: string - indicateurs: Json - } - Insert: { - created_at?: string - indicateurs: Json - } - Update: { - created_at?: string - indicateurs?: Json - } - Relationships: [] - } - indicateurs_json: { - Row: { - created_at: string - indicateurs: Json - } - Insert: { - created_at?: string - indicateurs: Json - } - Update: { - created_at?: string - indicateurs?: Json - } - Relationships: [] - } justification: { Row: { collectivite_id: number @@ -22502,17 +20249,21 @@ export type Database = { thematique: { Row: { id: number - md_id: Database["public"]["Enums"]["indicateur_thematique"] | null + md_id: Database["public"]["Enums"]["old_indicateur_thematique"] | null nom: string } Insert: { id?: number - md_id?: Database["public"]["Enums"]["indicateur_thematique"] | null + md_id?: + | Database["public"]["Enums"]["old_indicateur_thematique"] + | null nom: string } Update: { id?: number - md_id?: Database["public"]["Enums"]["indicateur_thematique"] | null + md_id?: + | Database["public"]["Enums"]["old_indicateur_thematique"] + | null nom?: string } Relationships: [] @@ -25766,10 +23517,10 @@ export type Database = { } crm_indicateurs: { Row: { - id: string | null + id: number | null nb_prive: number | null - nom: string | null pourcentage_prive: number | null + titre: string | null } Relationships: [] } @@ -26331,7 +24082,7 @@ export type Database = { | null id: number | null indicateurs: - | Database["public"]["CompositeTypes"]["indicateur_generique"][] + | Database["public"]["Tables"]["indicateur_definition"]["Row"][] | null maj_termine: boolean | null modified_at: string | null @@ -26777,60 +24528,12 @@ export type Database = { } Relationships: [] } - indicateur_definitions: { - Row: { - collectivite_id: number | null - description: string | null - indicateur_id: string | null - indicateur_perso_id: number | null - nom: string | null - unite: string | null - } - Relationships: [] - } - indicateur_rempli: { - Row: { - collectivite_id: number | null - indicateur_id: string | null - perso_id: number | null - rempli: boolean | null - } - Relationships: [] - } indicateur_summary: { Row: { - categorie: string | null - collectivite_id: number | null - nombre: number | null - rempli: number | null - } - Relationships: [] - } - indicateurs: { - Row: { - annee: number | null - collectivite_id: number | null - commentaire: string | null - indicateur_id: string | null - indicateur_perso_id: number | null - source: string | null - source_id: string | null - type: Database["public"]["Enums"]["indicateur_valeur_type"] | null - valeur: number | null - } - Relationships: [] - } - indicateurs_collectivite: { - Row: { + categorie: string | null collectivite_id: number | null - description: string | null - indicateur_id: string | null - indicateur_personnalise_id: number | null - nom: string | null - programmes: - | Database["public"]["Enums"]["indicateur_programme"][] - | null - unite: string | null + nombre: number | null + rempli: number | null } Relationships: [] } @@ -30294,22 +27997,6 @@ export type Database = { } Returns: undefined } - axes: { - Args: { - "": unknown - } - Returns: { - collectivite_id: number - created_at: string - id: number - modified_at: string - modified_by: string | null - nom: string | null - parent: number | null - plan: number | null - type: number | null - }[] - } can: { Args: { "": unknown[] @@ -30328,25 +28015,6 @@ export type Database = { } Returns: string } - cherchable: - | { - Args: { - "": unknown - } - Returns: string - } - | { - Args: { - "": unknown - } - Returns: string - } - | { - Args: { - "": unknown - } - Returns: string - } chunk_compression_stats: { Args: { hypertable: unknown @@ -30480,6 +28148,7 @@ export type Database = { fonction: Database["public"]["Enums"]["membre_fonction"] details_fonction: string champ_intervention: Database["public"]["Enums"]["referentiel"][] + invitation_id: string }[] } collectivite_personne_tag: { @@ -30518,7 +28187,7 @@ export type Database = { } Returns: { id: number - md_id: Database["public"]["Enums"]["indicateur_thematique"] | null + md_id: Database["public"]["Enums"]["old_indicateur_thematique"] | null nom: string }[] } @@ -30550,12 +28219,6 @@ export type Database = { Args: Record Returns: undefined } - confidentiel: { - Args: { - "": unknown - } - Returns: boolean - } consume_invitation: { Args: { id: string @@ -30603,8 +28266,7 @@ export type Database = { collectivite_id: number axe_id?: number action_id?: unknown - indicateur_referentiel_id?: unknown - indicateur_personnalise_id?: number + indicateur_id?: number } Returns: { amelioration_continue: boolean | null @@ -30656,46 +28318,6 @@ export type Database = { } Returns: unknown } - definition_perso: { - Args: { - "": unknown - } - Returns: { - collectivite_id: number - commentaire: string - description: string - id: number - modified_at: string - modified_by: string - titre: string - unite: string - }[] - } - definition_referentiel: { - Args: { - "": unknown - } - Returns: { - description: string - id: string - identifiant: string | null - modified_at: string - nom: string - parent: string | null - participation_score: boolean - programmes: Database["public"]["Enums"]["indicateur_programme"][] - sans_valeur: boolean - selection: boolean - source: string | null - thematiques: Database["public"]["Enums"]["indicateur_thematique"][] - titre_long: string - type: - | Database["public"]["Enums"]["indicateur_referentiel_type"] - | null - unite: string - valeur_indicateur: string | null - }[] - } delete_axe_all: { Args: { axe_id: number @@ -30816,45 +28438,6 @@ export type Database = { } Returns: string[] } - enfants: - | { - Args: { - "": unknown - } - Returns: { - collectivite_id: number | null - description: string | null - indicateur_id: string | null - indicateur_perso_id: number | null - nom: string | null - unite: string | null - }[] - } - | { - Args: { - "": unknown - } - Returns: { - description: string - id: string - identifiant: string | null - modified_at: string - nom: string - parent: string | null - participation_score: boolean - programmes: Database["public"]["Enums"]["indicateur_programme"][] - sans_valeur: boolean - selection: boolean - source: string | null - thematiques: Database["public"]["Enums"]["indicateur_thematique"][] - titre_long: string - type: - | Database["public"]["Enums"]["indicateur_referentiel_type"] - | null - unite: string - valeur_indicateur: string | null - }[] - } enlever_fiche_action_d_un_axe: { Args: { fiche_id: number @@ -31020,16 +28603,6 @@ export type Database = { titre: string | null }[] } - fiches_non_classees: { - Args: { - "": unknown - } - Returns: { - fiche_id: number - indicateur_id: string | null - indicateur_personnalise_id: number | null - }[] - } filter_fiches_action: { Args: { collectivite_id: number @@ -31812,15 +29385,6 @@ export type Database = { } Returns: number } - import_sources: { - Args: { - "": unknown - } - Returns: { - id: string - libelle: string - }[] - } in_todo: { Args: Record Returns: boolean @@ -31837,16 +29401,6 @@ export type Database = { } Returns: string } - indicateur_action: { - Args: { - "": unknown - } - Returns: { - action_id: string - indicateur_id: string - modified_at: string - }[] - } indicateur_artificialisation: { Args: { "": unknown @@ -31862,11 +29416,76 @@ export type Database = { total: number }[] } + indicateur_enfants: { + Args: { + "": unknown + } + Returns: { + borne_max: number | null + borne_min: number | null + collectivite_id: number | null + created_at: string + created_by: string | null + description: string | null + groupement_id: number | null + id: number + identifiant_referentiel: string | null + modified_at: string + modified_by: string | null + participation_score: boolean + sans_valeur_utilisateur: boolean + titre: string + titre_long: string | null + unite: string + valeur_calcule: string | null + }[] + } + indicateur_parents: { + Args: { + "": unknown + } + Returns: { + borne_max: number | null + borne_min: number | null + collectivite_id: number | null + created_at: string + created_by: string | null + description: string | null + groupement_id: number | null + id: number + identifiant_referentiel: string | null + modified_at: string + modified_by: string | null + participation_score: boolean + sans_valeur_utilisateur: boolean + titre: string + titre_long: string | null + unite: string + valeur_calcule: string | null + }[] + } + indicateur_pilote_user: { + Args: { + "": unknown + } + Returns: { + cgu_acceptees_le: string | null + created_at: string + deleted: boolean + email: string + limited: boolean + modified_at: string + nom: string + prenom: string + telephone: string | null + user_id: string + } + } indicateurs_gaz_effet_serre: { Args: { "": unknown } - Returns: Database["public"]["Tables"]["indicateur_resultat_import"]["Row"][][] + Returns: Database["public"]["Tables"]["indicateur_valeur"]["Row"][][] } interpolate: | { @@ -31949,6 +29568,20 @@ export type Database = { } Returns: string } + is_indicateur_collectivite: { + Args: { + indicateur_id: number + collectivite_id: number + } + Returns: boolean + } + is_indicateur_confidential: { + Args: { + indicateur_id: number + collectivite_id: number + } + Returns: boolean + } is_normal_function: { Args: { "": unknown @@ -32329,17 +29962,30 @@ export type Database = { } Returns: string } - personne: { + personnes_collectivite: { Args: { - "": unknown + collectivite_id: number } Returns: Database["public"]["CompositeTypes"]["personne"][] } - personnes_collectivite: { + peut_ajouter_une_valeur_a_l_indicateur: { Args: { - collectivite_id: number + indicateur_id: number } - Returns: Database["public"]["CompositeTypes"]["personne"][] + Returns: boolean + } + peut_lire_l_indicateur: { + Args: { + indicateur_id: number + } + Returns: boolean + } + peut_lire_la_categorie_d_indicateur: { + Args: { + indicateur_id: number + categorie_tag_id: number + } + Returns: boolean } peut_lire_la_fiche: { Args: { @@ -32347,6 +29993,19 @@ export type Database = { } Returns: boolean } + peut_modifier_l_indicateur: { + Args: { + indicateur_id: number + } + Returns: boolean + } + peut_modifier_la_categorie_d_indicateur: { + Args: { + indicateur_id: number + categorie_tag_id: number + } + Returns: boolean + } peut_modifier_la_fiche: { Args: { fiche_id: number @@ -32365,18 +30024,6 @@ export type Database = { Args: Record Returns: number } - pilotes: { - Args: { - "": unknown - } - Returns: { - collectivite_id: number | null - indicateur_id: string | null - indicateur_perso_id: number | null - tag_id: number | null - user_id: string | null - }[] - } plan: { Args: { "": number @@ -32520,12 +30167,6 @@ export type Database = { } Returns: undefined } - rempli: { - Args: { - "": unknown - } - Returns: boolean - } reorder_chunk: { Args: { chunk: unknown @@ -32612,17 +30253,6 @@ export type Database = { } Returns: string } - services: { - Args: { - "": unknown - } - Returns: { - collectivite_id: number | null - indicateur_id: string | null - indicateur_perso_id: number | null - service_tag_id: number - }[] - } set_adaptive_chunking: { Args: { hypertable: unknown @@ -32877,17 +30507,7 @@ export type Database = { } Returns: { id: number - md_id: Database["public"]["Enums"]["indicateur_thematique"] | null - nom: string - }[] - } - thematiques: { - Args: { - "": unknown - } - Returns: { - id: number - md_id: Database["public"]["Enums"]["indicateur_thematique"] | null + md_id: Database["public"]["Enums"]["old_indicateur_thematique"] | null nom: string }[] } @@ -33331,18 +30951,6 @@ export type Database = { indicateur_group: "cae" | "crte" | "eci" indicateur_programme: "clef" | "eci" | "cae" | "pcaet" | "crte" indicateur_referentiel_type: "resultat" | "impact" - indicateur_thematique: - | "eci_dechets" - | "energie_et_climat" - | "indicateur_thematique" - | "agri_alim" - | "urbanisme_et_amenagement" - | "mobilite_et_transport" - | "nature_environnement_air" - | "eau_assainissement" - | "strategie_orga_interne" - | "activites_economiques" - | "solidarite_lien_social" indicateur_valeur_type: "resultat" | "objectif" | "import" membre_fonction: | "referent" @@ -33363,6 +30971,18 @@ export type Database = { | "SIVU" | "PETR" niveau_acces: "admin" | "edition" | "lecture" + old_indicateur_thematique: + | "eci_dechets" + | "energie_et_climat" + | "indicateur_thematique" + | "agri_alim" + | "urbanisme_et_amenagement" + | "mobilite_et_transport" + | "nature_environnement_air" + | "eau_assainissement" + | "strategie_orga_interne" + | "activites_economiques" + | "solidarite_lien_social" preuve_type: | "complementaire" | "reglementaire" diff --git a/packages/api/src/database.types.ts b/packages/api/src/database.types.ts index e22e60671d..09c914b6b7 100644 --- a/packages/api/src/database.types.ts +++ b/packages/api/src/database.types.ts @@ -3499,15 +3499,15 @@ export type Database = { action_impact_indicateur: { Row: { action_impact_id: number - indicateur_id: string + indicateur_id: number } Insert: { action_impact_id: number - indicateur_id: string + indicateur_id: number } Update: { action_impact_id?: number - indicateur_id?: string + indicateur_id?: number } Relationships: [ { @@ -4761,743 +4761,769 @@ export type Database = { } Relationships: [] } - client_scores: { + categorie_tag: { Row: { - collectivite_id: number - modified_at: string - payload_timestamp: string | null - referentiel: Database["public"]["Enums"]["referentiel"] - scores: Json + collectivite_id: number | null + created_at: string + created_by: string | null + groupement_id: number | null + id: number + nom: string + visible: boolean } Insert: { - collectivite_id: number - modified_at: string - payload_timestamp?: string | null - referentiel: Database["public"]["Enums"]["referentiel"] - scores: Json + collectivite_id?: number | null + created_at?: string + created_by?: string | null + groupement_id?: number | null + id?: number + nom: string + visible?: boolean } Update: { - collectivite_id?: number - modified_at?: string - payload_timestamp?: string | null - referentiel?: Database["public"]["Enums"]["referentiel"] - scores?: Json + collectivite_id?: number | null + created_at?: string + created_by?: string | null + groupement_id?: number | null + id?: number + nom?: string + visible?: boolean } Relationships: [ { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, + { + foreignKeyName: "categorie_tag_created_by_fkey" + columns: ["created_by"] + isOneToOne: false + referencedRelation: "users" + referencedColumns: ["id"] + }, + { + foreignKeyName: "categorie_tag_groupement_id_fkey" + columns: ["groupement_id"] + isOneToOne: false + referencedRelation: "groupement" + referencedColumns: ["id"] + }, ] } - client_scores_update: { + client_scores: { Row: { collectivite_id: number modified_at: string + payload_timestamp: string | null referentiel: Database["public"]["Enums"]["referentiel"] + scores: Json } Insert: { collectivite_id: number modified_at: string + payload_timestamp?: string | null referentiel: Database["public"]["Enums"]["referentiel"] + scores: Json } Update: { collectivite_id?: number modified_at?: string + payload_timestamp?: string | null referentiel?: Database["public"]["Enums"]["referentiel"] + scores?: Json } Relationships: [ { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" @@ -5505,1142 +5531,1142 @@ export type Database = { }, ] } - collectivite: { - Row: { - access_restreint: boolean - created_at: string - id: number - modified_at: string - active: boolean | null - collectivite_axe: unknown | null - collectivite_personne_tag: unknown | null - collectivite_service_tag: unknown | null - collectivite_structure_tag: unknown | null - collectivite_thematique: unknown | null - collectivite_utilisateur: unknown | null - } - Insert: { - access_restreint?: boolean - created_at?: string - id?: number - modified_at?: string - } - Update: { - access_restreint?: boolean - created_at?: string - id?: number - modified_at?: string - } - Relationships: [] - } - collectivite_banatic_competence: { + client_scores_update: { Row: { collectivite_id: number - competence_code: number + modified_at: string + referentiel: Database["public"]["Enums"]["referentiel"] } Insert: { collectivite_id: number - competence_code: number + modified_at: string + referentiel: Database["public"]["Enums"]["referentiel"] } Update: { collectivite_id?: number - competence_code?: number + modified_at?: string + referentiel?: Database["public"]["Enums"]["referentiel"] } Relationships: [ { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, - { - foreignKeyName: "collectivite_banatic_competence_competence_code_fkey" - columns: ["competence_code"] - isOneToOne: false - referencedRelation: "banatic_competence" - referencedColumns: ["code"] - }, ] } - collectivite_bucket: { + collectivite: { + Row: { + access_restreint: boolean + created_at: string + id: number + modified_at: string + active: boolean | null + collectivite_axe: unknown | null + collectivite_personne_tag: unknown | null + collectivite_service_tag: unknown | null + collectivite_structure_tag: unknown | null + collectivite_thematique: unknown | null + collectivite_utilisateur: unknown | null + } + Insert: { + access_restreint?: boolean + created_at?: string + id?: number + modified_at?: string + } + Update: { + access_restreint?: boolean + created_at?: string + id?: number + modified_at?: string + } + Relationships: [] + } + collectivite_banatic_competence: { Row: { - bucket_id: string collectivite_id: number + competence_code: number } Insert: { - bucket_id: string collectivite_id: number + competence_code: number } Update: { - bucket_id?: string collectivite_id?: number + competence_code?: number } Relationships: [ { - foreignKeyName: "collectivite_bucket_bucket_id_fkey" - columns: ["bucket_id"] - isOneToOne: false - referencedRelation: "buckets" - referencedColumns: ["id"] - }, - { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, + { + foreignKeyName: "collectivite_banatic_competence_competence_code_fkey" + columns: ["competence_code"] + isOneToOne: false + referencedRelation: "banatic_competence" + referencedColumns: ["code"] + }, ] } - collectivite_test: { + collectivite_bucket: { Row: { - collectivite_id: number | null - id: number - nom: string + bucket_id: string + collectivite_id: number } Insert: { - collectivite_id?: number | null - id?: number - nom: string + bucket_id: string + collectivite_id: number } Update: { - collectivite_id?: number | null - id?: number - nom?: string + bucket_id?: string + collectivite_id?: number } Relationships: [ { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_bucket_id_fkey" + columns: ["bucket_id"] + isOneToOne: false + referencedRelation: "buckets" + referencedColumns: ["id"] + }, + { + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" @@ -6648,371 +6674,368 @@ export type Database = { }, ] } - commune: { + collectivite_test: { Row: { - code: string collectivite_id: number | null id: number nom: string } Insert: { - code: string collectivite_id?: number | null id?: number nom: string } Update: { - code?: string collectivite_id?: number | null id?: number nom?: string } Relationships: [ { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" @@ -7020,8430 +7043,6154 @@ export type Database = { }, ] } - confidentialite_crud: { + commune: { Row: { - c: Database["public"]["Enums"]["confidentialite_option_crud"] - d: Database["public"]["Enums"]["confidentialite_option_crud"] - nom_element: string - profil: Database["public"]["Enums"]["confidentialite_profil"] - r: Database["public"]["Enums"]["confidentialite_option_crud"] - type_element: Database["public"]["Enums"]["confidentialite_type_element"] - u: Database["public"]["Enums"]["confidentialite_option_crud"] + code: string + collectivite_id: number | null + id: number + nom: string } Insert: { - c: Database["public"]["Enums"]["confidentialite_option_crud"] - d: Database["public"]["Enums"]["confidentialite_option_crud"] - nom_element: string - profil: Database["public"]["Enums"]["confidentialite_profil"] - r: Database["public"]["Enums"]["confidentialite_option_crud"] - type_element: Database["public"]["Enums"]["confidentialite_type_element"] - u: Database["public"]["Enums"]["confidentialite_option_crud"] + code: string + collectivite_id?: number | null + id?: number + nom: string } Update: { - c?: Database["public"]["Enums"]["confidentialite_option_crud"] - d?: Database["public"]["Enums"]["confidentialite_option_crud"] - nom_element?: string - profil?: Database["public"]["Enums"]["confidentialite_profil"] - r?: Database["public"]["Enums"]["confidentialite_option_crud"] - type_element?: Database["public"]["Enums"]["confidentialite_type_element"] - u?: Database["public"]["Enums"]["confidentialite_option_crud"] - } - Relationships: [] - } - cot: { - Row: { - actif: boolean - collectivite_id: number - signataire: number | null - } - Insert: { - actif: boolean - collectivite_id: number - signataire?: number | null - } - Update: { - actif?: boolean - collectivite_id?: number - signataire?: number | null + code?: string + collectivite_id?: number | null + id?: number + nom?: string } Relationships: [ { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false - referencedRelation: "carte_collectivite_active" + referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + ] + } + confidentialite_crud: { + Row: { + c: Database["public"]["Enums"]["confidentialite_option_crud"] + d: Database["public"]["Enums"]["confidentialite_option_crud"] + nom_element: string + profil: Database["public"]["Enums"]["confidentialite_profil"] + r: Database["public"]["Enums"]["confidentialite_option_crud"] + type_element: Database["public"]["Enums"]["confidentialite_type_element"] + u: Database["public"]["Enums"]["confidentialite_option_crud"] + } + Insert: { + c: Database["public"]["Enums"]["confidentialite_option_crud"] + d: Database["public"]["Enums"]["confidentialite_option_crud"] + nom_element: string + profil: Database["public"]["Enums"]["confidentialite_profil"] + r: Database["public"]["Enums"]["confidentialite_option_crud"] + type_element: Database["public"]["Enums"]["confidentialite_type_element"] + u: Database["public"]["Enums"]["confidentialite_option_crud"] + } + Update: { + c?: Database["public"]["Enums"]["confidentialite_option_crud"] + d?: Database["public"]["Enums"]["confidentialite_option_crud"] + nom_element?: string + profil?: Database["public"]["Enums"]["confidentialite_profil"] + r?: Database["public"]["Enums"]["confidentialite_option_crud"] + type_element?: Database["public"]["Enums"]["confidentialite_type_element"] + u?: Database["public"]["Enums"]["confidentialite_option_crud"] + } + Relationships: [] + } + cot: { + Row: { + actif: boolean + collectivite_id: number + signataire: number | null + } + Insert: { + actif: boolean + collectivite_id: number + signataire?: number | null + } + Update: { + actif?: boolean + collectivite_id?: number + signataire?: number | null + } + Relationships: [ + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "action_snippet" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "action_statuts" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "active_collectivite" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "auditeurs" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "audits" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "carte_collectivite_active" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, - ] - } - dcp: { - Row: { - cgu_acceptees_le: string | null - created_at: string - deleted: boolean - email: string - limited: boolean - modified_at: string - nom: string - prenom: string - telephone: string | null - user_id: string - } - Insert: { - cgu_acceptees_le?: string | null - created_at?: string - deleted?: boolean - email: string - limited?: boolean - modified_at?: string - nom: string - prenom: string - telephone?: string | null - user_id: string - } - Update: { - cgu_acceptees_le?: string | null - created_at?: string - deleted?: boolean - email?: string - limited?: boolean - modified_at?: string - nom?: string - prenom?: string - telephone?: string | null - user_id?: string - } - Relationships: [ - { - foreignKeyName: "dcp_user_id_fkey" - columns: ["user_id"] - isOneToOne: true - referencedRelation: "users" - referencedColumns: ["id"] - }, - ] - } - effet_attendu: { - Row: { - id: number - nom: string - notice: string | null - } - Insert: { - id?: number - nom: string - notice?: string | null - } - Update: { - id?: number - nom?: string - notice?: string | null - } - Relationships: [] - } - epci: { - Row: { - collectivite_id: number | null - id: number - nature: Database["public"]["Enums"]["nature"] - nom: string - siren: string - } - Insert: { - collectivite_id?: number | null - id?: number - nature: Database["public"]["Enums"]["nature"] - nom: string - siren: string - } - Update: { - collectivite_id?: number | null - id?: number - nature?: Database["public"]["Enums"]["nature"] - nom?: string - siren?: string - } - Relationships: [ { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] + isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, ] } - fiche_action: { + dcp: { Row: { - amelioration_continue: boolean | null - budget_previsionnel: number | null - calendrier: string | null - cibles: Database["public"]["Enums"]["fiche_action_cibles"][] | null - collectivite_id: number + cgu_acceptees_le: string | null created_at: string - date_debut: string | null - date_fin_provisoire: string | null - description: string | null - financements: string | null - id: number - maj_termine: boolean | null + deleted: boolean + email: string + limited: boolean modified_at: string - modified_by: string | null - niveau_priorite: - | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] - | null - notes_complementaires: string | null - objectifs: string | null - piliers_eci: - | Database["public"]["Enums"]["fiche_action_piliers_eci"][] - | null - ressources: string | null - restreint: boolean | null - resultats_attendus: - | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] - | null - statut: Database["public"]["Enums"]["fiche_action_statuts"] | null - titre: string | null + nom: string + prenom: string + telephone: string | null + user_id: string } Insert: { - amelioration_continue?: boolean | null - budget_previsionnel?: number | null - calendrier?: string | null - cibles?: Database["public"]["Enums"]["fiche_action_cibles"][] | null - collectivite_id: number + cgu_acceptees_le?: string | null created_at?: string - date_debut?: string | null - date_fin_provisoire?: string | null - description?: string | null - financements?: string | null - id?: number - maj_termine?: boolean | null + deleted?: boolean + email: string + limited?: boolean modified_at?: string - modified_by?: string | null - niveau_priorite?: - | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] - | null - notes_complementaires?: string | null - objectifs?: string | null - piliers_eci?: - | Database["public"]["Enums"]["fiche_action_piliers_eci"][] - | null - ressources?: string | null - restreint?: boolean | null - resultats_attendus?: - | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] - | null - statut?: Database["public"]["Enums"]["fiche_action_statuts"] | null - titre?: string | null + nom: string + prenom: string + telephone?: string | null + user_id: string } Update: { - amelioration_continue?: boolean | null - budget_previsionnel?: number | null - calendrier?: string | null - cibles?: Database["public"]["Enums"]["fiche_action_cibles"][] | null - collectivite_id?: number + cgu_acceptees_le?: string | null created_at?: string - date_debut?: string | null - date_fin_provisoire?: string | null - description?: string | null - financements?: string | null - id?: number - maj_termine?: boolean | null + deleted?: boolean + email?: string + limited?: boolean modified_at?: string - modified_by?: string | null - niveau_priorite?: - | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] - | null - notes_complementaires?: string | null - objectifs?: string | null - piliers_eci?: - | Database["public"]["Enums"]["fiche_action_piliers_eci"][] - | null - ressources?: string | null - restreint?: boolean | null - resultats_attendus?: - | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] - | null - statut?: Database["public"]["Enums"]["fiche_action_statuts"] | null - titre?: string | null + nom?: string + prenom?: string + telephone?: string | null + user_id?: string } Relationships: [ { - foreignKeyName: "fiche_action_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] + foreignKeyName: "dcp_user_id_fkey" + columns: ["user_id"] + isOneToOne: true + referencedRelation: "users" + referencedColumns: ["id"] }, - { - foreignKeyName: "fiche_action_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false + ] + } + effet_attendu: { + Row: { + id: number + nom: string + notice: string | null + } + Insert: { + id?: number + nom: string + notice?: string | null + } + Update: { + id?: number + nom?: string + notice?: string | null + } + Relationships: [] + } + epci: { + Row: { + collectivite_id: number | null + id: number + nature: Database["public"]["Enums"]["nature"] + nom: string + siren: string + } + Insert: { + collectivite_id?: number | null + id?: number + nature: Database["public"]["Enums"]["nature"] + nom: string + siren: string + } + Update: { + collectivite_id?: number | null + id?: number + nature?: Database["public"]["Enums"]["nature"] + nom?: string + siren?: string + } + Relationships: [ + { + foreignKeyName: "epci_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "action_snippet" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "epci_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, - { - foreignKeyName: "fiche_action_modified_by_fkey" - columns: ["modified_by"] - isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] - }, ] } - fiche_action_action: { + fiche_action: { Row: { - action_id: string - fiche_id: number + amelioration_continue: boolean | null + budget_previsionnel: number | null + calendrier: string | null + cibles: Database["public"]["Enums"]["fiche_action_cibles"][] | null + collectivite_id: number + created_at: string + date_debut: string | null + date_fin_provisoire: string | null + description: string | null + financements: string | null + id: number + maj_termine: boolean | null + modified_at: string + modified_by: string | null + niveau_priorite: + | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] + | null + notes_complementaires: string | null + objectifs: string | null + piliers_eci: + | Database["public"]["Enums"]["fiche_action_piliers_eci"][] + | null + ressources: string | null + restreint: boolean | null + resultats_attendus: + | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] + | null + statut: Database["public"]["Enums"]["fiche_action_statuts"] | null + titre: string | null } Insert: { - action_id: string - fiche_id: number + amelioration_continue?: boolean | null + budget_previsionnel?: number | null + calendrier?: string | null + cibles?: Database["public"]["Enums"]["fiche_action_cibles"][] | null + collectivite_id: number + created_at?: string + date_debut?: string | null + date_fin_provisoire?: string | null + description?: string | null + financements?: string | null + id?: number + maj_termine?: boolean | null + modified_at?: string + modified_by?: string | null + niveau_priorite?: + | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] + | null + notes_complementaires?: string | null + objectifs?: string | null + piliers_eci?: + | Database["public"]["Enums"]["fiche_action_piliers_eci"][] + | null + ressources?: string | null + restreint?: boolean | null + resultats_attendus?: + | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] + | null + statut?: Database["public"]["Enums"]["fiche_action_statuts"] | null + titre?: string | null } Update: { - action_id?: string - fiche_id?: number + amelioration_continue?: boolean | null + budget_previsionnel?: number | null + calendrier?: string | null + cibles?: Database["public"]["Enums"]["fiche_action_cibles"][] | null + collectivite_id?: number + created_at?: string + date_debut?: string | null + date_fin_provisoire?: string | null + description?: string | null + financements?: string | null + id?: number + maj_termine?: boolean | null + modified_at?: string + modified_by?: string | null + niveau_priorite?: + | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] + | null + notes_complementaires?: string | null + objectifs?: string | null + piliers_eci?: + | Database["public"]["Enums"]["fiche_action_piliers_eci"][] + | null + ressources?: string | null + restreint?: boolean | null + resultats_attendus?: + | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] + | null + statut?: Database["public"]["Enums"]["fiche_action_statuts"] | null + titre?: string | null } Relationships: [ { - foreignKeyName: "fiche_action_action_action_id_fkey" - columns: ["action_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "action_relation" - referencedColumns: ["id"] + referencedRelation: "action_snippet" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_action_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] + referencedRelation: "action_statuts" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_action_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "active_collectivite" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_action_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "auditeurs" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_action_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "audits" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_action_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "carte_collectivite_active" + referencedColumns: ["collectivite_id"] }, - ] - } - fiche_action_axe: { - Row: { - axe_id: number - fiche_id: number - } - Insert: { - axe_id: number - fiche_id: number - } - Update: { - axe_id?: number - fiche_id?: number - } - Relationships: [ { - foreignKeyName: "fiche_action_axe_axe_id_fkey" - columns: ["axe_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "axe" + referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "fiche_action_axe_axe_id_fkey" - columns: ["axe_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "plan_action" - referencedColumns: ["id"] + referencedRelation: "collectivite" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_axe_axe_id_fkey" - columns: ["axe_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "plan_action_profondeur" - referencedColumns: ["id"] + referencedRelation: "collectivite_action_statut" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_axe_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] + referencedRelation: "collectivite_card" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_axe_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "collectivite_carte_identite" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_axe_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" + referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "fiche_action_axe_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "collectivite_labellisation" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_axe_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "collectivite_membre_crm" + referencedColumns: ["collectivite_id"] }, - ] - } - fiche_action_effet_attendu: { - Row: { - effet_attendu_id: number - fiche_id: number - } - Insert: { - effet_attendu_id: number - fiche_id: number - } - Update: { - effet_attendu_id?: number - fiche_id?: number - } - Relationships: [ { - foreignKeyName: "fiche_action_effet_attendu_effet_attendu_id_fkey" - columns: ["effet_attendu_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "effet_attendu" - referencedColumns: ["id"] + referencedRelation: "collectivite_niveau_acces" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] + referencedRelation: "collectivite_plan_action" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "collectivite_plan_action" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "collectivite_referentiel" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "collectivite_utilisateur" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "collectivites_crm" + referencedColumns: ["collectivite_id"] }, - ] - } - fiche_action_financeur_tag: { - Row: { - fiche_id: number - financeur_tag_id: number - id: number - montant_ttc: number | null - } - Insert: { - fiche_id: number - financeur_tag_id: number - id?: number - montant_ttc?: number | null - } - Update: { - fiche_id?: number - financeur_tag_id?: number - id?: number - montant_ttc?: number | null - } - Relationships: [ { - foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] + referencedRelation: "comparaison_scores_audit" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "crm_collectivites" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "crm_usages" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "crm_usages" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "engagement_collectivite" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_financeur_tag_financeur_tag_id_fkey" - columns: ["financeur_tag_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "financeur_tag" - referencedColumns: ["id"] - }, - ] - } - fiche_action_import_csv: { - Row: { - amelioration_continue: string | null - axe: string | null - budget: string | null - calendrier: string | null - cibles: string | null - collectivite_id: string | null - date_debut: string | null - date_fin: string | null - description: string | null - elu_referent: string | null - financements: string | null - financeur_deux: string | null - financeur_trois: string | null - financeur_un: string | null - montant_deux: string | null - montant_trois: string | null - montant_un: string | null - moyens: string | null - notes: string | null - num_action: string | null - objectifs: string | null - partenaires: string | null - personne_referente: string | null - plan_nom: string | null - priorite: string | null - resultats_attendus: string | null - service: string | null - sous_axe: string | null - sous_sous_axe: string | null - statut: string | null - structure_pilote: string | null - titre: string | null - } - Insert: { - amelioration_continue?: string | null - axe?: string | null - budget?: string | null - calendrier?: string | null - cibles?: string | null - collectivite_id?: string | null - date_debut?: string | null - date_fin?: string | null - description?: string | null - elu_referent?: string | null - financements?: string | null - financeur_deux?: string | null - financeur_trois?: string | null - financeur_un?: string | null - montant_deux?: string | null - montant_trois?: string | null - montant_un?: string | null - moyens?: string | null - notes?: string | null - num_action?: string | null - objectifs?: string | null - partenaires?: string | null - personne_referente?: string | null - plan_nom?: string | null - priorite?: string | null - resultats_attendus?: string | null - service?: string | null - sous_axe?: string | null - sous_sous_axe?: string | null - statut?: string | null - structure_pilote?: string | null - titre?: string | null - } - Update: { - amelioration_continue?: string | null - axe?: string | null - budget?: string | null - calendrier?: string | null - cibles?: string | null - collectivite_id?: string | null - date_debut?: string | null - date_fin?: string | null - description?: string | null - elu_referent?: string | null - financements?: string | null - financeur_deux?: string | null - financeur_trois?: string | null - financeur_un?: string | null - montant_deux?: string | null - montant_trois?: string | null - montant_un?: string | null - moyens?: string | null - notes?: string | null - num_action?: string | null - objectifs?: string | null - partenaires?: string | null - personne_referente?: string | null - plan_nom?: string | null - priorite?: string | null - resultats_attendus?: string | null - service?: string | null - sous_axe?: string | null - sous_sous_axe?: string | null - statut?: string | null - structure_pilote?: string | null - titre?: string | null - } - Relationships: [] - } - fiche_action_indicateur: { - Row: { - fiche_id: number - indicateur_id: string | null - indicateur_personnalise_id: number | null - } - Insert: { - fiche_id: number - indicateur_id?: string | null - indicateur_personnalise_id?: number | null - } - Update: { - fiche_id?: number - indicateur_id?: string | null - indicateur_personnalise_id?: number | null - } - Relationships: [ - { - foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_indicateur_personnalise_id_fkey" - columns: ["indicateur_personnalise_id"] - isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" - referencedColumns: ["id"] - }, - ] - } - fiche_action_lien: { - Row: { - fiche_deux: number - fiche_une: number - } - Insert: { - fiche_deux: number - fiche_une: number - } - Update: { - fiche_deux?: number - fiche_une?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_lien_fiche_deux_fkey" - columns: ["fiche_deux"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_deux_fkey" - columns: ["fiche_deux"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_deux_fkey" - columns: ["fiche_deux"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_deux_fkey" - columns: ["fiche_deux"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_deux_fkey" - columns: ["fiche_deux"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_une_fkey" - columns: ["fiche_une"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_une_fkey" - columns: ["fiche_une"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_une_fkey" - columns: ["fiche_une"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_une_fkey" - columns: ["fiche_une"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_une_fkey" - columns: ["fiche_une"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - ] - } - fiche_action_partenaire_tag: { - Row: { - fiche_id: number - partenaire_tag_id: number - } - Insert: { - fiche_id: number - partenaire_tag_id: number - } - Update: { - fiche_id?: number - partenaire_tag_id?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_partenaire_tag_partenaire_tag_id_fkey" - columns: ["partenaire_tag_id"] - isOneToOne: false - referencedRelation: "partenaire_tag" - referencedColumns: ["id"] - }, - ] - } - fiche_action_pilote: { - Row: { - fiche_id: number - tag_id: number | null - user_id: string | null - } - Insert: { - fiche_id: number - tag_id?: number | null - user_id?: string | null - } - Update: { - fiche_id?: number - tag_id?: number | null - user_id?: string | null - } - Relationships: [ - { - foreignKeyName: "fiche_action_pilote_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_tag_id_fkey" - columns: ["tag_id"] - isOneToOne: false - referencedRelation: "personne_tag" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_user_id_fkey" - columns: ["user_id"] - isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] - }, - ] - } - fiche_action_referent: { - Row: { - fiche_id: number - tag_id: number | null - user_id: string | null - } - Insert: { - fiche_id: number - tag_id?: number | null - user_id?: string | null - } - Update: { - fiche_id?: number - tag_id?: number | null - user_id?: string | null - } - Relationships: [ - { - foreignKeyName: "fiche_action_referent_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_tag_id_fkey" - columns: ["tag_id"] - isOneToOne: false - referencedRelation: "personne_tag" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_user_id_fkey" - columns: ["user_id"] - isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] - }, - ] - } - fiche_action_service_tag: { - Row: { - fiche_id: number - service_tag_id: number - } - Insert: { - fiche_id: number - service_tag_id: number - } - Update: { - fiche_id?: number - service_tag_id?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_service_tag_service_tag_id_fkey" - columns: ["service_tag_id"] - isOneToOne: false - referencedRelation: "service_tag" - referencedColumns: ["id"] - }, - ] - } - fiche_action_sous_thematique: { - Row: { - fiche_id: number - thematique_id: number - } - Insert: { - fiche_id: number - thematique_id: number - } - Update: { - fiche_id?: number - thematique_id?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_sous_thematique_thematique_id_fkey" - columns: ["thematique_id"] - isOneToOne: false - referencedRelation: "sous_thematique" - referencedColumns: ["id"] - }, - ] - } - fiche_action_structure_tag: { - Row: { - fiche_id: number - structure_tag_id: number - } - Insert: { - fiche_id: number - structure_tag_id: number - } - Update: { - fiche_id?: number - structure_tag_id?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_structure_tag_structure_tag_id_fkey" - columns: ["structure_tag_id"] - isOneToOne: false - referencedRelation: "structure_tag" - referencedColumns: ["id"] - }, - ] - } - fiche_action_thematique: { - Row: { - fiche_id: number - thematique_id: number - } - Insert: { - fiche_id: number - thematique_id: number - } - Update: { - fiche_id?: number - thematique_id?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - ] - } - filtre_intervalle: { - Row: { - id: string - intervalle: unknown - libelle: string - type: Database["public"]["Enums"]["collectivite_filtre_type"] - } - Insert: { - id: string - intervalle: unknown - libelle: string - type: Database["public"]["Enums"]["collectivite_filtre_type"] - } - Update: { - id?: string - intervalle?: unknown - libelle?: string - type?: Database["public"]["Enums"]["collectivite_filtre_type"] - } - Relationships: [] - } - financeur_tag: { - Row: { - collectivite_id: number - id: number - nom: string - } - Insert: { - collectivite_id: number - id?: number - nom: string - } - Update: { - collectivite_id?: number - id?: number - nom?: string - } - Relationships: [] - } - indicateur_action: { - Row: { - action_id: string - indicateur_id: string - modified_at: string - } - Insert: { - action_id: string - indicateur_id: string - modified_at?: string - } - Update: { - action_id?: string - indicateur_id?: string - modified_at?: string - } - Relationships: [ - { - foreignKeyName: "indicateur_action_action_id_fkey" - columns: ["action_id"] - isOneToOne: false - referencedRelation: "action_relation" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_action_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_action_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_action_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - ] - } - indicateur_artificialisation: { - Row: { - activite: number - collectivite_id: number - ferroviaire: number - habitat: number - inconnue: number - mixte: number - routiere: number - total: number - } - Insert: { - activite: number - collectivite_id: number - ferroviaire: number - habitat: number - inconnue: number - mixte: number - routiere: number - total: number - } - Update: { - activite?: number - collectivite_id?: number - ferroviaire?: number - habitat?: number - inconnue?: number - mixte?: number - routiere?: number - total?: number - } - Relationships: [ - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] - }, - ] - } - indicateur_confidentiel: { - Row: { - collectivite_id: number | null - indicateur_id: string | null - indicateur_perso_id: number | null - } - Insert: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - } - Update: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - } - Relationships: [ - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_confidentiel_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_confidentiel_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_confidentiel_indicateur_perso_id_fkey" - columns: ["indicateur_perso_id"] - isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" - referencedColumns: ["id"] - }, - ] - } - indicateur_definition: { - Row: { - description: string - id: string - identifiant: string | null - modified_at: string - nom: string - parent: string | null - participation_score: boolean - programmes: Database["public"]["Enums"]["indicateur_programme"][] - sans_valeur: boolean - selection: boolean - source: string | null - thematiques: Database["public"]["Enums"]["indicateur_thematique"][] - titre_long: string - type: - | Database["public"]["Enums"]["indicateur_referentiel_type"] - | null - unite: string - valeur_indicateur: string | null - cherchable: string | null - enfants: unknown | null - } - Insert: { - description: string - id: string - identifiant?: string | null - modified_at?: string - nom: string - parent?: string | null - participation_score?: boolean - programmes?: Database["public"]["Enums"]["indicateur_programme"][] - sans_valeur?: boolean - selection?: boolean - source?: string | null - thematiques?: Database["public"]["Enums"]["indicateur_thematique"][] - titre_long?: string - type?: - | Database["public"]["Enums"]["indicateur_referentiel_type"] - | null - unite: string - valeur_indicateur?: string | null - } - Update: { - description?: string - id?: string - identifiant?: string | null - modified_at?: string - nom?: string - parent?: string | null - participation_score?: boolean - programmes?: Database["public"]["Enums"]["indicateur_programme"][] - sans_valeur?: boolean - selection?: boolean - source?: string | null - thematiques?: Database["public"]["Enums"]["indicateur_thematique"][] - titre_long?: string - type?: - | Database["public"]["Enums"]["indicateur_referentiel_type"] - | null - unite?: string - valeur_indicateur?: string | null - } - Relationships: [ - { - foreignKeyName: "indicateur_definition_valeur_indicateur_fkey" - columns: ["valeur_indicateur"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_definition_valeur_indicateur_fkey" - columns: ["valeur_indicateur"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_definition_valeur_indicateur_fkey" - columns: ["valeur_indicateur"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - ] - } - indicateur_objectif: { - Row: { - annee: number - collectivite_id: number - indicateur_id: string - modified_at: string - modified_by: string | null - valeur: number | null - } - Insert: { - annee: number - collectivite_id: number - indicateur_id: string - modified_at?: string - modified_by?: string | null - valeur?: number | null - } - Update: { - annee?: number - collectivite_id?: number - indicateur_id?: string - modified_at?: string - modified_by?: string | null - valeur?: number | null - } - Relationships: [ - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - ] - } - indicateur_objectif_commentaire: { - Row: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: string - modified_at: string - modified_by: string - } - Insert: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: string - modified_at: string - modified_by: string - } - Update: { - annee?: number - collectivite_id?: number - commentaire?: string - indicateur_id?: string - modified_at?: string - modified_by?: string - } - Relationships: [ - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_modified_by_fkey" - columns: ["modified_by"] - isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] - }, - ] - } - indicateur_parent: { - Row: { - id: number - nom: string - numero: string - } - Insert: { - id?: number - nom: string - numero: string - } - Update: { - id?: number - nom?: string - numero?: string - } - Relationships: [] - } - indicateur_perso_objectif_commentaire: { - Row: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: number - modified_at: string - modified_by: string - } - Insert: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: number - modified_at: string - modified_by: string - } - Update: { - annee?: number - collectivite_id?: number - commentaire?: string - indicateur_id?: number - modified_at?: string - modified_by?: string - } - Relationships: [ - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "late_collectivite" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" + referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "suivi_audit" + referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_indicateur_id_fkey" - columns: ["indicateur_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" - referencedColumns: ["id"] + referencedRelation: "rattachement" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_modified_by_fkey" - columns: ["modified_by"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] + referencedRelation: "report_indicateur_resultat" + referencedColumns: ["collectivite_id"] }, - ] - } - indicateur_perso_resultat_commentaire: { - Row: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: number - modified_at: string - modified_by: string - } - Insert: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: number - modified_at: string - modified_by: string - } - Update: { - annee?: number - collectivite_id?: number - commentaire?: string - indicateur_id?: number - modified_at?: string - modified_by?: string - } - Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "action_snippet" + referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "action_statuts" + referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "active_collectivite" + referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "auditeurs" + referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "audits" + referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "carte_collectivite_active" + referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["id"] + referencedRelation: "retool_completude_compute" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite" + referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_action_statut" + referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_card" + referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_carte_identite" + referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] + referencedRelation: "retool_score" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_labellisation" + referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_membre_crm" + referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_niveau_acces" + referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_plan_action" + referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_plan_action" + referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_modified_by_fkey" + columns: ["modified_by"] isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] + referencedRelation: "users" + referencedColumns: ["id"] }, + ] + } + fiche_action_action: { + Row: { + action_id: string + fiche_id: number + } + Insert: { + action_id: string + fiche_id: number + } + Update: { + action_id?: string + fiche_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_action_id_fkey" + columns: ["action_id"] isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] + referencedRelation: "action_relation" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, + ] + } + fiche_action_axe: { + Row: { + axe_id: number + fiche_id: number + } + Insert: { + axe_id: number + fiche_id: number + } + Update: { + axe_id?: number + fiche_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_axe_id_fkey" + columns: ["axe_id"] isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "axe" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_axe_id_fkey" + columns: ["axe_id"] isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "plan_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_axe_id_fkey" + columns: ["axe_id"] isOneToOne: false - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "plan_action_profondeur" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, + ] + } + fiche_action_effet_attendu: { + Row: { + effet_attendu_id: number + fiche_id: number + } + Insert: { + effet_attendu_id: number + fiche_id: number + } + Update: { + effet_attendu_id?: number + fiche_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_effet_attendu_id_fkey" + columns: ["effet_attendu_id"] isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] + referencedRelation: "effet_attendu" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, + ] + } + fiche_action_financeur_tag: { + Row: { + fiche_id: number + financeur_tag_id: number + id: number + montant_ttc: number | null + } + Insert: { + fiche_id: number + financeur_tag_id: number + id?: number + montant_ttc?: number | null + } + Update: { + fiche_id?: number + financeur_tag_id?: number + id?: number + montant_ttc?: number | null + } + Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_financeur_tag_id_fkey" + columns: ["financeur_tag_id"] isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "financeur_tag" + referencedColumns: ["id"] }, + ] + } + fiche_action_import_csv: { + Row: { + amelioration_continue: string | null + axe: string | null + budget: string | null + calendrier: string | null + cibles: string | null + collectivite_id: string | null + date_debut: string | null + date_fin: string | null + description: string | null + elu_referent: string | null + financements: string | null + financeur_deux: string | null + financeur_trois: string | null + financeur_un: string | null + montant_deux: string | null + montant_trois: string | null + montant_un: string | null + moyens: string | null + notes: string | null + num_action: string | null + objectifs: string | null + partenaires: string | null + personne_referente: string | null + plan_nom: string | null + priorite: string | null + resultats_attendus: string | null + service: string | null + sous_axe: string | null + sous_sous_axe: string | null + statut: string | null + structure_pilote: string | null + titre: string | null + } + Insert: { + amelioration_continue?: string | null + axe?: string | null + budget?: string | null + calendrier?: string | null + cibles?: string | null + collectivite_id?: string | null + date_debut?: string | null + date_fin?: string | null + description?: string | null + elu_referent?: string | null + financements?: string | null + financeur_deux?: string | null + financeur_trois?: string | null + financeur_un?: string | null + montant_deux?: string | null + montant_trois?: string | null + montant_un?: string | null + moyens?: string | null + notes?: string | null + num_action?: string | null + objectifs?: string | null + partenaires?: string | null + personne_referente?: string | null + plan_nom?: string | null + priorite?: string | null + resultats_attendus?: string | null + service?: string | null + sous_axe?: string | null + sous_sous_axe?: string | null + statut?: string | null + structure_pilote?: string | null + titre?: string | null + } + Update: { + amelioration_continue?: string | null + axe?: string | null + budget?: string | null + calendrier?: string | null + cibles?: string | null + collectivite_id?: string | null + date_debut?: string | null + date_fin?: string | null + description?: string | null + elu_referent?: string | null + financements?: string | null + financeur_deux?: string | null + financeur_trois?: string | null + financeur_un?: string | null + montant_deux?: string | null + montant_trois?: string | null + montant_un?: string | null + moyens?: string | null + notes?: string | null + num_action?: string | null + objectifs?: string | null + partenaires?: string | null + personne_referente?: string | null + plan_nom?: string | null + priorite?: string | null + resultats_attendus?: string | null + service?: string | null + sous_axe?: string | null + sous_sous_axe?: string | null + statut?: string | null + structure_pilote?: string | null + titre?: string | null + } + Relationships: [] + } + fiche_action_indicateur: { + Row: { + fiche_id: number + indicateur_id: number + } + Insert: { + fiche_id: number + indicateur_id: number + } + Update: { + fiche_id?: number + indicateur_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_indicateur_id_fkey" + foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" + referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_modified_by_fkey" - columns: ["modified_by"] + foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "users" + referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, ] } - indicateur_personnalise_definition: { + fiche_action_lien: { Row: { - collectivite_id: number - commentaire: string - description: string - id: number - modified_at: string - modified_by: string - titre: string - unite: string - cherchable: string | null + fiche_deux: number + fiche_une: number } Insert: { - collectivite_id: number - commentaire: string - description: string - id?: number - modified_at?: string - modified_by?: string - titre: string - unite: string + fiche_deux: number + fiche_une: number } Update: { - collectivite_id?: number - commentaire?: string - description?: string - id?: number - modified_at?: string - modified_by?: string - titre?: string - unite?: string + fiche_deux?: number + fiche_une?: number } Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_deux_fkey" + columns: ["fiche_deux"] isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_deux_fkey" + columns: ["fiche_deux"] isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_deux_fkey" + columns: ["fiche_deux"] isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_deux_fkey" + columns: ["fiche_deux"] isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_deux_fkey" + columns: ["fiche_deux"] isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_une_fkey" + columns: ["fiche_une"] isOneToOne: false - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_une_fkey" + columns: ["fiche_une"] isOneToOne: false - referencedRelation: "collectivite" + referencedRelation: "fiche_resume" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_une_fkey" + columns: ["fiche_une"] isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_une_fkey" + columns: ["fiche_une"] isOneToOne: false - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_une_fkey" + columns: ["fiche_une"] isOneToOne: false - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] + }, + ] + } + fiche_action_partenaire_tag: { + Row: { + fiche_id: number + partenaire_tag_id: number + } + Insert: { + fiche_id: number + partenaire_tag_id: number + } + Update: { + fiche_id?: number + partenaire_tag_id?: number + } + Relationships: [ + { + foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" + columns: ["fiche_id"] + isOneToOne: false + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_identite" + referencedRelation: "fiche_resume" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_partenaire_tag_partenaire_tag_id_fkey" + columns: ["partenaire_tag_id"] isOneToOne: false - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] + referencedRelation: "partenaire_tag" + referencedColumns: ["id"] + }, + ] + } + fiche_action_pilote: { + Row: { + fiche_id: number + tag_id: number | null + user_id: string | null + } + Insert: { + fiche_id: number + tag_id?: number | null + user_id?: string | null + } + Update: { + fiche_id?: number + tag_id?: number | null + user_id?: string | null + } + Relationships: [ + { + foreignKeyName: "fiche_action_pilote_fiche_id_fkey" + columns: ["fiche_id"] + isOneToOne: false + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_tag_id_fkey" + columns: ["tag_id"] isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] + referencedRelation: "personne_tag" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_user_id_fkey" + columns: ["user_id"] isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "users" + referencedColumns: ["id"] }, + ] + } + fiche_action_referent: { + Row: { + fiche_id: number + tag_id: number | null + user_id: string | null + } + Insert: { + fiche_id: number + tag_id?: number | null + user_id?: string | null + } + Update: { + fiche_id?: number + tag_id?: number | null + user_id?: string | null + } + Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_tag_id_fkey" + columns: ["tag_id"] isOneToOne: false - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "personne_tag" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_user_id_fkey" + columns: ["user_id"] isOneToOne: false - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "users" + referencedColumns: ["id"] }, + ] + } + fiche_action_service_tag: { + Row: { + fiche_id: number + service_tag_id: number + } + Insert: { + fiche_id: number + service_tag_id: number + } + Update: { + fiche_id?: number + service_tag_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_service_tag_id_fkey" + columns: ["service_tag_id"] isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] + referencedRelation: "service_tag" + referencedColumns: ["id"] }, + ] + } + fiche_action_sous_thematique: { + Row: { + fiche_id: number + thematique_id: number + } + Insert: { + fiche_id: number + thematique_id: number + } + Update: { + fiche_id?: number + thematique_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_thematique_id_fkey" + columns: ["thematique_id"] isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] + referencedRelation: "sous_thematique" + referencedColumns: ["id"] }, + ] + } + fiche_action_structure_tag: { + Row: { + fiche_id: number + structure_tag_id: number + } + Insert: { + fiche_id: number + structure_tag_id: number + } + Update: { + fiche_id?: number + structure_tag_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_structure_tag_id_fkey" + columns: ["structure_tag_id"] isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] + referencedRelation: "structure_tag" + referencedColumns: ["id"] }, + ] + } + fiche_action_thematique: { + Row: { + fiche_id: number + thematique_id: number + } + Insert: { + fiche_id: number + thematique_id: number + } + Update: { + fiche_id?: number + thematique_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] + foreignKeyName: "fiche_action_thematique_fiche_id_fkey" + columns: ["fiche_id"] + isOneToOne: false + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_modified_by_fkey" - columns: ["modified_by"] + foreignKeyName: "fiche_action_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "users" + referencedRelation: "fiches_action" referencedColumns: ["id"] }, ] } - indicateur_personnalise_objectif: { + filtre_intervalle: { + Row: { + id: string + intervalle: unknown + libelle: string + type: Database["public"]["Enums"]["collectivite_filtre_type"] + } + Insert: { + id: string + intervalle: unknown + libelle: string + type: Database["public"]["Enums"]["collectivite_filtre_type"] + } + Update: { + id?: string + intervalle?: unknown + libelle?: string + type?: Database["public"]["Enums"]["collectivite_filtre_type"] + } + Relationships: [] + } + financeur_tag: { Row: { - annee: number collectivite_id: number - indicateur_id: number - modified_at: string - modified_by: string | null - valeur: number | null + id: number + nom: string } Insert: { - annee: number collectivite_id: number - indicateur_id: number - modified_at?: string - modified_by?: string | null - valeur?: number | null + id?: number + nom: string } Update: { - annee?: number collectivite_id?: number - indicateur_id?: number - modified_at?: string - modified_by?: string | null - valeur?: number | null + id?: number + nom?: string + } + Relationships: [] + } + groupement: { + Row: { + id: number + nom: string + } + Insert: { + id?: number + nom: string + } + Update: { + id?: number + nom?: string + } + Relationships: [] + } + groupement_collectivite: { + Row: { + collectivite_id: number + groupement_id: number + } + Insert: { + collectivite_id: number + groupement_id: number + } + Update: { + collectivite_id?: number + groupement_id?: number } Relationships: [ { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_indicateur_id_fkey" + foreignKeyName: "groupement_collectivite_groupement_id_fkey" + columns: ["groupement_id"] + isOneToOne: false + referencedRelation: "groupement" + referencedColumns: ["id"] + }, + ] + } + indicateur_action: { + Row: { + action_id: string + indicateur_id: number + } + Insert: { + action_id: string + indicateur_id: number + } + Update: { + action_id?: string + indicateur_id?: number + } + Relationships: [ + { + foreignKeyName: "indicateur_action_action_id_fkey" + columns: ["action_id"] + isOneToOne: false + referencedRelation: "action_relation" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_action_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_action_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_action_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" + referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, ] } - indicateur_personnalise_resultat: { + indicateur_artificialisation: { Row: { - annee: number + activite: number collectivite_id: number - indicateur_id: number - modified_at: string - modified_by: string | null - valeur: number | null + ferroviaire: number + habitat: number + inconnue: number + mixte: number + routiere: number + total: number } Insert: { - annee: number + activite: number collectivite_id: number - indicateur_id: number - modified_at?: string - modified_by?: string | null - valeur?: number | null + ferroviaire: number + habitat: number + inconnue: number + mixte: number + routiere: number + total: number } Update: { - annee?: number + activite?: number collectivite_id?: number - indicateur_id?: number - modified_at?: string - modified_by?: string | null - valeur?: number | null + ferroviaire?: number + habitat?: number + inconnue?: number + mixte?: number + routiere?: number + total?: number } Relationships: [ { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, - { - foreignKeyName: "indicateur_personnalise_resultat_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" - referencedColumns: ["id"] - }, ] } - indicateur_personnalise_thematique: { + indicateur_categorie_tag: { Row: { + categorie_tag_id: number indicateur_id: number - thematique_id: number + modified_at: string + modified_by: string | null } Insert: { + categorie_tag_id: number indicateur_id: number - thematique_id: number + modified_at?: string + modified_by?: string | null } Update: { + categorie_tag_id?: number indicateur_id?: number - thematique_id?: number + modified_at?: string + modified_by?: string | null } Relationships: [ { - foreignKeyName: "indicateur_personnalise_thematique_indicateur_id_fkey" + foreignKeyName: "indicateur_categorie_tag_categorie_tag_id_fkey" + columns: ["categorie_tag_id"] + isOneToOne: false + referencedRelation: "categorie_tag" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_categorie_tag_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" + referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_thematique_thematique_id_fkey" - columns: ["thematique_id"] + foreignKeyName: "indicateur_categorie_tag_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "thematique" + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_categorie_tag_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "indicateur_definition" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_categorie_tag_modified_by_fkey" + columns: ["modified_by"] + isOneToOne: false + referencedRelation: "users" referencedColumns: ["id"] }, ] } - indicateur_pilote: { + indicateur_collectivite: { Row: { - collectivite_id: number | null - indicateur_id: string | null - indicateur_perso_id: number | null - tag_id: number | null - user_id: string | null - personne: Database["public"]["CompositeTypes"]["personne"] | null + collectivite_id: number + commentaire: string | null + confidentiel: boolean + favoris: boolean + indicateur_id: number } Insert: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - tag_id?: number | null - user_id?: string | null + collectivite_id: number + commentaire?: string | null + confidentiel?: boolean + favoris?: boolean + indicateur_id: number } Update: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - tag_id?: number | null - user_id?: string | null + collectivite_id?: number + commentaire?: string | null + confidentiel?: boolean + favoris?: boolean + indicateur_id?: number } Relationships: [ { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_indicateur_id_fkey" + foreignKeyName: "indicateur_collectivite_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_pilote_indicateur_id_fkey" + foreignKeyName: "indicateur_collectivite_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_pilote_indicateur_id_fkey" + foreignKeyName: "indicateur_collectivite_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, - { - foreignKeyName: "indicateur_pilote_indicateur_perso_id_fkey" - columns: ["indicateur_perso_id"] - isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_pilote_tag_id_fkey" - columns: ["tag_id"] - isOneToOne: false - referencedRelation: "personne_tag" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_pilote_user_id_fkey" - columns: ["user_id"] - isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] - }, ] } - indicateur_resultat: { + indicateur_definition: { Row: { - annee: number - collectivite_id: number - indicateur_id: string + borne_max: number | null + borne_min: number | null + collectivite_id: number | null + created_at: string + created_by: string | null + description: string | null + groupement_id: number | null + id: number + identifiant_referentiel: string | null modified_at: string modified_by: string | null - valeur: number | null + participation_score: boolean + sans_valeur_utilisateur: boolean + titre: string + titre_long: string | null + unite: string + valeur_calcule: string | null + indicateur_enfants: unknown | null + indicateur_parents: unknown | null } Insert: { - annee: number - collectivite_id: number - indicateur_id: string + borne_max?: number | null + borne_min?: number | null + collectivite_id?: number | null + created_at?: string + created_by?: string | null + description?: string | null + groupement_id?: number | null + id?: number + identifiant_referentiel?: string | null modified_at?: string modified_by?: string | null - valeur?: number | null + participation_score?: boolean + sans_valeur_utilisateur?: boolean + titre: string + titre_long?: string | null + unite: string + valeur_calcule?: string | null } Update: { - annee?: number - collectivite_id?: number - indicateur_id?: string + borne_max?: number | null + borne_min?: number | null + collectivite_id?: number | null + created_at?: string + created_by?: string | null + description?: string | null + groupement_id?: number | null + id?: number + identifiant_referentiel?: string | null modified_at?: string modified_by?: string | null - valeur?: number | null + participation_score?: boolean + sans_valeur_utilisateur?: boolean + titre?: string + titre_long?: string | null + unite?: string + valeur_calcule?: string | null } Relationships: [ { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_definition_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "site_labellisation" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_definition_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_active_real_collectivites" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_definition_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_carte_collectivite_active" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_definition_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_locales_engagement_collectivite" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_definition_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "suivi_audit" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_definition_created_by_fkey" + columns: ["created_by"] + isOneToOne: false + referencedRelation: "users" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_definition_groupement_id_fkey" + columns: ["groupement_id"] isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] + referencedRelation: "groupement" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_definition_modified_by_fkey" + columns: ["modified_by"] isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "users" + referencedColumns: ["id"] }, + ] + } + indicateur_groupe: { + Row: { + enfant: number + parent: number + } + Insert: { + enfant: number + parent: number + } + Update: { + enfant?: number + parent?: number + } + Relationships: [ { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_groupe_enfant_fkey" + columns: ["enfant"] isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_groupe_enfant_fkey" + columns: ["enfant"] isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_groupe_enfant_fkey" + columns: ["enfant"] isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "indicateur_definition" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_indicateur_id_fkey" - columns: ["indicateur_id"] + foreignKeyName: "indicateur_groupe_parent_fkey" + columns: ["parent"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_indicateur_id_fkey" - columns: ["indicateur_id"] + foreignKeyName: "indicateur_groupe_parent_fkey" + columns: ["parent"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_indicateur_id_fkey" - columns: ["indicateur_id"] + foreignKeyName: "indicateur_groupe_parent_fkey" + columns: ["parent"] isOneToOne: false referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, ] } - indicateur_resultat_commentaire: { + indicateur_pilote: { Row: { - annee: number | null collectivite_id: number - commentaire: string - indicateur_id: string - modified_at: string - modified_by: string + id: number + indicateur_id: number + tag_id: number | null + user_id: string | null + indicateur_pilote_user: unknown | null } Insert: { - annee?: number | null collectivite_id: number - commentaire: string - indicateur_id: string - modified_at?: string - modified_by?: string + id?: number + indicateur_id: number + tag_id?: number | null + user_id?: string | null } Update: { - annee?: number | null collectivite_id?: number - commentaire?: string - indicateur_id?: string - modified_at?: string - modified_by?: string + id?: number + indicateur_id?: number + tag_id?: number | null + user_id?: string | null } Relationships: [ { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_indicateur_id_fkey" + foreignKeyName: "indicateur_pilote_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_commentaire_indicateur_id_fkey" + foreignKeyName: "indicateur_pilote_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_commentaire_indicateur_id_fkey" + foreignKeyName: "indicateur_pilote_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_commentaire_modified_by_fkey" - columns: ["modified_by"] + foreignKeyName: "indicateur_pilote_tag_id_fkey" + columns: ["tag_id"] + isOneToOne: false + referencedRelation: "personne_tag" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_pilote_user_id_fkey" + columns: ["user_id"] isOneToOne: false referencedRelation: "users" referencedColumns: ["id"] }, ] } - indicateur_resultat_import: { + indicateur_service_tag: { Row: { - annee: number collectivite_id: number - indicateur_id: string - modified_at: string - source: string - source_id: string - valeur: number + indicateur_id: number + service_tag_id: number } Insert: { - annee: number collectivite_id: number - indicateur_id: string - modified_at: string - source: string - source_id: string - valeur: number + indicateur_id: number + service_tag_id: number } Update: { - annee?: number collectivite_id?: number - indicateur_id?: string - modified_at?: string - source?: string - source_id?: string - valeur?: number + indicateur_id?: number + service_tag_id?: number } Relationships: [ { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "site_labellisation" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_active_real_collectivites" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_carte_collectivite_active" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_locales_engagement_collectivite" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "suivi_audit" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "indicateur_definition" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_service_tag_service_tag_id_fkey" + columns: ["service_tag_id"] + isOneToOne: false + referencedRelation: "service_tag" + referencedColumns: ["id"] + }, + ] + } + indicateur_source: { + Row: { + id: string + libelle: string + ordre_affichage: number | null + } + Insert: { + id: string + libelle: string + ordre_affichage?: number | null + } + Update: { + id?: string + libelle?: string + ordre_affichage?: number | null + } + Relationships: [] + } + indicateur_source_metadonnee: { + Row: { + date_version: string + diffuseur: string | null + id: number + limites: string | null + methodologie: string | null + nom_donnees: string | null + producteur: string | null + source_id: string + } + Insert: { + date_version: string + diffuseur?: string | null + id?: number + limites?: string | null + methodologie?: string | null + nom_donnees?: string | null + producteur?: string | null + source_id: string + } + Update: { + date_version?: string + diffuseur?: string | null + id?: number + limites?: string | null + methodologie?: string | null + nom_donnees?: string | null + producteur?: string | null + source_id?: string + } + Relationships: [ + { + foreignKeyName: "indicateur_source_metadonnee_source_id_fkey" + columns: ["source_id"] isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] + referencedRelation: "indicateur_source" + referencedColumns: ["id"] }, + ] + } + indicateur_sous_thematique: { + Row: { + indicateur_id: number + sous_thematique_id: number + } + Insert: { + indicateur_id: number + sous_thematique_id: number + } + Update: { + indicateur_id?: number + sous_thematique_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_sous_thematique_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_sous_thematique_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_sous_thematique_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "indicateur_definition" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_sous_thematique_sous_thematique_id_fkey" + columns: ["sous_thematique_id"] isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "sous_thematique" + referencedColumns: ["id"] }, + ] + } + indicateur_thematique: { + Row: { + indicateur_id: number + thematique_id: number + } + Insert: { + indicateur_id: number + thematique_id: number + } + Update: { + indicateur_id?: number + thematique_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_resultat_import_indicateur_id_fkey" + foreignKeyName: "indicateur_thematique_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_indicateur_id_fkey" + foreignKeyName: "indicateur_thematique_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_indicateur_id_fkey" + foreignKeyName: "indicateur_thematique_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_source_id_fkey" - columns: ["source_id"] + foreignKeyName: "indicateur_thematique_thematique_id_fkey" + columns: ["thematique_id"] isOneToOne: false - referencedRelation: "indicateur_source" + referencedRelation: "thematique" referencedColumns: ["id"] }, ] } - indicateur_service_tag: { + indicateur_valeur: { Row: { - collectivite_id: number | null - indicateur_id: string | null - indicateur_perso_id: number | null - service_tag_id: number + collectivite_id: number + created_at: string + created_by: string | null + date_valeur: string + estimation: number | null + id: number + indicateur_id: number + metadonnee_id: number | null + modified_at: string + modified_by: string | null + objectif: number | null + objectif_commentaire: string | null + resultat: number | null + resultat_commentaire: string | null } Insert: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - service_tag_id: number + collectivite_id: number + created_at?: string + created_by?: string | null + date_valeur: string + estimation?: number | null + id?: number + indicateur_id: number + metadonnee_id?: number | null + modified_at?: string + modified_by?: string | null + objectif?: number | null + objectif_commentaire?: string | null + resultat?: number | null + resultat_commentaire?: string | null } Update: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - service_tag_id?: number + collectivite_id?: number + created_at?: string + created_by?: string | null + date_valeur?: string + estimation?: number | null + id?: number + indicateur_id?: number + metadonnee_id?: number | null + modified_at?: string + modified_by?: string | null + objectif?: number | null + objectif_commentaire?: string | null + resultat?: number | null + resultat_commentaire?: string | null } Relationships: [ { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + foreignKeyName: "indicateur_valeur_created_by_fkey" + columns: ["created_by"] + isOneToOne: false + referencedRelation: "users" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_valeur_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + foreignKeyName: "indicateur_valeur_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + foreignKeyName: "indicateur_valeur_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_indicateur_perso_id_fkey" - columns: ["indicateur_perso_id"] + foreignKeyName: "indicateur_valeur_metadonnee_id_fkey" + columns: ["metadonnee_id"] isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" + referencedRelation: "indicateur_source_metadonnee" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_service_tag_id_fkey" - columns: ["service_tag_id"] + foreignKeyName: "indicateur_valeur_modified_by_fkey" + columns: ["modified_by"] isOneToOne: false - referencedRelation: "service_tag" + referencedRelation: "users" referencedColumns: ["id"] }, ] } - indicateur_source: { - Row: { - id: string - libelle: string - } - Insert: { - id: string - libelle: string - } - Update: { - id?: string - libelle?: string - } - Relationships: [] - } - indicateur_terristory_json: { - Row: { - created_at: string - indicateurs: Json - } - Insert: { - created_at?: string - indicateurs: Json - } - Update: { - created_at?: string - indicateurs?: Json - } - Relationships: [] - } - indicateurs_json: { - Row: { - created_at: string - indicateurs: Json - } - Insert: { - created_at?: string - indicateurs: Json - } - Update: { - created_at?: string - indicateurs?: Json - } - Relationships: [] - } justification: { Row: { collectivite_id: number @@ -22502,17 +20249,21 @@ export type Database = { thematique: { Row: { id: number - md_id: Database["public"]["Enums"]["indicateur_thematique"] | null + md_id: Database["public"]["Enums"]["old_indicateur_thematique"] | null nom: string } Insert: { id?: number - md_id?: Database["public"]["Enums"]["indicateur_thematique"] | null + md_id?: + | Database["public"]["Enums"]["old_indicateur_thematique"] + | null nom: string } Update: { id?: number - md_id?: Database["public"]["Enums"]["indicateur_thematique"] | null + md_id?: + | Database["public"]["Enums"]["old_indicateur_thematique"] + | null nom?: string } Relationships: [] @@ -25766,10 +23517,10 @@ export type Database = { } crm_indicateurs: { Row: { - id: string | null + id: number | null nb_prive: number | null - nom: string | null pourcentage_prive: number | null + titre: string | null } Relationships: [] } @@ -26331,7 +24082,7 @@ export type Database = { | null id: number | null indicateurs: - | Database["public"]["CompositeTypes"]["indicateur_generique"][] + | Database["public"]["Tables"]["indicateur_definition"]["Row"][] | null maj_termine: boolean | null modified_at: string | null @@ -26777,60 +24528,12 @@ export type Database = { } Relationships: [] } - indicateur_definitions: { - Row: { - collectivite_id: number | null - description: string | null - indicateur_id: string | null - indicateur_perso_id: number | null - nom: string | null - unite: string | null - } - Relationships: [] - } - indicateur_rempli: { - Row: { - collectivite_id: number | null - indicateur_id: string | null - perso_id: number | null - rempli: boolean | null - } - Relationships: [] - } indicateur_summary: { Row: { - categorie: string | null - collectivite_id: number | null - nombre: number | null - rempli: number | null - } - Relationships: [] - } - indicateurs: { - Row: { - annee: number | null - collectivite_id: number | null - commentaire: string | null - indicateur_id: string | null - indicateur_perso_id: number | null - source: string | null - source_id: string | null - type: Database["public"]["Enums"]["indicateur_valeur_type"] | null - valeur: number | null - } - Relationships: [] - } - indicateurs_collectivite: { - Row: { + categorie: string | null collectivite_id: number | null - description: string | null - indicateur_id: string | null - indicateur_personnalise_id: number | null - nom: string | null - programmes: - | Database["public"]["Enums"]["indicateur_programme"][] - | null - unite: string | null + nombre: number | null + rempli: number | null } Relationships: [] } @@ -30294,22 +27997,6 @@ export type Database = { } Returns: undefined } - axes: { - Args: { - "": unknown - } - Returns: { - collectivite_id: number - created_at: string - id: number - modified_at: string - modified_by: string | null - nom: string | null - parent: number | null - plan: number | null - type: number | null - }[] - } can: { Args: { "": unknown[] @@ -30328,25 +28015,6 @@ export type Database = { } Returns: string } - cherchable: - | { - Args: { - "": unknown - } - Returns: string - } - | { - Args: { - "": unknown - } - Returns: string - } - | { - Args: { - "": unknown - } - Returns: string - } chunk_compression_stats: { Args: { hypertable: unknown @@ -30480,6 +28148,7 @@ export type Database = { fonction: Database["public"]["Enums"]["membre_fonction"] details_fonction: string champ_intervention: Database["public"]["Enums"]["referentiel"][] + invitation_id: string }[] } collectivite_personne_tag: { @@ -30518,7 +28187,7 @@ export type Database = { } Returns: { id: number - md_id: Database["public"]["Enums"]["indicateur_thematique"] | null + md_id: Database["public"]["Enums"]["old_indicateur_thematique"] | null nom: string }[] } @@ -30550,12 +28219,6 @@ export type Database = { Args: Record Returns: undefined } - confidentiel: { - Args: { - "": unknown - } - Returns: boolean - } consume_invitation: { Args: { id: string @@ -30603,8 +28266,7 @@ export type Database = { collectivite_id: number axe_id?: number action_id?: unknown - indicateur_referentiel_id?: unknown - indicateur_personnalise_id?: number + indicateur_id?: number } Returns: { amelioration_continue: boolean | null @@ -30656,46 +28318,6 @@ export type Database = { } Returns: unknown } - definition_perso: { - Args: { - "": unknown - } - Returns: { - collectivite_id: number - commentaire: string - description: string - id: number - modified_at: string - modified_by: string - titre: string - unite: string - }[] - } - definition_referentiel: { - Args: { - "": unknown - } - Returns: { - description: string - id: string - identifiant: string | null - modified_at: string - nom: string - parent: string | null - participation_score: boolean - programmes: Database["public"]["Enums"]["indicateur_programme"][] - sans_valeur: boolean - selection: boolean - source: string | null - thematiques: Database["public"]["Enums"]["indicateur_thematique"][] - titre_long: string - type: - | Database["public"]["Enums"]["indicateur_referentiel_type"] - | null - unite: string - valeur_indicateur: string | null - }[] - } delete_axe_all: { Args: { axe_id: number @@ -30816,45 +28438,6 @@ export type Database = { } Returns: string[] } - enfants: - | { - Args: { - "": unknown - } - Returns: { - collectivite_id: number | null - description: string | null - indicateur_id: string | null - indicateur_perso_id: number | null - nom: string | null - unite: string | null - }[] - } - | { - Args: { - "": unknown - } - Returns: { - description: string - id: string - identifiant: string | null - modified_at: string - nom: string - parent: string | null - participation_score: boolean - programmes: Database["public"]["Enums"]["indicateur_programme"][] - sans_valeur: boolean - selection: boolean - source: string | null - thematiques: Database["public"]["Enums"]["indicateur_thematique"][] - titre_long: string - type: - | Database["public"]["Enums"]["indicateur_referentiel_type"] - | null - unite: string - valeur_indicateur: string | null - }[] - } enlever_fiche_action_d_un_axe: { Args: { fiche_id: number @@ -31020,16 +28603,6 @@ export type Database = { titre: string | null }[] } - fiches_non_classees: { - Args: { - "": unknown - } - Returns: { - fiche_id: number - indicateur_id: string | null - indicateur_personnalise_id: number | null - }[] - } filter_fiches_action: { Args: { collectivite_id: number @@ -31812,15 +29385,6 @@ export type Database = { } Returns: number } - import_sources: { - Args: { - "": unknown - } - Returns: { - id: string - libelle: string - }[] - } in_todo: { Args: Record Returns: boolean @@ -31837,16 +29401,6 @@ export type Database = { } Returns: string } - indicateur_action: { - Args: { - "": unknown - } - Returns: { - action_id: string - indicateur_id: string - modified_at: string - }[] - } indicateur_artificialisation: { Args: { "": unknown @@ -31862,11 +29416,76 @@ export type Database = { total: number }[] } + indicateur_enfants: { + Args: { + "": unknown + } + Returns: { + borne_max: number | null + borne_min: number | null + collectivite_id: number | null + created_at: string + created_by: string | null + description: string | null + groupement_id: number | null + id: number + identifiant_referentiel: string | null + modified_at: string + modified_by: string | null + participation_score: boolean + sans_valeur_utilisateur: boolean + titre: string + titre_long: string | null + unite: string + valeur_calcule: string | null + }[] + } + indicateur_parents: { + Args: { + "": unknown + } + Returns: { + borne_max: number | null + borne_min: number | null + collectivite_id: number | null + created_at: string + created_by: string | null + description: string | null + groupement_id: number | null + id: number + identifiant_referentiel: string | null + modified_at: string + modified_by: string | null + participation_score: boolean + sans_valeur_utilisateur: boolean + titre: string + titre_long: string | null + unite: string + valeur_calcule: string | null + }[] + } + indicateur_pilote_user: { + Args: { + "": unknown + } + Returns: { + cgu_acceptees_le: string | null + created_at: string + deleted: boolean + email: string + limited: boolean + modified_at: string + nom: string + prenom: string + telephone: string | null + user_id: string + } + } indicateurs_gaz_effet_serre: { Args: { "": unknown } - Returns: Database["public"]["Tables"]["indicateur_resultat_import"]["Row"][][] + Returns: Database["public"]["Tables"]["indicateur_valeur"]["Row"][][] } interpolate: | { @@ -31949,6 +29568,20 @@ export type Database = { } Returns: string } + is_indicateur_collectivite: { + Args: { + indicateur_id: number + collectivite_id: number + } + Returns: boolean + } + is_indicateur_confidential: { + Args: { + indicateur_id: number + collectivite_id: number + } + Returns: boolean + } is_normal_function: { Args: { "": unknown @@ -32329,17 +29962,30 @@ export type Database = { } Returns: string } - personne: { + personnes_collectivite: { Args: { - "": unknown + collectivite_id: number } Returns: Database["public"]["CompositeTypes"]["personne"][] } - personnes_collectivite: { + peut_ajouter_une_valeur_a_l_indicateur: { Args: { - collectivite_id: number + indicateur_id: number } - Returns: Database["public"]["CompositeTypes"]["personne"][] + Returns: boolean + } + peut_lire_l_indicateur: { + Args: { + indicateur_id: number + } + Returns: boolean + } + peut_lire_la_categorie_d_indicateur: { + Args: { + indicateur_id: number + categorie_tag_id: number + } + Returns: boolean } peut_lire_la_fiche: { Args: { @@ -32347,6 +29993,19 @@ export type Database = { } Returns: boolean } + peut_modifier_l_indicateur: { + Args: { + indicateur_id: number + } + Returns: boolean + } + peut_modifier_la_categorie_d_indicateur: { + Args: { + indicateur_id: number + categorie_tag_id: number + } + Returns: boolean + } peut_modifier_la_fiche: { Args: { fiche_id: number @@ -32365,18 +30024,6 @@ export type Database = { Args: Record Returns: number } - pilotes: { - Args: { - "": unknown - } - Returns: { - collectivite_id: number | null - indicateur_id: string | null - indicateur_perso_id: number | null - tag_id: number | null - user_id: string | null - }[] - } plan: { Args: { "": number @@ -32520,12 +30167,6 @@ export type Database = { } Returns: undefined } - rempli: { - Args: { - "": unknown - } - Returns: boolean - } reorder_chunk: { Args: { chunk: unknown @@ -32612,17 +30253,6 @@ export type Database = { } Returns: string } - services: { - Args: { - "": unknown - } - Returns: { - collectivite_id: number | null - indicateur_id: string | null - indicateur_perso_id: number | null - service_tag_id: number - }[] - } set_adaptive_chunking: { Args: { hypertable: unknown @@ -32877,17 +30507,7 @@ export type Database = { } Returns: { id: number - md_id: Database["public"]["Enums"]["indicateur_thematique"] | null - nom: string - }[] - } - thematiques: { - Args: { - "": unknown - } - Returns: { - id: number - md_id: Database["public"]["Enums"]["indicateur_thematique"] | null + md_id: Database["public"]["Enums"]["old_indicateur_thematique"] | null nom: string }[] } @@ -33331,18 +30951,6 @@ export type Database = { indicateur_group: "cae" | "crte" | "eci" indicateur_programme: "clef" | "eci" | "cae" | "pcaet" | "crte" indicateur_referentiel_type: "resultat" | "impact" - indicateur_thematique: - | "eci_dechets" - | "energie_et_climat" - | "indicateur_thematique" - | "agri_alim" - | "urbanisme_et_amenagement" - | "mobilite_et_transport" - | "nature_environnement_air" - | "eau_assainissement" - | "strategie_orga_interne" - | "activites_economiques" - | "solidarite_lien_social" indicateur_valeur_type: "resultat" | "objectif" | "import" membre_fonction: | "referent" @@ -33363,6 +30971,18 @@ export type Database = { | "SIVU" | "PETR" niveau_acces: "admin" | "edition" | "lecture" + old_indicateur_thematique: + | "eci_dechets" + | "energie_et_climat" + | "indicateur_thematique" + | "agri_alim" + | "urbanisme_et_amenagement" + | "mobilite_et_transport" + | "nature_environnement_air" + | "eau_assainissement" + | "strategie_orga_interne" + | "activites_economiques" + | "solidarite_lien_social" preuve_type: | "complementaire" | "reglementaire" diff --git a/supabase/functions/_shared/database.types.ts b/supabase/functions/_shared/database.types.ts index e22e60671d..09c914b6b7 100644 --- a/supabase/functions/_shared/database.types.ts +++ b/supabase/functions/_shared/database.types.ts @@ -3499,15 +3499,15 @@ export type Database = { action_impact_indicateur: { Row: { action_impact_id: number - indicateur_id: string + indicateur_id: number } Insert: { action_impact_id: number - indicateur_id: string + indicateur_id: number } Update: { action_impact_id?: number - indicateur_id?: string + indicateur_id?: number } Relationships: [ { @@ -4761,743 +4761,769 @@ export type Database = { } Relationships: [] } - client_scores: { + categorie_tag: { Row: { - collectivite_id: number - modified_at: string - payload_timestamp: string | null - referentiel: Database["public"]["Enums"]["referentiel"] - scores: Json + collectivite_id: number | null + created_at: string + created_by: string | null + groupement_id: number | null + id: number + nom: string + visible: boolean } Insert: { - collectivite_id: number - modified_at: string - payload_timestamp?: string | null - referentiel: Database["public"]["Enums"]["referentiel"] - scores: Json + collectivite_id?: number | null + created_at?: string + created_by?: string | null + groupement_id?: number | null + id?: number + nom: string + visible?: boolean } Update: { - collectivite_id?: number - modified_at?: string - payload_timestamp?: string | null - referentiel?: Database["public"]["Enums"]["referentiel"] - scores?: Json + collectivite_id?: number | null + created_at?: string + created_by?: string | null + groupement_id?: number | null + id?: number + nom?: string + visible?: boolean } Relationships: [ { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_collectivite_id_fkey" + foreignKeyName: "categorie_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, + { + foreignKeyName: "categorie_tag_created_by_fkey" + columns: ["created_by"] + isOneToOne: false + referencedRelation: "users" + referencedColumns: ["id"] + }, + { + foreignKeyName: "categorie_tag_groupement_id_fkey" + columns: ["groupement_id"] + isOneToOne: false + referencedRelation: "groupement" + referencedColumns: ["id"] + }, ] } - client_scores_update: { + client_scores: { Row: { collectivite_id: number modified_at: string + payload_timestamp: string | null referentiel: Database["public"]["Enums"]["referentiel"] + scores: Json } Insert: { collectivite_id: number modified_at: string + payload_timestamp?: string | null referentiel: Database["public"]["Enums"]["referentiel"] + scores: Json } Update: { collectivite_id?: number modified_at?: string + payload_timestamp?: string | null referentiel?: Database["public"]["Enums"]["referentiel"] + scores?: Json } Relationships: [ { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "client_scores_update_collectivite_id_fkey" + foreignKeyName: "client_scores_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" @@ -5505,1142 +5531,1142 @@ export type Database = { }, ] } - collectivite: { - Row: { - access_restreint: boolean - created_at: string - id: number - modified_at: string - active: boolean | null - collectivite_axe: unknown | null - collectivite_personne_tag: unknown | null - collectivite_service_tag: unknown | null - collectivite_structure_tag: unknown | null - collectivite_thematique: unknown | null - collectivite_utilisateur: unknown | null - } - Insert: { - access_restreint?: boolean - created_at?: string - id?: number - modified_at?: string - } - Update: { - access_restreint?: boolean - created_at?: string - id?: number - modified_at?: string - } - Relationships: [] - } - collectivite_banatic_competence: { + client_scores_update: { Row: { collectivite_id: number - competence_code: number + modified_at: string + referentiel: Database["public"]["Enums"]["referentiel"] } Insert: { collectivite_id: number - competence_code: number + modified_at: string + referentiel: Database["public"]["Enums"]["referentiel"] } Update: { collectivite_id?: number - competence_code?: number + modified_at?: string + referentiel?: Database["public"]["Enums"]["referentiel"] } Relationships: [ { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" + foreignKeyName: "client_scores_update_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, - { - foreignKeyName: "collectivite_banatic_competence_competence_code_fkey" - columns: ["competence_code"] - isOneToOne: false - referencedRelation: "banatic_competence" - referencedColumns: ["code"] - }, ] } - collectivite_bucket: { + collectivite: { + Row: { + access_restreint: boolean + created_at: string + id: number + modified_at: string + active: boolean | null + collectivite_axe: unknown | null + collectivite_personne_tag: unknown | null + collectivite_service_tag: unknown | null + collectivite_structure_tag: unknown | null + collectivite_thematique: unknown | null + collectivite_utilisateur: unknown | null + } + Insert: { + access_restreint?: boolean + created_at?: string + id?: number + modified_at?: string + } + Update: { + access_restreint?: boolean + created_at?: string + id?: number + modified_at?: string + } + Relationships: [] + } + collectivite_banatic_competence: { Row: { - bucket_id: string collectivite_id: number + competence_code: number } Insert: { - bucket_id: string collectivite_id: number + competence_code: number } Update: { - bucket_id?: string collectivite_id?: number + competence_code?: number } Relationships: [ { - foreignKeyName: "collectivite_bucket_bucket_id_fkey" - columns: ["bucket_id"] - isOneToOne: false - referencedRelation: "buckets" - referencedColumns: ["id"] - }, - { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_bucket_collectivite_id_fkey" + foreignKeyName: "collectivite_banatic_competence_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, + { + foreignKeyName: "collectivite_banatic_competence_competence_code_fkey" + columns: ["competence_code"] + isOneToOne: false + referencedRelation: "banatic_competence" + referencedColumns: ["code"] + }, ] } - collectivite_test: { + collectivite_bucket: { Row: { - collectivite_id: number | null - id: number - nom: string + bucket_id: string + collectivite_id: number } Insert: { - collectivite_id?: number | null - id?: number - nom: string + bucket_id: string + collectivite_id: number } Update: { - collectivite_id?: number | null - id?: number - nom?: string + bucket_id?: string + collectivite_id?: number } Relationships: [ { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_bucket_id_fkey" + columns: ["bucket_id"] + isOneToOne: false + referencedRelation: "buckets" + referencedColumns: ["id"] + }, + { + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "collectivite_test_collectivite_id_fkey" + foreignKeyName: "collectivite_bucket_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" @@ -6648,371 +6674,368 @@ export type Database = { }, ] } - commune: { + collectivite_test: { Row: { - code: string collectivite_id: number | null id: number nom: string } Insert: { - code: string collectivite_id?: number | null id?: number nom: string } Update: { - code?: string collectivite_id?: number | null id?: number nom?: string } Relationships: [ { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "commune_collectivite_id_fkey" + foreignKeyName: "collectivite_test_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" @@ -7020,8430 +7043,6154 @@ export type Database = { }, ] } - confidentialite_crud: { + commune: { Row: { - c: Database["public"]["Enums"]["confidentialite_option_crud"] - d: Database["public"]["Enums"]["confidentialite_option_crud"] - nom_element: string - profil: Database["public"]["Enums"]["confidentialite_profil"] - r: Database["public"]["Enums"]["confidentialite_option_crud"] - type_element: Database["public"]["Enums"]["confidentialite_type_element"] - u: Database["public"]["Enums"]["confidentialite_option_crud"] + code: string + collectivite_id: number | null + id: number + nom: string } Insert: { - c: Database["public"]["Enums"]["confidentialite_option_crud"] - d: Database["public"]["Enums"]["confidentialite_option_crud"] - nom_element: string - profil: Database["public"]["Enums"]["confidentialite_profil"] - r: Database["public"]["Enums"]["confidentialite_option_crud"] - type_element: Database["public"]["Enums"]["confidentialite_type_element"] - u: Database["public"]["Enums"]["confidentialite_option_crud"] + code: string + collectivite_id?: number | null + id?: number + nom: string } Update: { - c?: Database["public"]["Enums"]["confidentialite_option_crud"] - d?: Database["public"]["Enums"]["confidentialite_option_crud"] - nom_element?: string - profil?: Database["public"]["Enums"]["confidentialite_profil"] - r?: Database["public"]["Enums"]["confidentialite_option_crud"] - type_element?: Database["public"]["Enums"]["confidentialite_type_element"] - u?: Database["public"]["Enums"]["confidentialite_option_crud"] - } - Relationships: [] - } - cot: { - Row: { - actif: boolean - collectivite_id: number - signataire: number | null - } - Insert: { - actif: boolean - collectivite_id: number - signataire?: number | null - } - Update: { - actif?: boolean - collectivite_id?: number - signataire?: number | null + code?: string + collectivite_id?: number | null + id?: number + nom?: string } Relationships: [ { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true + isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_collectivite_id_fkey" + foreignKeyName: "commune_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false - referencedRelation: "carte_collectivite_active" + referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, - { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + ] + } + confidentialite_crud: { + Row: { + c: Database["public"]["Enums"]["confidentialite_option_crud"] + d: Database["public"]["Enums"]["confidentialite_option_crud"] + nom_element: string + profil: Database["public"]["Enums"]["confidentialite_profil"] + r: Database["public"]["Enums"]["confidentialite_option_crud"] + type_element: Database["public"]["Enums"]["confidentialite_type_element"] + u: Database["public"]["Enums"]["confidentialite_option_crud"] + } + Insert: { + c: Database["public"]["Enums"]["confidentialite_option_crud"] + d: Database["public"]["Enums"]["confidentialite_option_crud"] + nom_element: string + profil: Database["public"]["Enums"]["confidentialite_profil"] + r: Database["public"]["Enums"]["confidentialite_option_crud"] + type_element: Database["public"]["Enums"]["confidentialite_type_element"] + u: Database["public"]["Enums"]["confidentialite_option_crud"] + } + Update: { + c?: Database["public"]["Enums"]["confidentialite_option_crud"] + d?: Database["public"]["Enums"]["confidentialite_option_crud"] + nom_element?: string + profil?: Database["public"]["Enums"]["confidentialite_profil"] + r?: Database["public"]["Enums"]["confidentialite_option_crud"] + type_element?: Database["public"]["Enums"]["confidentialite_type_element"] + u?: Database["public"]["Enums"]["confidentialite_option_crud"] + } + Relationships: [] + } + cot: { + Row: { + actif: boolean + collectivite_id: number + signataire: number | null + } + Insert: { + actif: boolean + collectivite_id: number + signataire?: number | null + } + Update: { + actif?: boolean + collectivite_id?: number + signataire?: number | null + } + Relationships: [ + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "action_snippet" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "action_statuts" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "active_collectivite" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "auditeurs" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "audits" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true + referencedRelation: "carte_collectivite_active" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "cot_signataire_fkey" - columns: ["signataire"] - isOneToOne: false + foreignKeyName: "cot_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: true referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, - ] - } - dcp: { - Row: { - cgu_acceptees_le: string | null - created_at: string - deleted: boolean - email: string - limited: boolean - modified_at: string - nom: string - prenom: string - telephone: string | null - user_id: string - } - Insert: { - cgu_acceptees_le?: string | null - created_at?: string - deleted?: boolean - email: string - limited?: boolean - modified_at?: string - nom: string - prenom: string - telephone?: string | null - user_id: string - } - Update: { - cgu_acceptees_le?: string | null - created_at?: string - deleted?: boolean - email?: string - limited?: boolean - modified_at?: string - nom?: string - prenom?: string - telephone?: string | null - user_id?: string - } - Relationships: [ - { - foreignKeyName: "dcp_user_id_fkey" - columns: ["user_id"] - isOneToOne: true - referencedRelation: "users" - referencedColumns: ["id"] - }, - ] - } - effet_attendu: { - Row: { - id: number - nom: string - notice: string | null - } - Insert: { - id?: number - nom: string - notice?: string | null - } - Update: { - id?: number - nom?: string - notice?: string | null - } - Relationships: [] - } - epci: { - Row: { - collectivite_id: number | null - id: number - nature: Database["public"]["Enums"]["nature"] - nom: string - siren: string - } - Insert: { - collectivite_id?: number | null - id?: number - nature: Database["public"]["Enums"]["nature"] - nom: string - siren: string - } - Update: { - collectivite_id?: number | null - id?: number - nature?: Database["public"]["Enums"]["nature"] - nom?: string - siren?: string - } - Relationships: [ { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] + isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "epci_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "cot_signataire_fkey" + columns: ["signataire"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, ] } - fiche_action: { + dcp: { Row: { - amelioration_continue: boolean | null - budget_previsionnel: number | null - calendrier: string | null - cibles: Database["public"]["Enums"]["fiche_action_cibles"][] | null - collectivite_id: number + cgu_acceptees_le: string | null created_at: string - date_debut: string | null - date_fin_provisoire: string | null - description: string | null - financements: string | null - id: number - maj_termine: boolean | null + deleted: boolean + email: string + limited: boolean modified_at: string - modified_by: string | null - niveau_priorite: - | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] - | null - notes_complementaires: string | null - objectifs: string | null - piliers_eci: - | Database["public"]["Enums"]["fiche_action_piliers_eci"][] - | null - ressources: string | null - restreint: boolean | null - resultats_attendus: - | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] - | null - statut: Database["public"]["Enums"]["fiche_action_statuts"] | null - titre: string | null + nom: string + prenom: string + telephone: string | null + user_id: string } Insert: { - amelioration_continue?: boolean | null - budget_previsionnel?: number | null - calendrier?: string | null - cibles?: Database["public"]["Enums"]["fiche_action_cibles"][] | null - collectivite_id: number + cgu_acceptees_le?: string | null created_at?: string - date_debut?: string | null - date_fin_provisoire?: string | null - description?: string | null - financements?: string | null - id?: number - maj_termine?: boolean | null + deleted?: boolean + email: string + limited?: boolean modified_at?: string - modified_by?: string | null - niveau_priorite?: - | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] - | null - notes_complementaires?: string | null - objectifs?: string | null - piliers_eci?: - | Database["public"]["Enums"]["fiche_action_piliers_eci"][] - | null - ressources?: string | null - restreint?: boolean | null - resultats_attendus?: - | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] - | null - statut?: Database["public"]["Enums"]["fiche_action_statuts"] | null - titre?: string | null + nom: string + prenom: string + telephone?: string | null + user_id: string } Update: { - amelioration_continue?: boolean | null - budget_previsionnel?: number | null - calendrier?: string | null - cibles?: Database["public"]["Enums"]["fiche_action_cibles"][] | null - collectivite_id?: number + cgu_acceptees_le?: string | null created_at?: string - date_debut?: string | null - date_fin_provisoire?: string | null - description?: string | null - financements?: string | null - id?: number - maj_termine?: boolean | null + deleted?: boolean + email?: string + limited?: boolean modified_at?: string - modified_by?: string | null - niveau_priorite?: - | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] - | null - notes_complementaires?: string | null - objectifs?: string | null - piliers_eci?: - | Database["public"]["Enums"]["fiche_action_piliers_eci"][] - | null - ressources?: string | null - restreint?: boolean | null - resultats_attendus?: - | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] - | null - statut?: Database["public"]["Enums"]["fiche_action_statuts"] | null - titre?: string | null + nom?: string + prenom?: string + telephone?: string | null + user_id?: string } Relationships: [ { - foreignKeyName: "fiche_action_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] + foreignKeyName: "dcp_user_id_fkey" + columns: ["user_id"] + isOneToOne: true + referencedRelation: "users" + referencedColumns: ["id"] }, - { - foreignKeyName: "fiche_action_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false + ] + } + effet_attendu: { + Row: { + id: number + nom: string + notice: string | null + } + Insert: { + id?: number + nom: string + notice?: string | null + } + Update: { + id?: number + nom?: string + notice?: string | null + } + Relationships: [] + } + epci: { + Row: { + collectivite_id: number | null + id: number + nature: Database["public"]["Enums"]["nature"] + nom: string + siren: string + } + Insert: { + collectivite_id?: number | null + id?: number + nature: Database["public"]["Enums"]["nature"] + nom: string + siren: string + } + Update: { + collectivite_id?: number | null + id?: number + nature?: Database["public"]["Enums"]["nature"] + nom?: string + siren?: string + } + Relationships: [ + { + foreignKeyName: "epci_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "action_snippet" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "epci_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_collectivite_id_fkey" + foreignKeyName: "epci_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, - { - foreignKeyName: "fiche_action_modified_by_fkey" - columns: ["modified_by"] - isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] - }, ] } - fiche_action_action: { + fiche_action: { Row: { - action_id: string - fiche_id: number + amelioration_continue: boolean | null + budget_previsionnel: number | null + calendrier: string | null + cibles: Database["public"]["Enums"]["fiche_action_cibles"][] | null + collectivite_id: number + created_at: string + date_debut: string | null + date_fin_provisoire: string | null + description: string | null + financements: string | null + id: number + maj_termine: boolean | null + modified_at: string + modified_by: string | null + niveau_priorite: + | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] + | null + notes_complementaires: string | null + objectifs: string | null + piliers_eci: + | Database["public"]["Enums"]["fiche_action_piliers_eci"][] + | null + ressources: string | null + restreint: boolean | null + resultats_attendus: + | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] + | null + statut: Database["public"]["Enums"]["fiche_action_statuts"] | null + titre: string | null } Insert: { - action_id: string - fiche_id: number + amelioration_continue?: boolean | null + budget_previsionnel?: number | null + calendrier?: string | null + cibles?: Database["public"]["Enums"]["fiche_action_cibles"][] | null + collectivite_id: number + created_at?: string + date_debut?: string | null + date_fin_provisoire?: string | null + description?: string | null + financements?: string | null + id?: number + maj_termine?: boolean | null + modified_at?: string + modified_by?: string | null + niveau_priorite?: + | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] + | null + notes_complementaires?: string | null + objectifs?: string | null + piliers_eci?: + | Database["public"]["Enums"]["fiche_action_piliers_eci"][] + | null + ressources?: string | null + restreint?: boolean | null + resultats_attendus?: + | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] + | null + statut?: Database["public"]["Enums"]["fiche_action_statuts"] | null + titre?: string | null } Update: { - action_id?: string - fiche_id?: number + amelioration_continue?: boolean | null + budget_previsionnel?: number | null + calendrier?: string | null + cibles?: Database["public"]["Enums"]["fiche_action_cibles"][] | null + collectivite_id?: number + created_at?: string + date_debut?: string | null + date_fin_provisoire?: string | null + description?: string | null + financements?: string | null + id?: number + maj_termine?: boolean | null + modified_at?: string + modified_by?: string | null + niveau_priorite?: + | Database["public"]["Enums"]["fiche_action_niveaux_priorite"] + | null + notes_complementaires?: string | null + objectifs?: string | null + piliers_eci?: + | Database["public"]["Enums"]["fiche_action_piliers_eci"][] + | null + ressources?: string | null + restreint?: boolean | null + resultats_attendus?: + | Database["public"]["Enums"]["fiche_action_resultats_attendus"][] + | null + statut?: Database["public"]["Enums"]["fiche_action_statuts"] | null + titre?: string | null } Relationships: [ { - foreignKeyName: "fiche_action_action_action_id_fkey" - columns: ["action_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "action_relation" - referencedColumns: ["id"] + referencedRelation: "action_snippet" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_action_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] + referencedRelation: "action_statuts" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_action_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "active_collectivite" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_action_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "auditeurs" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_action_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "audits" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_action_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "carte_collectivite_active" + referencedColumns: ["collectivite_id"] }, - ] - } - fiche_action_axe: { - Row: { - axe_id: number - fiche_id: number - } - Insert: { - axe_id: number - fiche_id: number - } - Update: { - axe_id?: number - fiche_id?: number - } - Relationships: [ { - foreignKeyName: "fiche_action_axe_axe_id_fkey" - columns: ["axe_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "axe" + referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "fiche_action_axe_axe_id_fkey" - columns: ["axe_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "plan_action" - referencedColumns: ["id"] + referencedRelation: "collectivite" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_axe_axe_id_fkey" - columns: ["axe_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "plan_action_profondeur" - referencedColumns: ["id"] + referencedRelation: "collectivite_action_statut" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_axe_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] + referencedRelation: "collectivite_card" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_axe_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "collectivite_carte_identite" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_axe_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" + referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "fiche_action_axe_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "collectivite_labellisation" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_axe_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "collectivite_membre_crm" + referencedColumns: ["collectivite_id"] }, - ] - } - fiche_action_effet_attendu: { - Row: { - effet_attendu_id: number - fiche_id: number - } - Insert: { - effet_attendu_id: number - fiche_id: number - } - Update: { - effet_attendu_id?: number - fiche_id?: number - } - Relationships: [ { - foreignKeyName: "fiche_action_effet_attendu_effet_attendu_id_fkey" - columns: ["effet_attendu_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "effet_attendu" - referencedColumns: ["id"] + referencedRelation: "collectivite_niveau_acces" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] + referencedRelation: "collectivite_plan_action" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "collectivite_plan_action" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "collectivite_referentiel" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "collectivite_utilisateur" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "collectivites_crm" + referencedColumns: ["collectivite_id"] }, - ] - } - fiche_action_financeur_tag: { - Row: { - fiche_id: number - financeur_tag_id: number - id: number - montant_ttc: number | null - } - Insert: { - fiche_id: number - financeur_tag_id: number - id?: number - montant_ttc?: number | null - } - Update: { - fiche_id?: number - financeur_tag_id?: number - id?: number - montant_ttc?: number | null - } - Relationships: [ { - foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] + referencedRelation: "comparaison_scores_audit" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "crm_collectivites" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] + referencedRelation: "crm_usages" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "crm_usages" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" - columns: ["fiche_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] + referencedRelation: "engagement_collectivite" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "fiche_action_financeur_tag_financeur_tag_id_fkey" - columns: ["financeur_tag_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "financeur_tag" - referencedColumns: ["id"] - }, - ] - } - fiche_action_import_csv: { - Row: { - amelioration_continue: string | null - axe: string | null - budget: string | null - calendrier: string | null - cibles: string | null - collectivite_id: string | null - date_debut: string | null - date_fin: string | null - description: string | null - elu_referent: string | null - financements: string | null - financeur_deux: string | null - financeur_trois: string | null - financeur_un: string | null - montant_deux: string | null - montant_trois: string | null - montant_un: string | null - moyens: string | null - notes: string | null - num_action: string | null - objectifs: string | null - partenaires: string | null - personne_referente: string | null - plan_nom: string | null - priorite: string | null - resultats_attendus: string | null - service: string | null - sous_axe: string | null - sous_sous_axe: string | null - statut: string | null - structure_pilote: string | null - titre: string | null - } - Insert: { - amelioration_continue?: string | null - axe?: string | null - budget?: string | null - calendrier?: string | null - cibles?: string | null - collectivite_id?: string | null - date_debut?: string | null - date_fin?: string | null - description?: string | null - elu_referent?: string | null - financements?: string | null - financeur_deux?: string | null - financeur_trois?: string | null - financeur_un?: string | null - montant_deux?: string | null - montant_trois?: string | null - montant_un?: string | null - moyens?: string | null - notes?: string | null - num_action?: string | null - objectifs?: string | null - partenaires?: string | null - personne_referente?: string | null - plan_nom?: string | null - priorite?: string | null - resultats_attendus?: string | null - service?: string | null - sous_axe?: string | null - sous_sous_axe?: string | null - statut?: string | null - structure_pilote?: string | null - titre?: string | null - } - Update: { - amelioration_continue?: string | null - axe?: string | null - budget?: string | null - calendrier?: string | null - cibles?: string | null - collectivite_id?: string | null - date_debut?: string | null - date_fin?: string | null - description?: string | null - elu_referent?: string | null - financements?: string | null - financeur_deux?: string | null - financeur_trois?: string | null - financeur_un?: string | null - montant_deux?: string | null - montant_trois?: string | null - montant_un?: string | null - moyens?: string | null - notes?: string | null - num_action?: string | null - objectifs?: string | null - partenaires?: string | null - personne_referente?: string | null - plan_nom?: string | null - priorite?: string | null - resultats_attendus?: string | null - service?: string | null - sous_axe?: string | null - sous_sous_axe?: string | null - statut?: string | null - structure_pilote?: string | null - titre?: string | null - } - Relationships: [] - } - fiche_action_indicateur: { - Row: { - fiche_id: number - indicateur_id: string | null - indicateur_personnalise_id: number | null - } - Insert: { - fiche_id: number - indicateur_id?: string | null - indicateur_personnalise_id?: number | null - } - Update: { - fiche_id?: number - indicateur_id?: string | null - indicateur_personnalise_id?: number | null - } - Relationships: [ - { - foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_indicateur_indicateur_personnalise_id_fkey" - columns: ["indicateur_personnalise_id"] - isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" - referencedColumns: ["id"] - }, - ] - } - fiche_action_lien: { - Row: { - fiche_deux: number - fiche_une: number - } - Insert: { - fiche_deux: number - fiche_une: number - } - Update: { - fiche_deux?: number - fiche_une?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_lien_fiche_deux_fkey" - columns: ["fiche_deux"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_deux_fkey" - columns: ["fiche_deux"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_deux_fkey" - columns: ["fiche_deux"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_deux_fkey" - columns: ["fiche_deux"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_deux_fkey" - columns: ["fiche_deux"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_une_fkey" - columns: ["fiche_une"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_une_fkey" - columns: ["fiche_une"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_une_fkey" - columns: ["fiche_une"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_une_fkey" - columns: ["fiche_une"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_lien_fiche_une_fkey" - columns: ["fiche_une"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - ] - } - fiche_action_partenaire_tag: { - Row: { - fiche_id: number - partenaire_tag_id: number - } - Insert: { - fiche_id: number - partenaire_tag_id: number - } - Update: { - fiche_id?: number - partenaire_tag_id?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_partenaire_tag_partenaire_tag_id_fkey" - columns: ["partenaire_tag_id"] - isOneToOne: false - referencedRelation: "partenaire_tag" - referencedColumns: ["id"] - }, - ] - } - fiche_action_pilote: { - Row: { - fiche_id: number - tag_id: number | null - user_id: string | null - } - Insert: { - fiche_id: number - tag_id?: number | null - user_id?: string | null - } - Update: { - fiche_id?: number - tag_id?: number | null - user_id?: string | null - } - Relationships: [ - { - foreignKeyName: "fiche_action_pilote_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_tag_id_fkey" - columns: ["tag_id"] - isOneToOne: false - referencedRelation: "personne_tag" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_pilote_user_id_fkey" - columns: ["user_id"] - isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] - }, - ] - } - fiche_action_referent: { - Row: { - fiche_id: number - tag_id: number | null - user_id: string | null - } - Insert: { - fiche_id: number - tag_id?: number | null - user_id?: string | null - } - Update: { - fiche_id?: number - tag_id?: number | null - user_id?: string | null - } - Relationships: [ - { - foreignKeyName: "fiche_action_referent_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_tag_id_fkey" - columns: ["tag_id"] - isOneToOne: false - referencedRelation: "personne_tag" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_referent_user_id_fkey" - columns: ["user_id"] - isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] - }, - ] - } - fiche_action_service_tag: { - Row: { - fiche_id: number - service_tag_id: number - } - Insert: { - fiche_id: number - service_tag_id: number - } - Update: { - fiche_id?: number - service_tag_id?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_service_tag_service_tag_id_fkey" - columns: ["service_tag_id"] - isOneToOne: false - referencedRelation: "service_tag" - referencedColumns: ["id"] - }, - ] - } - fiche_action_sous_thematique: { - Row: { - fiche_id: number - thematique_id: number - } - Insert: { - fiche_id: number - thematique_id: number - } - Update: { - fiche_id?: number - thematique_id?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_sous_thematique_thematique_id_fkey" - columns: ["thematique_id"] - isOneToOne: false - referencedRelation: "sous_thematique" - referencedColumns: ["id"] - }, - ] - } - fiche_action_structure_tag: { - Row: { - fiche_id: number - structure_tag_id: number - } - Insert: { - fiche_id: number - structure_tag_id: number - } - Update: { - fiche_id?: number - structure_tag_id?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_structure_tag_structure_tag_id_fkey" - columns: ["structure_tag_id"] - isOneToOne: false - referencedRelation: "structure_tag" - referencedColumns: ["id"] - }, - ] - } - fiche_action_thematique: { - Row: { - fiche_id: number - thematique_id: number - } - Insert: { - fiche_id: number - thematique_id: number - } - Update: { - fiche_id?: number - thematique_id?: number - } - Relationships: [ - { - foreignKeyName: "fiche_action_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiche_resume" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - { - foreignKeyName: "fiche_action_thematique_fiche_id_fkey" - columns: ["fiche_id"] - isOneToOne: false - referencedRelation: "fiches_action" - referencedColumns: ["id"] - }, - ] - } - filtre_intervalle: { - Row: { - id: string - intervalle: unknown - libelle: string - type: Database["public"]["Enums"]["collectivite_filtre_type"] - } - Insert: { - id: string - intervalle: unknown - libelle: string - type: Database["public"]["Enums"]["collectivite_filtre_type"] - } - Update: { - id?: string - intervalle?: unknown - libelle?: string - type?: Database["public"]["Enums"]["collectivite_filtre_type"] - } - Relationships: [] - } - financeur_tag: { - Row: { - collectivite_id: number - id: number - nom: string - } - Insert: { - collectivite_id: number - id?: number - nom: string - } - Update: { - collectivite_id?: number - id?: number - nom?: string - } - Relationships: [] - } - indicateur_action: { - Row: { - action_id: string - indicateur_id: string - modified_at: string - } - Insert: { - action_id: string - indicateur_id: string - modified_at?: string - } - Update: { - action_id?: string - indicateur_id?: string - modified_at?: string - } - Relationships: [ - { - foreignKeyName: "indicateur_action_action_id_fkey" - columns: ["action_id"] - isOneToOne: false - referencedRelation: "action_relation" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_action_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_action_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_action_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - ] - } - indicateur_artificialisation: { - Row: { - activite: number - collectivite_id: number - ferroviaire: number - habitat: number - inconnue: number - mixte: number - routiere: number - total: number - } - Insert: { - activite: number - collectivite_id: number - ferroviaire: number - habitat: number - inconnue: number - mixte: number - routiere: number - total: number - } - Update: { - activite?: number - collectivite_id?: number - ferroviaire?: number - habitat?: number - inconnue?: number - mixte?: number - routiere?: number - total?: number - } - Relationships: [ - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: true - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] - }, - ] - } - indicateur_confidentiel: { - Row: { - collectivite_id: number | null - indicateur_id: string | null - indicateur_perso_id: number | null - } - Insert: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - } - Update: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - } - Relationships: [ - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_confidentiel_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_confidentiel_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_confidentiel_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_confidentiel_indicateur_perso_id_fkey" - columns: ["indicateur_perso_id"] - isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" - referencedColumns: ["id"] - }, - ] - } - indicateur_definition: { - Row: { - description: string - id: string - identifiant: string | null - modified_at: string - nom: string - parent: string | null - participation_score: boolean - programmes: Database["public"]["Enums"]["indicateur_programme"][] - sans_valeur: boolean - selection: boolean - source: string | null - thematiques: Database["public"]["Enums"]["indicateur_thematique"][] - titre_long: string - type: - | Database["public"]["Enums"]["indicateur_referentiel_type"] - | null - unite: string - valeur_indicateur: string | null - cherchable: string | null - enfants: unknown | null - } - Insert: { - description: string - id: string - identifiant?: string | null - modified_at?: string - nom: string - parent?: string | null - participation_score?: boolean - programmes?: Database["public"]["Enums"]["indicateur_programme"][] - sans_valeur?: boolean - selection?: boolean - source?: string | null - thematiques?: Database["public"]["Enums"]["indicateur_thematique"][] - titre_long?: string - type?: - | Database["public"]["Enums"]["indicateur_referentiel_type"] - | null - unite: string - valeur_indicateur?: string | null - } - Update: { - description?: string - id?: string - identifiant?: string | null - modified_at?: string - nom?: string - parent?: string | null - participation_score?: boolean - programmes?: Database["public"]["Enums"]["indicateur_programme"][] - sans_valeur?: boolean - selection?: boolean - source?: string | null - thematiques?: Database["public"]["Enums"]["indicateur_thematique"][] - titre_long?: string - type?: - | Database["public"]["Enums"]["indicateur_referentiel_type"] - | null - unite?: string - valeur_indicateur?: string | null - } - Relationships: [ - { - foreignKeyName: "indicateur_definition_valeur_indicateur_fkey" - columns: ["valeur_indicateur"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_definition_valeur_indicateur_fkey" - columns: ["valeur_indicateur"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_definition_valeur_indicateur_fkey" - columns: ["valeur_indicateur"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - ] - } - indicateur_objectif: { - Row: { - annee: number - collectivite_id: number - indicateur_id: string - modified_at: string - modified_by: string | null - valeur: number | null - } - Insert: { - annee: number - collectivite_id: number - indicateur_id: string - modified_at?: string - modified_by?: string | null - valeur?: number | null - } - Update: { - annee?: number - collectivite_id?: number - indicateur_id?: string - modified_at?: string - modified_by?: string | null - valeur?: number | null - } - Relationships: [ - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - ] - } - indicateur_objectif_commentaire: { - Row: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: string - modified_at: string - modified_by: string - } - Insert: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: string - modified_at: string - modified_by: string - } - Update: { - annee?: number - collectivite_id?: number - commentaire?: string - indicateur_id?: string - modified_at?: string - modified_by?: string - } - Relationships: [ - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "crm_indicateurs" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_definition" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_objectif_commentaire_modified_by_fkey" - columns: ["modified_by"] - isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] - }, - ] - } - indicateur_parent: { - Row: { - id: number - nom: string - numero: string - } - Insert: { - id?: number - nom: string - numero: string - } - Update: { - id?: number - nom?: string - numero?: string - } - Relationships: [] - } - indicateur_perso_objectif_commentaire: { - Row: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: number - modified_at: string - modified_by: string - } - Insert: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: number - modified_at: string - modified_by: string - } - Update: { - annee?: number - collectivite_id?: number - commentaire?: string - indicateur_id?: number - modified_at?: string - modified_by?: string - } - Relationships: [ - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "late_collectivite" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] - }, - { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" + referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "suivi_audit" + referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_indicateur_id_fkey" - columns: ["indicateur_id"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" - referencedColumns: ["id"] + referencedRelation: "rattachement" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_objectif_commentaire_modified_by_fkey" - columns: ["modified_by"] + foreignKeyName: "fiche_action_collectivite_id_fkey" + columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] + referencedRelation: "report_indicateur_resultat" + referencedColumns: ["collectivite_id"] }, - ] - } - indicateur_perso_resultat_commentaire: { - Row: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: number - modified_at: string - modified_by: string - } - Insert: { - annee: number - collectivite_id: number - commentaire: string - indicateur_id: number - modified_at: string - modified_by: string - } - Update: { - annee?: number - collectivite_id?: number - commentaire?: string - indicateur_id?: number - modified_at?: string - modified_by?: string - } - Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "action_snippet" + referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "action_statuts" + referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "active_collectivite" + referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "auditeurs" + referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "audits" + referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "carte_collectivite_active" + referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["id"] + referencedRelation: "retool_completude_compute" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite" + referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_action_statut" + referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_card" + referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_carte_identite" + referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_identite" - referencedColumns: ["id"] + referencedRelation: "retool_score" + referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_labellisation" + referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_membre_crm" + referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_niveau_acces" + referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_plan_action" + referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" + foreignKeyName: "fiche_action_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false - referencedRelation: "collectivite_plan_action" + referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_modified_by_fkey" + columns: ["modified_by"] isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] + referencedRelation: "users" + referencedColumns: ["id"] }, + ] + } + fiche_action_action: { + Row: { + action_id: string + fiche_id: number + } + Insert: { + action_id: string + fiche_id: number + } + Update: { + action_id?: string + fiche_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_action_id_fkey" + columns: ["action_id"] isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] + referencedRelation: "action_relation" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_action_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, + ] + } + fiche_action_axe: { + Row: { + axe_id: number + fiche_id: number + } + Insert: { + axe_id: number + fiche_id: number + } + Update: { + axe_id?: number + fiche_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_axe_id_fkey" + columns: ["axe_id"] isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "axe" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_axe_id_fkey" + columns: ["axe_id"] isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "plan_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_axe_id_fkey" + columns: ["axe_id"] isOneToOne: false - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "plan_action_profondeur" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_axe_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, + ] + } + fiche_action_effet_attendu: { + Row: { + effet_attendu_id: number + fiche_id: number + } + Insert: { + effet_attendu_id: number + fiche_id: number + } + Update: { + effet_attendu_id?: number + fiche_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_effet_attendu_id_fkey" + columns: ["effet_attendu_id"] isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] + referencedRelation: "effet_attendu" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_effet_attendu_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, + ] + } + fiche_action_financeur_tag: { + Row: { + fiche_id: number + financeur_tag_id: number + id: number + montant_ttc: number | null + } + Insert: { + fiche_id: number + financeur_tag_id: number + id?: number + montant_ttc?: number | null + } + Update: { + fiche_id?: number + financeur_tag_id?: number + id?: number + montant_ttc?: number | null + } + Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_financeur_tag_financeur_tag_id_fkey" + columns: ["financeur_tag_id"] isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "financeur_tag" + referencedColumns: ["id"] }, + ] + } + fiche_action_import_csv: { + Row: { + amelioration_continue: string | null + axe: string | null + budget: string | null + calendrier: string | null + cibles: string | null + collectivite_id: string | null + date_debut: string | null + date_fin: string | null + description: string | null + elu_referent: string | null + financements: string | null + financeur_deux: string | null + financeur_trois: string | null + financeur_un: string | null + montant_deux: string | null + montant_trois: string | null + montant_un: string | null + moyens: string | null + notes: string | null + num_action: string | null + objectifs: string | null + partenaires: string | null + personne_referente: string | null + plan_nom: string | null + priorite: string | null + resultats_attendus: string | null + service: string | null + sous_axe: string | null + sous_sous_axe: string | null + statut: string | null + structure_pilote: string | null + titre: string | null + } + Insert: { + amelioration_continue?: string | null + axe?: string | null + budget?: string | null + calendrier?: string | null + cibles?: string | null + collectivite_id?: string | null + date_debut?: string | null + date_fin?: string | null + description?: string | null + elu_referent?: string | null + financements?: string | null + financeur_deux?: string | null + financeur_trois?: string | null + financeur_un?: string | null + montant_deux?: string | null + montant_trois?: string | null + montant_un?: string | null + moyens?: string | null + notes?: string | null + num_action?: string | null + objectifs?: string | null + partenaires?: string | null + personne_referente?: string | null + plan_nom?: string | null + priorite?: string | null + resultats_attendus?: string | null + service?: string | null + sous_axe?: string | null + sous_sous_axe?: string | null + statut?: string | null + structure_pilote?: string | null + titre?: string | null + } + Update: { + amelioration_continue?: string | null + axe?: string | null + budget?: string | null + calendrier?: string | null + cibles?: string | null + collectivite_id?: string | null + date_debut?: string | null + date_fin?: string | null + description?: string | null + elu_referent?: string | null + financements?: string | null + financeur_deux?: string | null + financeur_trois?: string | null + financeur_un?: string | null + montant_deux?: string | null + montant_trois?: string | null + montant_un?: string | null + moyens?: string | null + notes?: string | null + num_action?: string | null + objectifs?: string | null + partenaires?: string | null + personne_referente?: string | null + plan_nom?: string | null + priorite?: string | null + resultats_attendus?: string | null + service?: string | null + sous_axe?: string | null + sous_sous_axe?: string | null + statut?: string | null + structure_pilote?: string | null + titre?: string | null + } + Relationships: [] + } + fiche_action_indicateur: { + Row: { + fiche_id: number + indicateur_id: number + } + Insert: { + fiche_id: number + indicateur_id: number + } + Update: { + fiche_id?: number + indicateur_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_indicateur_id_fkey" + foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" + referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_perso_resultat_commentaire_modified_by_fkey" - columns: ["modified_by"] + foreignKeyName: "fiche_action_indicateur_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "users" + referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, ] } - indicateur_personnalise_definition: { + fiche_action_lien: { Row: { - collectivite_id: number - commentaire: string - description: string - id: number - modified_at: string - modified_by: string - titre: string - unite: string - cherchable: string | null + fiche_deux: number + fiche_une: number } Insert: { - collectivite_id: number - commentaire: string - description: string - id?: number - modified_at?: string - modified_by?: string - titre: string - unite: string + fiche_deux: number + fiche_une: number } Update: { - collectivite_id?: number - commentaire?: string - description?: string - id?: number - modified_at?: string - modified_by?: string - titre?: string - unite?: string + fiche_deux?: number + fiche_une?: number } Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_deux_fkey" + columns: ["fiche_deux"] isOneToOne: false - referencedRelation: "action_snippet" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_deux_fkey" + columns: ["fiche_deux"] isOneToOne: false - referencedRelation: "action_statuts" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_deux_fkey" + columns: ["fiche_deux"] isOneToOne: false - referencedRelation: "active_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_deux_fkey" + columns: ["fiche_deux"] isOneToOne: false - referencedRelation: "auditeurs" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_deux_fkey" + columns: ["fiche_deux"] isOneToOne: false - referencedRelation: "audits" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_une_fkey" + columns: ["fiche_une"] isOneToOne: false - referencedRelation: "carte_collectivite_active" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_une_fkey" + columns: ["fiche_une"] isOneToOne: false - referencedRelation: "collectivite" + referencedRelation: "fiche_resume" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_une_fkey" + columns: ["fiche_une"] isOneToOne: false - referencedRelation: "collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_une_fkey" + columns: ["fiche_une"] isOneToOne: false - referencedRelation: "collectivite_action_statut" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_lien_fiche_une_fkey" + columns: ["fiche_une"] isOneToOne: false - referencedRelation: "collectivite_card" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] + }, + ] + } + fiche_action_partenaire_tag: { + Row: { + fiche_id: number + partenaire_tag_id: number + } + Insert: { + fiche_id: number + partenaire_tag_id: number + } + Update: { + fiche_id?: number + partenaire_tag_id?: number + } + Relationships: [ + { + foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" + columns: ["fiche_id"] + isOneToOne: false + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_carte_identite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_identite" + referencedRelation: "fiche_resume" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_labellisation" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_partenaire_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_membre_crm" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_partenaire_tag_partenaire_tag_id_fkey" + columns: ["partenaire_tag_id"] isOneToOne: false - referencedRelation: "collectivite_niveau_acces" - referencedColumns: ["collectivite_id"] + referencedRelation: "partenaire_tag" + referencedColumns: ["id"] + }, + ] + } + fiche_action_pilote: { + Row: { + fiche_id: number + tag_id: number | null + user_id: string | null + } + Insert: { + fiche_id: number + tag_id?: number | null + user_id?: string | null + } + Update: { + fiche_id?: number + tag_id?: number | null + user_id?: string | null + } + Relationships: [ + { + foreignKeyName: "fiche_action_pilote_fiche_id_fkey" + columns: ["fiche_id"] + isOneToOne: false + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_plan_action" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_referentiel" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "collectivite_utilisateur" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_tag_id_fkey" + columns: ["tag_id"] isOneToOne: false - referencedRelation: "collectivites_crm" - referencedColumns: ["collectivite_id"] + referencedRelation: "personne_tag" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_pilote_user_id_fkey" + columns: ["user_id"] isOneToOne: false - referencedRelation: "comparaison_scores_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "users" + referencedColumns: ["id"] }, + ] + } + fiche_action_referent: { + Row: { + fiche_id: number + tag_id: number | null + user_id: string | null + } + Insert: { + fiche_id: number + tag_id?: number | null + user_id?: string | null + } + Update: { + fiche_id?: number + tag_id?: number | null + user_id?: string | null + } + Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "crm_usages" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "late_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_tag_id_fkey" + columns: ["tag_id"] isOneToOne: false - referencedRelation: "locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "personne_tag" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_referent_user_id_fkey" + columns: ["user_id"] isOneToOne: false - referencedRelation: "locales_pourcentage_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "users" + referencedColumns: ["id"] }, + ] + } + fiche_action_service_tag: { + Row: { + fiche_id: number + service_tag_id: number + } + Insert: { + fiche_id: number + service_tag_id: number + } + Update: { + fiche_id?: number + service_tag_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "named_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "question_display" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "question_thematique_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "rattachement" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_indicateur_resultat" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_service_tag_service_tag_id_fkey" + columns: ["service_tag_id"] isOneToOne: false - referencedRelation: "report_reponse_binaire" - referencedColumns: ["collectivite_id"] + referencedRelation: "service_tag" + referencedColumns: ["id"] }, + ] + } + fiche_action_sous_thematique: { + Row: { + fiche_id: number + thematique_id: number + } + Insert: { + fiche_id: number + thematique_id: number + } + Update: { + fiche_id?: number + thematique_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_reponse_choix" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_reponse_proportion" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "report_scores" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_active_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_completude" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_sous_thematique_thematique_id_fkey" + columns: ["thematique_id"] isOneToOne: false - referencedRelation: "retool_completude_compute" - referencedColumns: ["collectivite_id"] + referencedRelation: "sous_thematique" + referencedColumns: ["id"] }, + ] + } + fiche_action_structure_tag: { + Row: { + fiche_id: number + structure_tag_id: number + } + Insert: { + fiche_id: number + structure_tag_id: number + } + Update: { + fiche_id?: number + structure_tag_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_hebdo" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_premier_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_plan_action_usage" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "retool_score" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_structure_tag_structure_tag_id_fkey" + columns: ["structure_tag_id"] isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] + referencedRelation: "structure_tag" + referencedColumns: ["id"] }, + ] + } + fiche_action_thematique: { + Row: { + fiche_id: number + thematique_id: number + } + Insert: { + fiche_id: number + thematique_id: number + } + Update: { + fiche_id?: number + thematique_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] - isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] + foreignKeyName: "fiche_action_thematique_fiche_id_fkey" + columns: ["fiche_id"] + isOneToOne: false + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiche_resume" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "fiche_action_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "fiches_action" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_definition_modified_by_fkey" - columns: ["modified_by"] + foreignKeyName: "fiche_action_thematique_fiche_id_fkey" + columns: ["fiche_id"] isOneToOne: false - referencedRelation: "users" + referencedRelation: "fiches_action" referencedColumns: ["id"] }, ] } - indicateur_personnalise_objectif: { + filtre_intervalle: { + Row: { + id: string + intervalle: unknown + libelle: string + type: Database["public"]["Enums"]["collectivite_filtre_type"] + } + Insert: { + id: string + intervalle: unknown + libelle: string + type: Database["public"]["Enums"]["collectivite_filtre_type"] + } + Update: { + id?: string + intervalle?: unknown + libelle?: string + type?: Database["public"]["Enums"]["collectivite_filtre_type"] + } + Relationships: [] + } + financeur_tag: { Row: { - annee: number collectivite_id: number - indicateur_id: number - modified_at: string - modified_by: string | null - valeur: number | null + id: number + nom: string } Insert: { - annee: number collectivite_id: number - indicateur_id: number - modified_at?: string - modified_by?: string | null - valeur?: number | null + id?: number + nom: string } Update: { - annee?: number collectivite_id?: number - indicateur_id?: number - modified_at?: string - modified_by?: string | null - valeur?: number | null + id?: number + nom?: string + } + Relationships: [] + } + groupement: { + Row: { + id: number + nom: string + } + Insert: { + id?: number + nom: string + } + Update: { + id?: number + nom?: string + } + Relationships: [] + } + groupement_collectivite: { + Row: { + collectivite_id: number + groupement_id: number + } + Insert: { + collectivite_id: number + groupement_id: number + } + Update: { + collectivite_id?: number + groupement_id?: number } Relationships: [ { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_collectivite_id_fkey" + foreignKeyName: "groupement_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_objectif_indicateur_id_fkey" + foreignKeyName: "groupement_collectivite_groupement_id_fkey" + columns: ["groupement_id"] + isOneToOne: false + referencedRelation: "groupement" + referencedColumns: ["id"] + }, + ] + } + indicateur_action: { + Row: { + action_id: string + indicateur_id: number + } + Insert: { + action_id: string + indicateur_id: number + } + Update: { + action_id?: string + indicateur_id?: number + } + Relationships: [ + { + foreignKeyName: "indicateur_action_action_id_fkey" + columns: ["action_id"] + isOneToOne: false + referencedRelation: "action_relation" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_action_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_action_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_action_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" + referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, ] } - indicateur_personnalise_resultat: { + indicateur_artificialisation: { Row: { - annee: number + activite: number collectivite_id: number - indicateur_id: number - modified_at: string - modified_by: string | null - valeur: number | null + ferroviaire: number + habitat: number + inconnue: number + mixte: number + routiere: number + total: number } Insert: { - annee: number + activite: number collectivite_id: number - indicateur_id: number - modified_at?: string - modified_by?: string | null - valeur?: number | null + ferroviaire: number + habitat: number + inconnue: number + mixte: number + routiere: number + total: number } Update: { - annee?: number + activite?: number collectivite_id?: number - indicateur_id?: number - modified_at?: string - modified_by?: string | null - valeur?: number | null + ferroviaire?: number + habitat?: number + inconnue?: number + mixte?: number + routiere?: number + total?: number } Relationships: [ { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_personnalise_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_artificialisation_collectivite_id_fkey" columns: ["collectivite_id"] - isOneToOne: false + isOneToOne: true referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, - { - foreignKeyName: "indicateur_personnalise_resultat_indicateur_id_fkey" - columns: ["indicateur_id"] - isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" - referencedColumns: ["id"] - }, ] } - indicateur_personnalise_thematique: { + indicateur_categorie_tag: { Row: { + categorie_tag_id: number indicateur_id: number - thematique_id: number + modified_at: string + modified_by: string | null } Insert: { + categorie_tag_id: number indicateur_id: number - thematique_id: number + modified_at?: string + modified_by?: string | null } Update: { + categorie_tag_id?: number indicateur_id?: number - thematique_id?: number + modified_at?: string + modified_by?: string | null } Relationships: [ { - foreignKeyName: "indicateur_personnalise_thematique_indicateur_id_fkey" + foreignKeyName: "indicateur_categorie_tag_categorie_tag_id_fkey" + columns: ["categorie_tag_id"] + isOneToOne: false + referencedRelation: "categorie_tag" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_categorie_tag_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" + referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_personnalise_thematique_thematique_id_fkey" - columns: ["thematique_id"] + foreignKeyName: "indicateur_categorie_tag_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "thematique" + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_categorie_tag_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "indicateur_definition" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_categorie_tag_modified_by_fkey" + columns: ["modified_by"] + isOneToOne: false + referencedRelation: "users" referencedColumns: ["id"] }, ] } - indicateur_pilote: { + indicateur_collectivite: { Row: { - collectivite_id: number | null - indicateur_id: string | null - indicateur_perso_id: number | null - tag_id: number | null - user_id: string | null - personne: Database["public"]["CompositeTypes"]["personne"] | null + collectivite_id: number + commentaire: string | null + confidentiel: boolean + favoris: boolean + indicateur_id: number } Insert: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - tag_id?: number | null - user_id?: string | null + collectivite_id: number + commentaire?: string | null + confidentiel?: boolean + favoris?: boolean + indicateur_id: number } Update: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - tag_id?: number | null - user_id?: string | null + collectivite_id?: number + commentaire?: string | null + confidentiel?: boolean + favoris?: boolean + indicateur_id?: number } Relationships: [ { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_collectivite_id_fkey" + foreignKeyName: "indicateur_collectivite_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_pilote_indicateur_id_fkey" + foreignKeyName: "indicateur_collectivite_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_pilote_indicateur_id_fkey" + foreignKeyName: "indicateur_collectivite_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_pilote_indicateur_id_fkey" + foreignKeyName: "indicateur_collectivite_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, - { - foreignKeyName: "indicateur_pilote_indicateur_perso_id_fkey" - columns: ["indicateur_perso_id"] - isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_pilote_tag_id_fkey" - columns: ["tag_id"] - isOneToOne: false - referencedRelation: "personne_tag" - referencedColumns: ["id"] - }, - { - foreignKeyName: "indicateur_pilote_user_id_fkey" - columns: ["user_id"] - isOneToOne: false - referencedRelation: "users" - referencedColumns: ["id"] - }, ] } - indicateur_resultat: { + indicateur_definition: { Row: { - annee: number - collectivite_id: number - indicateur_id: string + borne_max: number | null + borne_min: number | null + collectivite_id: number | null + created_at: string + created_by: string | null + description: string | null + groupement_id: number | null + id: number + identifiant_referentiel: string | null modified_at: string modified_by: string | null - valeur: number | null + participation_score: boolean + sans_valeur_utilisateur: boolean + titre: string + titre_long: string | null + unite: string + valeur_calcule: string | null + indicateur_enfants: unknown | null + indicateur_parents: unknown | null } Insert: { - annee: number - collectivite_id: number - indicateur_id: string + borne_max?: number | null + borne_min?: number | null + collectivite_id?: number | null + created_at?: string + created_by?: string | null + description?: string | null + groupement_id?: number | null + id?: number + identifiant_referentiel?: string | null modified_at?: string modified_by?: string | null - valeur?: number | null + participation_score?: boolean + sans_valeur_utilisateur?: boolean + titre: string + titre_long?: string | null + unite: string + valeur_calcule?: string | null } Update: { - annee?: number - collectivite_id?: number - indicateur_id?: string + borne_max?: number | null + borne_min?: number | null + collectivite_id?: number | null + created_at?: string + created_by?: string | null + description?: string | null + groupement_id?: number | null + id?: number + identifiant_referentiel?: string | null modified_at?: string modified_by?: string | null - valeur?: number | null + participation_score?: boolean + sans_valeur_utilisateur?: boolean + titre?: string + titre_long?: string | null + unite?: string + valeur_calcule?: string | null } Relationships: [ { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" + foreignKeyName: "indicateur_definition_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_definition_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "site_labellisation" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_definition_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_active_real_collectivites" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_definition_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_carte_collectivite_active" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_definition_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_locales_engagement_collectivite" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_definition_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "suivi_audit" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_definition_created_by_fkey" + columns: ["created_by"] + isOneToOne: false + referencedRelation: "users" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_definition_groupement_id_fkey" + columns: ["groupement_id"] isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] + referencedRelation: "groupement" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_definition_modified_by_fkey" + columns: ["modified_by"] isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "users" + referencedColumns: ["id"] }, + ] + } + indicateur_groupe: { + Row: { + enfant: number + parent: number + } + Insert: { + enfant: number + parent: number + } + Update: { + enfant?: number + parent?: number + } + Relationships: [ { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_groupe_enfant_fkey" + columns: ["enfant"] isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_groupe_enfant_fkey" + columns: ["enfant"] isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_groupe_enfant_fkey" + columns: ["enfant"] isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "indicateur_definition" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_indicateur_id_fkey" - columns: ["indicateur_id"] + foreignKeyName: "indicateur_groupe_parent_fkey" + columns: ["parent"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_indicateur_id_fkey" - columns: ["indicateur_id"] + foreignKeyName: "indicateur_groupe_parent_fkey" + columns: ["parent"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_indicateur_id_fkey" - columns: ["indicateur_id"] + foreignKeyName: "indicateur_groupe_parent_fkey" + columns: ["parent"] isOneToOne: false referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, ] } - indicateur_resultat_commentaire: { + indicateur_pilote: { Row: { - annee: number | null collectivite_id: number - commentaire: string - indicateur_id: string - modified_at: string - modified_by: string + id: number + indicateur_id: number + tag_id: number | null + user_id: string | null + indicateur_pilote_user: unknown | null } Insert: { - annee?: number | null collectivite_id: number - commentaire: string - indicateur_id: string - modified_at?: string - modified_by?: string + id?: number + indicateur_id: number + tag_id?: number | null + user_id?: string | null } Update: { - annee?: number | null collectivite_id?: number - commentaire?: string - indicateur_id?: string - modified_at?: string - modified_by?: string + id?: number + indicateur_id?: number + tag_id?: number | null + user_id?: string | null } Relationships: [ { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_collectivite_id_fkey" + foreignKeyName: "indicateur_pilote_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_commentaire_indicateur_id_fkey" + foreignKeyName: "indicateur_pilote_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_commentaire_indicateur_id_fkey" + foreignKeyName: "indicateur_pilote_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_commentaire_indicateur_id_fkey" + foreignKeyName: "indicateur_pilote_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_commentaire_modified_by_fkey" - columns: ["modified_by"] + foreignKeyName: "indicateur_pilote_tag_id_fkey" + columns: ["tag_id"] + isOneToOne: false + referencedRelation: "personne_tag" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_pilote_user_id_fkey" + columns: ["user_id"] isOneToOne: false referencedRelation: "users" referencedColumns: ["id"] }, ] } - indicateur_resultat_import: { + indicateur_service_tag: { Row: { - annee: number collectivite_id: number - indicateur_id: string - modified_at: string - source: string - source_id: string - valeur: number + indicateur_id: number + service_tag_id: number } Insert: { - annee: number collectivite_id: number - indicateur_id: string - modified_at: string - source: string - source_id: string - valeur: number + indicateur_id: number + service_tag_id: number } Update: { - annee?: number collectivite_id?: number - indicateur_id?: string - modified_at?: string - source?: string - source_id?: string - valeur?: number + indicateur_id?: number + service_tag_id?: number } Relationships: [ { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "site_labellisation" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_active_real_collectivites" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_carte_collectivite_active" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "stats_locales_engagement_collectivite" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + columns: ["collectivite_id"] + isOneToOne: false + referencedRelation: "suivi_audit" + referencedColumns: ["collectivite_id"] + }, + { + foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + columns: ["indicateur_id"] + isOneToOne: false + referencedRelation: "indicateur_definition" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_service_tag_service_tag_id_fkey" + columns: ["service_tag_id"] + isOneToOne: false + referencedRelation: "service_tag" + referencedColumns: ["id"] + }, + ] + } + indicateur_source: { + Row: { + id: string + libelle: string + ordre_affichage: number | null + } + Insert: { + id: string + libelle: string + ordre_affichage?: number | null + } + Update: { + id?: string + libelle?: string + ordre_affichage?: number | null + } + Relationships: [] + } + indicateur_source_metadonnee: { + Row: { + date_version: string + diffuseur: string | null + id: number + limites: string | null + methodologie: string | null + nom_donnees: string | null + producteur: string | null + source_id: string + } + Insert: { + date_version: string + diffuseur?: string | null + id?: number + limites?: string | null + methodologie?: string | null + nom_donnees?: string | null + producteur?: string | null + source_id: string + } + Update: { + date_version?: string + diffuseur?: string | null + id?: number + limites?: string | null + methodologie?: string | null + nom_donnees?: string | null + producteur?: string | null + source_id?: string + } + Relationships: [ + { + foreignKeyName: "indicateur_source_metadonnee_source_id_fkey" + columns: ["source_id"] isOneToOne: false - referencedRelation: "site_labellisation" - referencedColumns: ["collectivite_id"] + referencedRelation: "indicateur_source" + referencedColumns: ["id"] }, + ] + } + indicateur_sous_thematique: { + Row: { + indicateur_id: number + sous_thematique_id: number + } + Insert: { + indicateur_id: number + sous_thematique_id: number + } + Update: { + indicateur_id?: number + sous_thematique_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_sous_thematique_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "stats_active_real_collectivites" - referencedColumns: ["collectivite_id"] + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_sous_thematique_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "stats_carte_collectivite_active" - referencedColumns: ["collectivite_id"] + referencedRelation: "crm_indicateurs" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_sous_thematique_indicateur_id_fkey" + columns: ["indicateur_id"] isOneToOne: false - referencedRelation: "stats_locales_engagement_collectivite" - referencedColumns: ["collectivite_id"] + referencedRelation: "indicateur_definition" + referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_collectivite_id_fkey" - columns: ["collectivite_id"] + foreignKeyName: "indicateur_sous_thematique_sous_thematique_id_fkey" + columns: ["sous_thematique_id"] isOneToOne: false - referencedRelation: "suivi_audit" - referencedColumns: ["collectivite_id"] + referencedRelation: "sous_thematique" + referencedColumns: ["id"] }, + ] + } + indicateur_thematique: { + Row: { + indicateur_id: number + thematique_id: number + } + Insert: { + indicateur_id: number + thematique_id: number + } + Update: { + indicateur_id?: number + thematique_id?: number + } + Relationships: [ { - foreignKeyName: "indicateur_resultat_import_indicateur_id_fkey" + foreignKeyName: "indicateur_thematique_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_indicateur_id_fkey" + foreignKeyName: "indicateur_thematique_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_indicateur_id_fkey" + foreignKeyName: "indicateur_thematique_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_resultat_import_source_id_fkey" - columns: ["source_id"] + foreignKeyName: "indicateur_thematique_thematique_id_fkey" + columns: ["thematique_id"] isOneToOne: false - referencedRelation: "indicateur_source" + referencedRelation: "thematique" referencedColumns: ["id"] }, ] } - indicateur_service_tag: { + indicateur_valeur: { Row: { - collectivite_id: number | null - indicateur_id: string | null - indicateur_perso_id: number | null - service_tag_id: number + collectivite_id: number + created_at: string + created_by: string | null + date_valeur: string + estimation: number | null + id: number + indicateur_id: number + metadonnee_id: number | null + modified_at: string + modified_by: string | null + objectif: number | null + objectif_commentaire: string | null + resultat: number | null + resultat_commentaire: string | null } Insert: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - service_tag_id: number + collectivite_id: number + created_at?: string + created_by?: string | null + date_valeur: string + estimation?: number | null + id?: number + indicateur_id: number + metadonnee_id?: number | null + modified_at?: string + modified_by?: string | null + objectif?: number | null + objectif_commentaire?: string | null + resultat?: number | null + resultat_commentaire?: string | null } Update: { - collectivite_id?: number | null - indicateur_id?: string | null - indicateur_perso_id?: number | null - service_tag_id?: number + collectivite_id?: number + created_at?: string + created_by?: string | null + date_valeur?: string + estimation?: number | null + id?: number + indicateur_id?: number + metadonnee_id?: number | null + modified_at?: string + modified_by?: string | null + objectif?: number | null + objectif_commentaire?: string | null + resultat?: number | null + resultat_commentaire?: string | null } Relationships: [ { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_snippet" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "action_statuts" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "auditeurs" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "audits" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_action_statut" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_card" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_carte_identite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_identite" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_membre_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_niveau_acces" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_plan_action" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_referentiel" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivite_utilisateur" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "collectivites_crm" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "comparaison_scores_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "crm_usages" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "late_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "locales_pourcentage_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "named_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_display" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "question_thematique_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "rattachement" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_indicateur_resultat" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_binaire" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_choix" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_reponse_proportion" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "report_scores" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_active_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_completude_compute" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_hebdo" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_premier_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_plan_action_usage" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "retool_score" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "site_labellisation" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_active_real_collectivites" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_carte_collectivite_active" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "stats_locales_engagement_collectivite" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_collectivite_id_fkey" + foreignKeyName: "indicateur_valeur_collectivite_id_fkey" columns: ["collectivite_id"] isOneToOne: false referencedRelation: "suivi_audit" referencedColumns: ["collectivite_id"] }, { - foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + foreignKeyName: "indicateur_valeur_created_by_fkey" + columns: ["created_by"] + isOneToOne: false + referencedRelation: "users" + referencedColumns: ["id"] + }, + { + foreignKeyName: "indicateur_valeur_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + foreignKeyName: "indicateur_valeur_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "crm_indicateurs" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_indicateur_id_fkey" + foreignKeyName: "indicateur_valeur_indicateur_id_fkey" columns: ["indicateur_id"] isOneToOne: false referencedRelation: "indicateur_definition" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_indicateur_perso_id_fkey" - columns: ["indicateur_perso_id"] + foreignKeyName: "indicateur_valeur_metadonnee_id_fkey" + columns: ["metadonnee_id"] isOneToOne: false - referencedRelation: "indicateur_personnalise_definition" + referencedRelation: "indicateur_source_metadonnee" referencedColumns: ["id"] }, { - foreignKeyName: "indicateur_service_tag_service_tag_id_fkey" - columns: ["service_tag_id"] + foreignKeyName: "indicateur_valeur_modified_by_fkey" + columns: ["modified_by"] isOneToOne: false - referencedRelation: "service_tag" + referencedRelation: "users" referencedColumns: ["id"] }, ] } - indicateur_source: { - Row: { - id: string - libelle: string - } - Insert: { - id: string - libelle: string - } - Update: { - id?: string - libelle?: string - } - Relationships: [] - } - indicateur_terristory_json: { - Row: { - created_at: string - indicateurs: Json - } - Insert: { - created_at?: string - indicateurs: Json - } - Update: { - created_at?: string - indicateurs?: Json - } - Relationships: [] - } - indicateurs_json: { - Row: { - created_at: string - indicateurs: Json - } - Insert: { - created_at?: string - indicateurs: Json - } - Update: { - created_at?: string - indicateurs?: Json - } - Relationships: [] - } justification: { Row: { collectivite_id: number @@ -22502,17 +20249,21 @@ export type Database = { thematique: { Row: { id: number - md_id: Database["public"]["Enums"]["indicateur_thematique"] | null + md_id: Database["public"]["Enums"]["old_indicateur_thematique"] | null nom: string } Insert: { id?: number - md_id?: Database["public"]["Enums"]["indicateur_thematique"] | null + md_id?: + | Database["public"]["Enums"]["old_indicateur_thematique"] + | null nom: string } Update: { id?: number - md_id?: Database["public"]["Enums"]["indicateur_thematique"] | null + md_id?: + | Database["public"]["Enums"]["old_indicateur_thematique"] + | null nom?: string } Relationships: [] @@ -25766,10 +23517,10 @@ export type Database = { } crm_indicateurs: { Row: { - id: string | null + id: number | null nb_prive: number | null - nom: string | null pourcentage_prive: number | null + titre: string | null } Relationships: [] } @@ -26331,7 +24082,7 @@ export type Database = { | null id: number | null indicateurs: - | Database["public"]["CompositeTypes"]["indicateur_generique"][] + | Database["public"]["Tables"]["indicateur_definition"]["Row"][] | null maj_termine: boolean | null modified_at: string | null @@ -26777,60 +24528,12 @@ export type Database = { } Relationships: [] } - indicateur_definitions: { - Row: { - collectivite_id: number | null - description: string | null - indicateur_id: string | null - indicateur_perso_id: number | null - nom: string | null - unite: string | null - } - Relationships: [] - } - indicateur_rempli: { - Row: { - collectivite_id: number | null - indicateur_id: string | null - perso_id: number | null - rempli: boolean | null - } - Relationships: [] - } indicateur_summary: { Row: { - categorie: string | null - collectivite_id: number | null - nombre: number | null - rempli: number | null - } - Relationships: [] - } - indicateurs: { - Row: { - annee: number | null - collectivite_id: number | null - commentaire: string | null - indicateur_id: string | null - indicateur_perso_id: number | null - source: string | null - source_id: string | null - type: Database["public"]["Enums"]["indicateur_valeur_type"] | null - valeur: number | null - } - Relationships: [] - } - indicateurs_collectivite: { - Row: { + categorie: string | null collectivite_id: number | null - description: string | null - indicateur_id: string | null - indicateur_personnalise_id: number | null - nom: string | null - programmes: - | Database["public"]["Enums"]["indicateur_programme"][] - | null - unite: string | null + nombre: number | null + rempli: number | null } Relationships: [] } @@ -30294,22 +27997,6 @@ export type Database = { } Returns: undefined } - axes: { - Args: { - "": unknown - } - Returns: { - collectivite_id: number - created_at: string - id: number - modified_at: string - modified_by: string | null - nom: string | null - parent: number | null - plan: number | null - type: number | null - }[] - } can: { Args: { "": unknown[] @@ -30328,25 +28015,6 @@ export type Database = { } Returns: string } - cherchable: - | { - Args: { - "": unknown - } - Returns: string - } - | { - Args: { - "": unknown - } - Returns: string - } - | { - Args: { - "": unknown - } - Returns: string - } chunk_compression_stats: { Args: { hypertable: unknown @@ -30480,6 +28148,7 @@ export type Database = { fonction: Database["public"]["Enums"]["membre_fonction"] details_fonction: string champ_intervention: Database["public"]["Enums"]["referentiel"][] + invitation_id: string }[] } collectivite_personne_tag: { @@ -30518,7 +28187,7 @@ export type Database = { } Returns: { id: number - md_id: Database["public"]["Enums"]["indicateur_thematique"] | null + md_id: Database["public"]["Enums"]["old_indicateur_thematique"] | null nom: string }[] } @@ -30550,12 +28219,6 @@ export type Database = { Args: Record Returns: undefined } - confidentiel: { - Args: { - "": unknown - } - Returns: boolean - } consume_invitation: { Args: { id: string @@ -30603,8 +28266,7 @@ export type Database = { collectivite_id: number axe_id?: number action_id?: unknown - indicateur_referentiel_id?: unknown - indicateur_personnalise_id?: number + indicateur_id?: number } Returns: { amelioration_continue: boolean | null @@ -30656,46 +28318,6 @@ export type Database = { } Returns: unknown } - definition_perso: { - Args: { - "": unknown - } - Returns: { - collectivite_id: number - commentaire: string - description: string - id: number - modified_at: string - modified_by: string - titre: string - unite: string - }[] - } - definition_referentiel: { - Args: { - "": unknown - } - Returns: { - description: string - id: string - identifiant: string | null - modified_at: string - nom: string - parent: string | null - participation_score: boolean - programmes: Database["public"]["Enums"]["indicateur_programme"][] - sans_valeur: boolean - selection: boolean - source: string | null - thematiques: Database["public"]["Enums"]["indicateur_thematique"][] - titre_long: string - type: - | Database["public"]["Enums"]["indicateur_referentiel_type"] - | null - unite: string - valeur_indicateur: string | null - }[] - } delete_axe_all: { Args: { axe_id: number @@ -30816,45 +28438,6 @@ export type Database = { } Returns: string[] } - enfants: - | { - Args: { - "": unknown - } - Returns: { - collectivite_id: number | null - description: string | null - indicateur_id: string | null - indicateur_perso_id: number | null - nom: string | null - unite: string | null - }[] - } - | { - Args: { - "": unknown - } - Returns: { - description: string - id: string - identifiant: string | null - modified_at: string - nom: string - parent: string | null - participation_score: boolean - programmes: Database["public"]["Enums"]["indicateur_programme"][] - sans_valeur: boolean - selection: boolean - source: string | null - thematiques: Database["public"]["Enums"]["indicateur_thematique"][] - titre_long: string - type: - | Database["public"]["Enums"]["indicateur_referentiel_type"] - | null - unite: string - valeur_indicateur: string | null - }[] - } enlever_fiche_action_d_un_axe: { Args: { fiche_id: number @@ -31020,16 +28603,6 @@ export type Database = { titre: string | null }[] } - fiches_non_classees: { - Args: { - "": unknown - } - Returns: { - fiche_id: number - indicateur_id: string | null - indicateur_personnalise_id: number | null - }[] - } filter_fiches_action: { Args: { collectivite_id: number @@ -31812,15 +29385,6 @@ export type Database = { } Returns: number } - import_sources: { - Args: { - "": unknown - } - Returns: { - id: string - libelle: string - }[] - } in_todo: { Args: Record Returns: boolean @@ -31837,16 +29401,6 @@ export type Database = { } Returns: string } - indicateur_action: { - Args: { - "": unknown - } - Returns: { - action_id: string - indicateur_id: string - modified_at: string - }[] - } indicateur_artificialisation: { Args: { "": unknown @@ -31862,11 +29416,76 @@ export type Database = { total: number }[] } + indicateur_enfants: { + Args: { + "": unknown + } + Returns: { + borne_max: number | null + borne_min: number | null + collectivite_id: number | null + created_at: string + created_by: string | null + description: string | null + groupement_id: number | null + id: number + identifiant_referentiel: string | null + modified_at: string + modified_by: string | null + participation_score: boolean + sans_valeur_utilisateur: boolean + titre: string + titre_long: string | null + unite: string + valeur_calcule: string | null + }[] + } + indicateur_parents: { + Args: { + "": unknown + } + Returns: { + borne_max: number | null + borne_min: number | null + collectivite_id: number | null + created_at: string + created_by: string | null + description: string | null + groupement_id: number | null + id: number + identifiant_referentiel: string | null + modified_at: string + modified_by: string | null + participation_score: boolean + sans_valeur_utilisateur: boolean + titre: string + titre_long: string | null + unite: string + valeur_calcule: string | null + }[] + } + indicateur_pilote_user: { + Args: { + "": unknown + } + Returns: { + cgu_acceptees_le: string | null + created_at: string + deleted: boolean + email: string + limited: boolean + modified_at: string + nom: string + prenom: string + telephone: string | null + user_id: string + } + } indicateurs_gaz_effet_serre: { Args: { "": unknown } - Returns: Database["public"]["Tables"]["indicateur_resultat_import"]["Row"][][] + Returns: Database["public"]["Tables"]["indicateur_valeur"]["Row"][][] } interpolate: | { @@ -31949,6 +29568,20 @@ export type Database = { } Returns: string } + is_indicateur_collectivite: { + Args: { + indicateur_id: number + collectivite_id: number + } + Returns: boolean + } + is_indicateur_confidential: { + Args: { + indicateur_id: number + collectivite_id: number + } + Returns: boolean + } is_normal_function: { Args: { "": unknown @@ -32329,17 +29962,30 @@ export type Database = { } Returns: string } - personne: { + personnes_collectivite: { Args: { - "": unknown + collectivite_id: number } Returns: Database["public"]["CompositeTypes"]["personne"][] } - personnes_collectivite: { + peut_ajouter_une_valeur_a_l_indicateur: { Args: { - collectivite_id: number + indicateur_id: number } - Returns: Database["public"]["CompositeTypes"]["personne"][] + Returns: boolean + } + peut_lire_l_indicateur: { + Args: { + indicateur_id: number + } + Returns: boolean + } + peut_lire_la_categorie_d_indicateur: { + Args: { + indicateur_id: number + categorie_tag_id: number + } + Returns: boolean } peut_lire_la_fiche: { Args: { @@ -32347,6 +29993,19 @@ export type Database = { } Returns: boolean } + peut_modifier_l_indicateur: { + Args: { + indicateur_id: number + } + Returns: boolean + } + peut_modifier_la_categorie_d_indicateur: { + Args: { + indicateur_id: number + categorie_tag_id: number + } + Returns: boolean + } peut_modifier_la_fiche: { Args: { fiche_id: number @@ -32365,18 +30024,6 @@ export type Database = { Args: Record Returns: number } - pilotes: { - Args: { - "": unknown - } - Returns: { - collectivite_id: number | null - indicateur_id: string | null - indicateur_perso_id: number | null - tag_id: number | null - user_id: string | null - }[] - } plan: { Args: { "": number @@ -32520,12 +30167,6 @@ export type Database = { } Returns: undefined } - rempli: { - Args: { - "": unknown - } - Returns: boolean - } reorder_chunk: { Args: { chunk: unknown @@ -32612,17 +30253,6 @@ export type Database = { } Returns: string } - services: { - Args: { - "": unknown - } - Returns: { - collectivite_id: number | null - indicateur_id: string | null - indicateur_perso_id: number | null - service_tag_id: number - }[] - } set_adaptive_chunking: { Args: { hypertable: unknown @@ -32877,17 +30507,7 @@ export type Database = { } Returns: { id: number - md_id: Database["public"]["Enums"]["indicateur_thematique"] | null - nom: string - }[] - } - thematiques: { - Args: { - "": unknown - } - Returns: { - id: number - md_id: Database["public"]["Enums"]["indicateur_thematique"] | null + md_id: Database["public"]["Enums"]["old_indicateur_thematique"] | null nom: string }[] } @@ -33331,18 +30951,6 @@ export type Database = { indicateur_group: "cae" | "crte" | "eci" indicateur_programme: "clef" | "eci" | "cae" | "pcaet" | "crte" indicateur_referentiel_type: "resultat" | "impact" - indicateur_thematique: - | "eci_dechets" - | "energie_et_climat" - | "indicateur_thematique" - | "agri_alim" - | "urbanisme_et_amenagement" - | "mobilite_et_transport" - | "nature_environnement_air" - | "eau_assainissement" - | "strategie_orga_interne" - | "activites_economiques" - | "solidarite_lien_social" indicateur_valeur_type: "resultat" | "objectif" | "import" membre_fonction: | "referent" @@ -33363,6 +30971,18 @@ export type Database = { | "SIVU" | "PETR" niveau_acces: "admin" | "edition" | "lecture" + old_indicateur_thematique: + | "eci_dechets" + | "energie_et_climat" + | "indicateur_thematique" + | "agri_alim" + | "urbanisme_et_amenagement" + | "mobilite_et_transport" + | "nature_environnement_air" + | "eau_assainissement" + | "strategie_orga_interne" + | "activites_economiques" + | "solidarite_lien_social" preuve_type: | "complementaire" | "reglementaire" From 0c8f40cca74ba9f618ba41ebec4bae55870c3cfe Mon Sep 17 00:00:00 2001 From: Amandine Jacquelin Date: Mon, 17 Jun 2024 16:21:53 +0200 Subject: [PATCH 05/46] =?UTF-8?q?Enl=C3=A8ve=20les=20indicateurs=20de=20l'?= =?UTF-8?q?import=20des=20plans=20d'actions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../functions/import_plan_action/fetchData.ts | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/supabase/functions/import_plan_action/fetchData.ts b/supabase/functions/import_plan_action/fetchData.ts index a53eb82f08..af82b27090 100644 --- a/supabase/functions/import_plan_action/fetchData.ts +++ b/supabase/functions/import_plan_action/fetchData.ts @@ -87,21 +87,8 @@ export const fetchSousThematiques = async ( */ export const fetchIndicateurs = async (supabaseClient: TSupabaseClient, collectivite_id : number) : Promise> => { - const query = supabaseClient - .from('indicateurs_collectivite') - .select() - .eq('collectivite_id', collectivite_id); - - const { error, data } = await query; - if (error) { - throw new Error(error.message); - } - const toReturn = new Map(); - for(let i=0; i(); } /** From d3ee5dc93b6f6662c4b42b9081e798be6e8538a6 Mon Sep 17 00:00:00 2001 From: Amandine Jacquelin Date: Mon, 17 Jun 2024 16:24:05 +0200 Subject: [PATCH 06/46] =?UTF-8?q?Met=20=C3=A0=20jour=20l'import=20EMT=20de?= =?UTF-8?q?s=20indicateurs=20avec=20le=20nouveau=20mod=C3=A8le?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../import_indicateur_emt/cleanData.ts | 13 ++- .../import_indicateur_emt/fetchData.ts | 56 +++------ .../functions/import_indicateur_emt/index.ts | 29 ++--- .../import_indicateur_emt/saveData.ts | 110 ++++++------------ 4 files changed, 68 insertions(+), 140 deletions(-) diff --git a/supabase/functions/import_indicateur_emt/cleanData.ts b/supabase/functions/import_indicateur_emt/cleanData.ts index 99b7d16dd5..69d4de6a7d 100644 --- a/supabase/functions/import_indicateur_emt/cleanData.ts +++ b/supabase/functions/import_indicateur_emt/cleanData.ts @@ -13,7 +13,7 @@ export const id = async ( nom : string, referentiel : string, definitions : Map> -): Promise => { +): Promise => { // Cellules fusionnées et dont la valeur ne se retrouve que sur la première cellule if(!id){ if(String(nom).includes('Montant des aides financières accordées aux particuliers et acteurs privés (euros/hab.an)')){ @@ -46,7 +46,7 @@ export const id = async ( case null : } idClean = referentiel +'_' +idClean; - return definitions.get(idClean)?idClean:null; + return definitions.get(idClean) ? definitions.get(idClean).id : null; } /** @@ -58,8 +58,8 @@ export const id = async ( */ export const valeur = async ( valeur : any, - indicateur_id : string, - definitons : Map> + indicateur_id : number, + definitons : Map> ): Promise => { if(valeur==null){ return null; @@ -68,7 +68,10 @@ export const valeur = async ( if(isNaN(toReturn)){ return null; } - if(definitons.get(indicateur_id)!.unite=='%' && toReturn<1){ + const defs = definitons.get(indicateur_id) || null; + const unite = defs ? defs.unite : ''; + + if(unite ==='%' && toReturn<1){ toReturn *= 100; } return toReturn; diff --git a/supabase/functions/import_indicateur_emt/fetchData.ts b/supabase/functions/import_indicateur_emt/fetchData.ts index 4258d6d920..1519519b8e 100644 --- a/supabase/functions/import_indicateur_emt/fetchData.ts +++ b/supabase/functions/import_indicateur_emt/fetchData.ts @@ -3,75 +3,55 @@ import {Tables, TablesInsert} from "../_shared/typeUtils.ts"; /** - * Récupère les commentaires des indicateurs de la collectivité + * Récupère les valeurs des indicateurs de la collectivité * @param supabaseClient * @param collectivite_id * @return commentaires */ -export const commentaires = async(supabaseClient : TSupabaseClient, collectivite_id : number)=> { +export const valeurs = async(supabaseClient : TSupabaseClient, collectivite_id : number)=> { const query = supabaseClient - .from('indicateur_resultat_commentaire') + .from('indicateur_valeur') .select() - .eq('collectivite_id', collectivite_id); + .eq('collectivite_id', collectivite_id) + .is('metadonnee_id', null); const { error, data } = await query; if (error) { throw new Error(error.message); } - const toReturn = new Map>(); + const toReturn = new Map>(); for(let i=0; i = data[i]; - toReturn.set( - (commentaire.annee?commentaire.indicateur_id +' ' +commentaire.annee:commentaire.indicateur_id), - commentaire - ); + const valeur : TablesInsert<"indicateur_valeur"> = data[i]; + toReturn.set(`${valeur.indicateur_id} - ${new Date(valeur.date_valeur).getFullYear()}`, valeur); } return toReturn; } /** - * Récupère les définitions des indicateurs + * Récupère les définitions prédéfinis des indicateurs * @param supabaseClient * @return definitions */ export const definitions = async(supabaseClient : TSupabaseClient)=> { const query = supabaseClient .from('indicateur_definition') - .select(); + .select() + .is('collectivite_id', null) + .is('groupement_id', null) + .not('identifiant_referentiel', 'is', null); const { error, data } = await query; if (error) { throw new Error(error.message); } - const toReturn = new Map>(); + const parIdentifiant = new Map>(); + const parID = new Map>(); for(let i=0; i = data[i]; - toReturn.set(definition.id, definition); + parIdentifiant.set(definition.identifiant_referentiel, definition); + parID.set(definition.id, definition); } - return toReturn; + return {parIdentifiant, parID}; } -/** - * Récupère les résultats des indicateurs - * @param supabaseClient - * @param collectivite_id - * @return definitions - */ -export const resultats = async(supabaseClient : TSupabaseClient, collectivite_id : number)=> { - const query = supabaseClient - .from('indicateur_resultat') - .select() - .eq('collectivite_id', collectivite_id); - - const { error, data } = await query; - if (error) { - throw new Error(error.message); - } - const toReturn = new Map>(); - for(let i=0; i = data[i]; - toReturn.set(resultat.indicateur_id +' - '+ resultat.annee, resultat); - } - return toReturn; -} diff --git a/supabase/functions/import_indicateur_emt/index.ts b/supabase/functions/import_indicateur_emt/index.ts index 65fa11306d..671ca3035d 100644 --- a/supabase/functions/import_indicateur_emt/index.ts +++ b/supabase/functions/import_indicateur_emt/index.ts @@ -57,9 +57,8 @@ serve(async (req) => { } } } - const commentaires = await fetch.commentaires(supabaseClient, collectivite_id); + const valeurs = await fetch.valeurs(supabaseClient, collectivite_id); const definitions = await fetch.definitions(supabaseClient); - const resultats = await fetch.resultats(supabaseClient, collectivite_id) const tetId = test?yoloUserId:tetUserId; // Pour chaque ligne du fichier @@ -67,7 +66,7 @@ serve(async (req) => { // Récupère l'id de l'indicateur const id = await getCelluleValue(sheet, ligne, 0); // Colonne A const nom = await getCelluleValue(sheet, ligne, 2); // Colonne C - const indicateur_id = await clean.id(id, nom, referentiel, definitions); + const indicateur_id = await clean.id(id, nom, referentiel, definitions.parIdentifiant); if(indicateur_id) { for (let colonne = 4; colonne < 14; colonne += 3) { @@ -75,29 +74,17 @@ serve(async (req) => { let valeur = await getCelluleValue(sheet, ligne, colonne); let annee = await clean.annee(await getCelluleValue(sheet, ligne, colonne + 1)); let commentaire = await getCelluleValue(sheet, ligne, colonne + 2); - const valeurClean = await clean.valeur(valeur, indicateur_id, definitions); - - // Sauvegarde la valeur si elle est présente, ainsi que l'année associée - if (annee && valeurClean) { - await save.resultat( + const valeurClean = await clean.valeur(valeur, indicateur_id, definitions.parID); + // Sauvegarde les valeurs si elles sont présentes, ainsi que l'année associée + if (annee && (valeurClean || commentaire)) { + await save.valeurs( supabaseClient, collectivite_id, indicateur_id, annee, valeurClean, - resultats - ); - } - // Sauvegarde le commentaire s'il est présent - if (commentaire) { - await save.commentaire( - supabaseClient, - collectivite_id, - indicateur_id, - annee, commentaire, - commentaires, - tetId + valeurs ); } } @@ -126,7 +113,7 @@ serve(async (req) => { * @param ligne * @param colonne */ -const getCelluleValue = async (sheet : any, ligne : integer, colonne : integer) +const getCelluleValue = async (sheet : any, ligne : number, colonne : number) : Promise => { const coord = xlsx.utils.encode_cell({r: ligne, c: colonne}); return !sheet[coord]?null:sheet[coord].v; diff --git a/supabase/functions/import_indicateur_emt/saveData.ts b/supabase/functions/import_indicateur_emt/saveData.ts index 390dd9380b..e9d8329753 100644 --- a/supabase/functions/import_indicateur_emt/saveData.ts +++ b/supabase/functions/import_indicateur_emt/saveData.ts @@ -2,97 +2,55 @@ import {TSupabaseClient} from "../_shared/getSupabaseClient.ts"; import {TablesInsert} from "../_shared/typeUtils.ts"; /** - * Sauvegarde un résultat d'indicateur + * Sauvegarde une valeur d'indicateur * @param supabaseClient * @param collectivite_id collectivité concernée * @param indicateur_id indicateur concernée * @param annee annee de la valeur de l'indicateur - * @param valeur valeur de l'indicateur - * @param resultats resultats déjà existant à ne pas écraser + * @param commentaire commentaire de la valeur de l'indicateur + * @param resultat valeur de l'indicateur + * @param valeurs valeurs déjà existant à ne pas écraser */ -export const resultat = async( +export const valeurs = async( supabaseClient : TSupabaseClient, collectivite_id : number, - indicateur_id : string, - annee : string, - valeur : number, - resultats : Map> + indicateur_id : number, + annee : number, + resultat : number | null, + commentaire : string | null, + valeurs : Map> )=> { - - let indicateurToSave : TablesInsert<"indicateur_resultat">= - resultats.get(indicateur_id + ' - ' +annee); + let valeurToSave : TablesInsert<"indicateur_valeur">= + valeurs.get(indicateur_id + ' - ' +annee); + let modifie = false; // On n'écrase pas les indicateurs déjà renseignés. - if(!indicateurToSave) { - indicateurToSave = { + if(valeurToSave){ + if(commentaire){ + valeurToSave = { + ...valeurToSave, + resultat_commentaire : valeurToSave.resultat_commentaire ? + commentaire +'\n---\n' +valeurToSave.resultat_commentaire : + commentaire + } + modifie = true; + } + }else if (commentaire || resultat){ + valeurToSave = { indicateur_id: indicateur_id, collectivite_id: collectivite_id, - annee: annee, - valeur: valeur, + date_valeur: new Date(annee, 0, 1).toLocaleDateString('sv-SE'), + resultat: resultat != null ? resultat : undefined , + resultat_commentaire : commentaire ? commentaire : undefined, + metadonnee_id : null } + modifie = true; + } - const {error, data} = await supabaseClient.from('indicateur_resultat').upsert(indicateurToSave); + if(modifie){ + const {error, data} = await supabaseClient.from('indicateur_valeur').upsert(valeurToSave); if (error) { throw new Error(error.message); } } return true; -} - -/** - * Sauvegarde un commentaire d'indicateur - * @param supabaseClient - * @param collectivite_id collectivité concernée - * @param indicateur_id indicateur concernée - * @param annee annee de la valeur de l'indicateur - * @param commentaire commentaire de la valeur de l'indicateur - * @param commentaires commentaires déjà existant, pour garder l'ancien commentaire - * @param tetId identifiant de l'équipe TeT pour le modified_by qui ne peut pas être null - */ -export const commentaire = async( - supabaseClient : TSupabaseClient, - collectivite_id : number, - indicateur_id : string, - annee : string, - commentaire :string, - commentaires : Map>, - tetId : string -)=> { - - let insert = true; - let commentaireToSave : TablesInsert<"indicateur_resultat_import"> - = commentaires.get(annee?(indicateur_id +' ' +annee):indicateur_id); - if(commentaireToSave) { - commentaireToSave.commentaire = commentaire +'\n---\n' +commentaireToSave.commentaire; - insert = false; - }else{ - commentaireToSave = { - indicateur_id: indicateur_id, - collectivite_id: collectivite_id, - annee : annee, - commentaire: commentaire - } - } - commentaireToSave.modified_by = tetId; - - // Il n'y a pas de clé primaire sur la table indicateur_resultat_commentaire - // et donc il n'est pas possible d'utiliser upsert - const { error, data } = insert ? - await supabaseClient.from('indicateur_resultat_commentaire').insert(commentaireToSave) : - (commentaireToSave.annee == null ? - await supabaseClient.from('indicateur_resultat_commentaire') - .update(commentaireToSave) - .match({ - collectivite_id : commentaireToSave.collectivite_id, - indicateur_id : commentaireToSave.indicateur_id}) - .is('annee', null): - await supabaseClient.from('indicateur_resultat_commentaire') - .update(commentaireToSave) - .match({ - collectivite_id : commentaireToSave.collectivite_id, - indicateur_id : commentaireToSave.indicateur_id, - annee : commentaireToSave.annee})); - if (error) { - throw new Error(error.message); - } - return true; -} +} \ No newline at end of file From b247f3bfcd64227c840b1b755654fdc9a637de43 Mon Sep 17 00:00:00 2001 From: Marc Rutkowski Date: Mon, 17 Jun 2024 17:39:07 +0200 Subject: [PATCH 07/46] Ajoute l'export des points d'API --- packages/api/src/indicateurs/domain/index.ts | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 packages/api/src/indicateurs/domain/index.ts diff --git a/packages/api/src/indicateurs/domain/index.ts b/packages/api/src/indicateurs/domain/index.ts new file mode 100644 index 0000000000..be6262c528 --- /dev/null +++ b/packages/api/src/indicateurs/domain/index.ts @@ -0,0 +1,4 @@ +export * from './categorie.schema'; +export * from './definition.schema'; +export * from './source.schema'; +export * from './valeur.schema'; From 5cd827ec5b3eda7c5c79eb2e2b4951c00b134fdc Mon Sep 17 00:00:00 2001 From: Amandine Jacquelin Date: Thu, 27 Jun 2024 19:04:12 +0200 Subject: [PATCH 08/46] =?UTF-8?q?Enl=C3=A8ve=20les=20tests=20des=20droits?= =?UTF-8?q?=20de=20la=20CI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 313 +-------------------------------------- 1 file changed, 1 insertion(+), 312 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 93d5806bd0..b3fd7c40e0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -554,315 +554,4 @@ jobs: uses: actions/upload-artifact@master with: name: logs.tgz - path: ./logs.tgz - - test-fonctions: - needs: - - build-business-dev - - build-tools - - build-app-dev - - build-db - environment: dev - runs-on: ubuntu-latest - timeout-minutes: 60 - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha }} - fetch-depth: 0 - - uses: earthly/actions/setup-earthly@v1 - with: - version: v0.7.20 - - uses: supabase/setup-cli@v1 - with: - version: latest - - - name: Login into registry - run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }} - - - name: Start services - run: > - earthly --use-inline-cache +dev - --stop=no --datalayer=yes --business=yes --app=no --eco=yes --faster=yes --version=HEAD - --DB_URL=${{ secrets.DB_URL }} - --SERVICE_ROLE_KEY=${{ secrets.SERVICE_ROLE_KEY }} - --ANON_KEY=${{ secrets.ANON_KEY }} - --API_URL=${{ secrets.API_URL }} - - - name: Reset de postgrest - run: docker restart supabase_rest_tet - - - name: Api test build - run: > - earthly --use-inline-cache +api-test-build - --DB_URL=${{ secrets.DB_URL }} - --SERVICE_ROLE_KEY=${{ secrets.SERVICE_ROLE_KEY }} - --ANON_KEY=${{ secrets.ANON_KEY }} - --API_URL=${{ secrets.API_URL }} - - - name: Test curl - run: > - earthly --use-inline-cache +curl-test - --DB_URL=${{ secrets.DB_URL }} - --SERVICE_ROLE_KEY=${{ secrets.SERVICE_ROLE_KEY }} - --ANON_KEY=${{ secrets.ANON_KEY }} - --API_URL=${{ secrets.API_URL }} - - - name: Test api crud fonctions - run: > - docker run --rm - --name api_crud_test_tet - --network host - --env SUPABASE_URL=${{ secrets.API_URL }} - --env SUPABASE_KEY=${{ secrets.ANON_KEY }} - api-test:latest test -A tests/crud/crud.test.ts --location 'http://localhost' -- type:fonction - - test-vues: - needs: - - build-business-dev - - build-tools - - build-app-dev - - build-db - environment: dev - runs-on: ubuntu-latest - timeout-minutes: 60 - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha }} - fetch-depth: 0 - - uses: earthly/actions/setup-earthly@v1 - with: - version: v0.7.20 - - uses: supabase/setup-cli@v1 - with: - version: latest - - - name: Login into registry - run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }} - - - name: Start services - run: > - earthly --use-inline-cache +dev - --stop=no --datalayer=yes --business=yes --app=no --eco=yes --faster=yes --version=HEAD - --DB_URL=${{ secrets.DB_URL }} - --SERVICE_ROLE_KEY=${{ secrets.SERVICE_ROLE_KEY }} - --ANON_KEY=${{ secrets.ANON_KEY }} - --API_URL=${{ secrets.API_URL }} - - - name: Reset de postgrest - run: docker restart supabase_rest_tet - - - name: Api test build - run: > - earthly --use-inline-cache +api-test-build - --DB_URL=${{ secrets.DB_URL }} - --SERVICE_ROLE_KEY=${{ secrets.SERVICE_ROLE_KEY }} - --ANON_KEY=${{ secrets.ANON_KEY }} - --API_URL=${{ secrets.API_URL }} - - - name: Test curl - run: > - earthly --use-inline-cache +curl-test - --DB_URL=${{ secrets.DB_URL }} - --SERVICE_ROLE_KEY=${{ secrets.SERVICE_ROLE_KEY }} - --ANON_KEY=${{ secrets.ANON_KEY }} - --API_URL=${{ secrets.API_URL }} - - - name: Test api crud vues - run: > - docker run --rm - --name api_crud_test_tet - --network host - --env SUPABASE_URL=${{ secrets.API_URL }} - --env SUPABASE_KEY=${{ secrets.ANON_KEY }} - api-test:latest test -A tests/crud/crud.test.ts --location 'http://localhost' -- type:vue - - test-tables1: - needs: - - build-business-dev - - build-tools - - build-app-dev - - build-db - environment: dev - runs-on: ubuntu-latest - timeout-minutes: 60 - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha }} - fetch-depth: 0 - - uses: earthly/actions/setup-earthly@v1 - with: - version: v0.7.20 - - uses: supabase/setup-cli@v1 - with: - version: latest - - - name: Login into registry - run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }} - - - name: Start services - run: > - earthly --use-inline-cache +dev - --stop=no --datalayer=yes --business=yes --app=no --eco=yes --faster=yes --version=HEAD - --DB_URL=${{ secrets.DB_URL }} - --SERVICE_ROLE_KEY=${{ secrets.SERVICE_ROLE_KEY }} - --ANON_KEY=${{ secrets.ANON_KEY }} - --API_URL=${{ secrets.API_URL }} - - - name: Reset de postgrest - run: docker restart supabase_rest_tet - - - name: Api test build - run: > - earthly --use-inline-cache +api-test-build - --DB_URL=${{ secrets.DB_URL }} - --SERVICE_ROLE_KEY=${{ secrets.SERVICE_ROLE_KEY }} - --ANON_KEY=${{ secrets.ANON_KEY }} - --API_URL=${{ secrets.API_URL }} - - - name: Test curl - run: > - earthly --use-inline-cache +curl-test - --DB_URL=${{ secrets.DB_URL }} - --SERVICE_ROLE_KEY=${{ secrets.SERVICE_ROLE_KEY }} - --ANON_KEY=${{ secrets.ANON_KEY }} - --API_URL=${{ secrets.API_URL }} - - - name: Test api crud table 1-3 - run: > - docker run --rm - --name api_crud_test_tet - --network host - --env SUPABASE_URL=${{ secrets.API_URL }} - --env SUPABASE_KEY=${{ secrets.ANON_KEY }} - api-test:latest test -A tests/crud/crud.test.ts --location 'http://localhost' -- type:table nbPart:3 part:1 - - test-tables2: - needs: - - build-business-dev - - build-tools - - build-app-dev - - build-db - environment: dev - runs-on: ubuntu-latest - timeout-minutes: 60 - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha }} - fetch-depth: 0 - - uses: earthly/actions/setup-earthly@v1 - with: - version: v0.7.20 - - uses: supabase/setup-cli@v1 - with: - version: latest - - - name: Login into registry - run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }} - - - name: Start services - run: > - earthly --use-inline-cache +dev - --stop=no --datalayer=yes --business=yes --app=no --eco=yes --faster=yes --version=HEAD - --DB_URL=${{ secrets.DB_URL }} - --SERVICE_ROLE_KEY=${{ secrets.SERVICE_ROLE_KEY }} - --ANON_KEY=${{ secrets.ANON_KEY }} - --API_URL=${{ secrets.API_URL }} - - - name: Reset de postgrest - run: docker restart supabase_rest_tet - - - name: Api test build - run: > - earthly --use-inline-cache +api-test-build - --DB_URL=${{ secrets.DB_URL }} - --SERVICE_ROLE_KEY=${{ secrets.SERVICE_ROLE_KEY }} - --ANON_KEY=${{ secrets.ANON_KEY }} - --API_URL=${{ secrets.API_URL }} - - - name: Test curl - run: > - earthly --use-inline-cache +curl-test - --DB_URL=${{ secrets.DB_URL }} - --SERVICE_ROLE_KEY=${{ secrets.SERVICE_ROLE_KEY }} - --ANON_KEY=${{ secrets.ANON_KEY }} - --API_URL=${{ secrets.API_URL }} - - - name: Test api crud table 2-3 - run: > - docker run --rm - --name api_crud_test_tet - --network host - --env SUPABASE_URL=${{ secrets.API_URL }} - --env SUPABASE_KEY=${{ secrets.ANON_KEY }} - api-test:latest test -A tests/crud/crud.test.ts --location 'http://localhost' -- type:table nbPart:3 part:2 - - - test-tables3: - needs: - - build-business-dev - - build-tools - - build-app-dev - - build-db - environment: dev - runs-on: ubuntu-latest - timeout-minutes: 60 - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha }} - fetch-depth: 0 - - uses: earthly/actions/setup-earthly@v1 - with: - version: v0.7.20 - - uses: supabase/setup-cli@v1 - with: - version: latest - - - name: Login into registry - run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }} - - - name: Start services - run: > - earthly --use-inline-cache +dev - --stop=no --datalayer=yes --business=yes --app=no --eco=yes --faster=yes --version=HEAD - --DB_URL=${{ secrets.DB_URL }} - --SERVICE_ROLE_KEY=${{ secrets.SERVICE_ROLE_KEY }} - --ANON_KEY=${{ secrets.ANON_KEY }} - --API_URL=${{ secrets.API_URL }} - - - name: Reset de postgrest - run: docker restart supabase_rest_tet - - - name: Api test build - run: > - earthly --use-inline-cache +api-test-build - --DB_URL=${{ secrets.DB_URL }} - --SERVICE_ROLE_KEY=${{ secrets.SERVICE_ROLE_KEY }} - --ANON_KEY=${{ secrets.ANON_KEY }} - --API_URL=${{ secrets.API_URL }} - - - name: Test curl - run: > - earthly --use-inline-cache +curl-test - --DB_URL=${{ secrets.DB_URL }} - --SERVICE_ROLE_KEY=${{ secrets.SERVICE_ROLE_KEY }} - --ANON_KEY=${{ secrets.ANON_KEY }} - --API_URL=${{ secrets.API_URL }} - - - name: Test api crud table 3-3 - run: > - docker run --rm - --name api_crud_test_tet - --network host - --env SUPABASE_URL=${{ secrets.API_URL }} - --env SUPABASE_KEY=${{ secrets.ANON_KEY }} - api-test:latest test -A tests/crud/crud.test.ts --location 'http://localhost' -- type:table nbPart:3 part:3 \ No newline at end of file + path: ./logs.tgz \ No newline at end of file From c5dc2073052810badd55c953250d1a59524ff95d Mon Sep 17 00:00:00 2001 From: Marc Rutkowski Date: Wed, 10 Jul 2024 15:22:13 +0200 Subject: [PATCH 09/46] =?UTF-8?q?Ajoute=20les=20exports=20et=20utilise=20l?= =?UTF-8?q?e=20typage=20en=20snake=5Fcase=20pour=20rester=20compatible=20a?= =?UTF-8?q?vec=20le=20composant=20`PersonnesDropdown`=20utilis=C3=A9=20?= =?UTF-8?q?=C3=A0=20plusieurs=20endroits?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/fiche_actions/domain/axe.schema.ts | 18 ++++----- .../api/src/fiche_actions/domain/index.ts | 2 + .../src/fiche_actions/domain/resume.schema.ts | 38 ++++++++++++------- .../src/fiche_actions/fiche_actions.fetch.ts | 25 ++++++++++++ packages/api/src/fiche_actions/index.ts | 2 + 5 files changed, 63 insertions(+), 22 deletions(-) create mode 100644 packages/api/src/fiche_actions/domain/index.ts create mode 100644 packages/api/src/fiche_actions/fiche_actions.fetch.ts diff --git a/packages/api/src/fiche_actions/domain/axe.schema.ts b/packages/api/src/fiche_actions/domain/axe.schema.ts index 3048ae536b..3d48bcb2d7 100644 --- a/packages/api/src/fiche_actions/domain/axe.schema.ts +++ b/packages/api/src/fiche_actions/domain/axe.schema.ts @@ -4,15 +4,15 @@ import {z} from "zod"; * Schéma zod d'un axe d'un plan d'action avec les liens vers les autres objets sous forme d'id */ export const axeSchema = z.object({ - id : z.string(), - collectiviteId : z.number(), - nom : z.string().nullable(), - parent : z.number().nullable(), - plan : z.number().nullable(), - type : z.number().nullable(), - createdAt : z.string().date().nullable(), - modifiedAt: z.string().date().nullable(), - modifiedBy : z.string().nullable() + id: z.number(), + collectiviteId: z.number(), + nom: z.string().nullable().optional(), + parent: z.number().nullable(), + plan: z.number().nullable(), + type: z.number().nullable(), + createdAt: z.string().date().optional(), + modifiedAt: z.string().date().optional(), + modifiedBy: z.string().nullable(), }); /** diff --git a/packages/api/src/fiche_actions/domain/index.ts b/packages/api/src/fiche_actions/domain/index.ts new file mode 100644 index 0000000000..03ac7f8e4e --- /dev/null +++ b/packages/api/src/fiche_actions/domain/index.ts @@ -0,0 +1,2 @@ +export * from './axe.schema'; +export * from './resume.schema'; diff --git a/packages/api/src/fiche_actions/domain/resume.schema.ts b/packages/api/src/fiche_actions/domain/resume.schema.ts index 8fe2099b12..0a8fb0723c 100644 --- a/packages/api/src/fiche_actions/domain/resume.schema.ts +++ b/packages/api/src/fiche_actions/domain/resume.schema.ts @@ -1,26 +1,38 @@ import {z} from 'zod'; -import {niveauPrioritesSchema, statutsSchema} from "../fiche_resumes.list/domain/enum.schema"; -import {personneSchema} from "../../shared/domain/personne.schema"; +import { + niveauPrioritesSchema, + statutsSchema, +} from '../fiche_resumes.list/domain/enum.schema'; import {axeSchema} from "./axe.schema"; +import {ObjectToSnake} from 'ts-case-convert/lib/caseConvert'; /** * Schéma zod d'un résumé d'une fiche action */ export const resumeSchema = z.object({ - ameliorationContinue : z.boolean(), - collectiviteId : z.number(), - dateFinProvisoire : z.string().date(), - id : z.number(), - modifiedAt : z.string().date(), - niveauPriorite : niveauPrioritesSchema, - pilotes : personneSchema.array(), - plans : axeSchema.array(), - restreint : z.boolean(), - statut : statutsSchema, - titre : z.string() + ameliorationContinue: z.boolean(), + collectiviteId: z.number(), + dateFinProvisoire: z.string().date(), + id: z.number(), + modifiedAt: z.string().date(), + niveauPriorite: niveauPrioritesSchema, + pilotes: z + .object({ + nom: z.string().nullable(), + collectiviteId: z.number(), + tagId: z.number().nullable(), + userId: z.string().nullable(), + }) + .array(), + plans: axeSchema.array(), + restreint: z.boolean(), + statut: statutsSchema, + titre: z.string(), }); /** * Type TS d'un résumé d'une fiche action */ export type FicheResume = z.input; + +export type FicheResumeLegacy = ObjectToSnake; diff --git a/packages/api/src/fiche_actions/fiche_actions.fetch.ts b/packages/api/src/fiche_actions/fiche_actions.fetch.ts new file mode 100644 index 0000000000..448aee99dc --- /dev/null +++ b/packages/api/src/fiche_actions/fiche_actions.fetch.ts @@ -0,0 +1,25 @@ +import {FicheResumeLegacy} from './domain'; +import {DBClient} from '../typeUtils'; + +// charge les fiches action liées à une action (et ses sous-actions) +export const selectActionFiches = async ( + dbClient: DBClient, + collectiviteId: number, + actionId: string +) => { + const {data} = await dbClient + .from('fiche_action_action') + .select('...fiche_resume(*)') + .eq('fiche_resume.collectivite_id', collectiviteId) + .like('action_id', `${actionId}%`) + // TODO: utiliser `objectToCamel` et `FicheResume` + .returns(); + + return ( + (data || []) + // filtre les fiches non valides + .filter(fiche => Boolean(fiche)) + // dédoublonne les fiches liées à plusieurs sous-actions de la même action + .filter((fiche, i, a) => a.findIndex(v => v.id === fiche.id) === i) + ); +}; diff --git a/packages/api/src/fiche_actions/index.ts b/packages/api/src/fiche_actions/index.ts index cf222d7871..59d954c187 100644 --- a/packages/api/src/fiche_actions/index.ts +++ b/packages/api/src/fiche_actions/index.ts @@ -1 +1,3 @@ export * from './plan_actions.list/data_access'; +export * as domain from './domain'; +export * as fetch from './fiche_actions.fetch'; From 2789fbd1d6ddd6e173ffb6ada7bf2302f7840dc5 Mon Sep 17 00:00:00 2001 From: Marc Rutkowski Date: Wed, 10 Jul 2024 15:27:19 +0200 Subject: [PATCH 10/46] Ajoute les fonctions manquantes --- .../actions/indicateur.fetch.test.ts | 293 ++-- .../indicateurs/actions/indicateur.fetch.ts | 1240 ++++++++++------- 2 files changed, 906 insertions(+), 627 deletions(-) diff --git a/packages/api/src/indicateurs/actions/indicateur.fetch.test.ts b/packages/api/src/indicateurs/actions/indicateur.fetch.test.ts index 1ecf9f1042..eb125d477d 100644 --- a/packages/api/src/indicateurs/actions/indicateur.fetch.test.ts +++ b/packages/api/src/indicateurs/actions/indicateur.fetch.test.ts @@ -1,146 +1,199 @@ import { - selectIndicateurValeur, - selectIndicateurValeurs, - selectIndicateurPilotes, - selectIndicateurServices, - selectIndicateurThematiques, - selectIndicateurFiches, - selectIndicateurActions, - selectIndicateurListItems, - selectIndicateurDefinition, - selectIndicateurComplet, - selectIndicateurChartInfo, - selectIndicateurCategoriesUtilisateur, - getValeursComparaison, - selectIndicateurSources + selectIndicateurValeur, + selectIndicateurValeurs, + selectIndicateurPilotes, + selectIndicateurServicesId, + selectIndicateurThematiquesId, + selectIndicateurFiches, + selectIndicateurActions, + selectIndicateurListItems, + selectIndicateurDefinition, + selectIndicateurComplet, + selectIndicateurChartInfo, + selectIndicateurCategoriesUtilisateur, + getValeursComparaison, + selectIndicateurSources, } from './indicateur.fetch'; -import {beforeAll, expect, test} from "vitest"; -import {signIn, signOut} from "../../tests/auth"; -import {dbAdmin, supabase} from "../../tests/supabase"; -import {testReset} from "../../tests/testReset"; - +import {beforeAll, expect, test} from 'vitest'; +import {signIn, signOut} from '../../tests/auth'; +import {dbAdmin, supabase} from '../../tests/supabase'; +import {testReset} from '../../tests/testReset'; beforeAll(async () => { - await signIn('yolododo'); - await testReset(); - // Groupement - const gp = - await dbAdmin.from('groupement').insert({nom: 'test'}).select('id'); - await dbAdmin.from('groupement_collectivite') - .insert({collectivite_id : 1, groupement_id : gp.data![0].id}); - const gp2 = - await dbAdmin.from('groupement').insert({nom: 'test2'}).select('id'); - await dbAdmin.from('groupement_collectivite') - .insert({collectivite_id : 2, groupement_id : gp2.data![0].id}); - - // Indicateur privé - const indi = await dbAdmin.from('indicateur_definition').insert({ - titre : 'testGroupement', unite : '%', groupement_id : gp.data![0].id - }); - - // Categories - const cat = await dbAdmin.from('categorie_tag').upsert( - {collectivite_id : 1, nom : 'test'}).select('id'); - await dbAdmin.from('indicateur_categorie_tag').insert( - {categorie_tag_id : cat.data![0].id, indicateur_id : 1}); - const cat2 = await dbAdmin.from('categorie_tag').upsert( - {groupement_id : gp.data![0].id, nom : 'testGP'}).select('id'); - await dbAdmin.from('indicateur_categorie_tag').insert( - {categorie_tag_id : cat2.data![0].id, indicateur_id : 1}); - const cat3 = await dbAdmin.from('categorie_tag').upsert( - {groupement_id : gp2.data![0].id, nom : 'testGP2'}).select('id'); - await dbAdmin.from('indicateur_categorie_tag').insert( - {categorie_tag_id : cat3.data![0].id, indicateur_id : 1}); - const cat4 = await dbAdmin.from('categorie_tag').upsert( - {collectivite_id : 2, nom : 'test2'}).select('id'); - await dbAdmin.from('indicateur_categorie_tag').insert( - {categorie_tag_id : cat4.data![0].id, indicateur_id : 1}); - // Pilotes - await dbAdmin.from('indicateur_pilote').insert( - {collectivite_id : 1, user_id : null, tag_id : 1, indicateur_id : 1}); - // Services - await dbAdmin.from('indicateur_service_tag').insert( - {collectivite_id : 1, service_tag_id : 1, indicateur_id : 1}); - // Thématiques - await dbAdmin.from('indicateur_thematique').insert( - {thematique_id : 1, indicateur_id : 123}); - // Fiches - await dbAdmin.from('fiche_action_indicateur').insert( - {fiche_id : 1, indicateur_id : 123}); - // Actions - await dbAdmin.from('indicateur_action').insert( - {action_id : 'eci_4', indicateur_id : 123}); - // Commentaire - await dbAdmin.from('indicateur_collectivite').insert( - {indicateur_id : 1, collectivite_id : 1, commentaire : 'test1'} - ) - await dbAdmin.from('indicateur_collectivite').insert( - {indicateur_id : 1, collectivite_id : 2, commentaire : 'test2'} - ) - // Metadonnées - const meta = await dbAdmin.from('indicateur_source_metadonnee').insert({ - source_id : 'citepa', - date_version : new Date().toLocaleDateString('sv-SE') + await signIn('yolododo'); + await testReset(); + // Groupement + const gp = await dbAdmin + .from('groupement') + .insert({nom: 'test'}) + .select('id'); + await dbAdmin + .from('groupement_collectivite') + .insert({collectivite_id: 1, groupement_id: gp.data![0].id}); + const gp2 = await dbAdmin + .from('groupement') + .insert({nom: 'test2'}) + .select('id'); + await dbAdmin + .from('groupement_collectivite') + .insert({collectivite_id: 2, groupement_id: gp2.data![0].id}); - }).select('id'); - const meta2 = await dbAdmin.from('indicateur_source_metadonnee').insert({ - source_id : 'citepa', - producteur : 'test', - date_version : new Date().toLocaleDateString('sv-SE') + // Indicateur privé + const indi = await dbAdmin.from('indicateur_definition').insert({ + titre: 'testGroupement', + unite: '%', + groupement_id: gp.data![0].id, + }); - }).select('id'); - const meta3 = await dbAdmin.from('indicateur_source_metadonnee').insert({ - source_id : 'orcae', - date_version : new Date().toLocaleDateString('sv-SE') + // Categories + const cat = await dbAdmin + .from('categorie_tag') + .upsert({collectivite_id: 1, nom: 'test'}) + .select('id'); + await dbAdmin + .from('indicateur_categorie_tag') + .insert({categorie_tag_id: cat.data![0].id, indicateur_id: 1}); + const cat2 = await dbAdmin + .from('categorie_tag') + .upsert({groupement_id: gp.data![0].id, nom: 'testGP'}) + .select('id'); + await dbAdmin + .from('indicateur_categorie_tag') + .insert({categorie_tag_id: cat2.data![0].id, indicateur_id: 1}); + const cat3 = await dbAdmin + .from('categorie_tag') + .upsert({groupement_id: gp2.data![0].id, nom: 'testGP2'}) + .select('id'); + await dbAdmin + .from('indicateur_categorie_tag') + .insert({categorie_tag_id: cat3.data![0].id, indicateur_id: 1}); + const cat4 = await dbAdmin + .from('categorie_tag') + .upsert({collectivite_id: 2, nom: 'test2'}) + .select('id'); + await dbAdmin + .from('indicateur_categorie_tag') + .insert({categorie_tag_id: cat4.data![0].id, indicateur_id: 1}); + // Pilotes + await dbAdmin + .from('indicateur_pilote') + .insert({collectivite_id: 1, user_id: null, tag_id: 1, indicateur_id: 1}); + // Services + await dbAdmin + .from('indicateur_service_tag') + .insert({collectivite_id: 1, service_tag_id: 1, indicateur_id: 1}); + // Thématiques + await dbAdmin + .from('indicateur_thematique') + .insert({thematique_id: 1, indicateur_id: 123}); + // Fiches + await dbAdmin + .from('fiche_action_indicateur') + .insert({fiche_id: 1, indicateur_id: 123}); + // Actions + await dbAdmin + .from('indicateur_action') + .insert({action_id: 'eci_4', indicateur_id: 123}); + // Commentaire + await dbAdmin + .from('indicateur_collectivite') + .insert({indicateur_id: 1, collectivite_id: 1, commentaire: 'test1'}); + await dbAdmin + .from('indicateur_collectivite') + .insert({indicateur_id: 1, collectivite_id: 2, commentaire: 'test2'}); + // Metadonnées + const meta = await dbAdmin + .from('indicateur_source_metadonnee') + .insert({ + source_id: 'citepa', + date_version: new Date().toLocaleDateString('sv-SE'), + }) + .select('id'); + const meta2 = await dbAdmin + .from('indicateur_source_metadonnee') + .insert({ + source_id: 'citepa', + producteur: 'test', + date_version: new Date().toLocaleDateString('sv-SE'), + }) + .select('id'); + const meta3 = await dbAdmin + .from('indicateur_source_metadonnee') + .insert({ + source_id: 'orcae', + date_version: new Date().toLocaleDateString('sv-SE'), + }) + .select('id'); - }).select('id'); - - // Valeurs - await dbAdmin.from('indicateur_valeur').insert({ - indicateur_id : 1, date_valeur : '2020-01-01', collectivite_id : 1, resultat : 1.2}); - await dbAdmin.from('indicateur_valeur').insert({ - indicateur_id : 8, date_valeur : '2020-01-01', collectivite_id : 1, resultat : 1.2}); - await dbAdmin.from('indicateur_valeur').insert({ - indicateur_id : 1, date_valeur : '2020-01-01', collectivite_id : 1, resultat : 1.5, metadonnee_id : meta.data![0].id}); - await dbAdmin.from('indicateur_valeur').insert({ - indicateur_id : 1, date_valeur : '2020-01-01', collectivite_id : 1, resultat : 1.9, metadonnee_id : meta2.data![0].id}); - await dbAdmin.from('indicateur_valeur').insert({ - indicateur_id : 1, date_valeur : '2020-01-01', collectivite_id : 2, resultat : 1.5, metadonnee_id : meta.data![0].id}); + // Valeurs + await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id: 1, + date_valeur: '2020-01-01', + collectivite_id: 1, + resultat: 1.2, + }); + await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id: 8, + date_valeur: '2020-01-01', + collectivite_id: 1, + resultat: 1.2, + }); + await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id: 1, + date_valeur: '2020-01-01', + collectivite_id: 1, + resultat: 1.5, + metadonnee_id: meta.data![0].id, + }); + await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id: 1, + date_valeur: '2020-01-01', + collectivite_id: 1, + resultat: 1.9, + metadonnee_id: meta2.data![0].id, + }); + await dbAdmin.from('indicateur_valeur').insert({ + indicateur_id: 1, + date_valeur: '2020-01-01', + collectivite_id: 2, + resultat: 1.5, + metadonnee_id: meta.data![0].id, + }); - return async () => { - await signOut(); - }; + return async () => { + await signOut(); + }; }); test('Test selectIndicateurSources', async () => { - const data = await selectIndicateurSources(supabase, 1, 1); - expect(data).not.toBeNull(); - expect(data).toHaveLength(1); + const data = await selectIndicateurSources(supabase, 1, 1); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); }); test('Test selectIndicateurCategoriesUtilisateur', async () => { - const data = await selectIndicateurCategoriesUtilisateur(supabase, 1, 1); - expect(data).not.toBeNull(); - expect(data).toHaveLength(1); + const data = await selectIndicateurCategoriesUtilisateur(supabase, 1, 1); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); }); test('Test selectIndicateurPilote', async () => { - const data = await selectIndicateurPilotes(supabase, 1, 1); - expect(data).not.toBeNull(); - expect(data).toHaveLength(1); - expect(data[0].nom).eq('Lou Piote'); + const data = await selectIndicateurPilotes(supabase, 1, 1); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); + expect(data[0].nom).eq('Lou Piote'); }); test('Test selectIndicateurServices', async () => { - const data = await selectIndicateurServices(supabase, 1, 1); - expect(data).not.toBeNull(); - expect(data).toHaveLength(1); + const data = await selectIndicateurServicesId(supabase, 1, 1); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); }); test('Test selectIndicateurThematiques', async () => { - const data = await selectIndicateurThematiques(supabase, 123); - expect(data).not.toBeNull(); - expect(data).toHaveLength(1); + const data = await selectIndicateurThematiquesId(supabase, 123); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); }); test('Test selectIndicateurFiches', async () => { diff --git a/packages/api/src/indicateurs/actions/indicateur.fetch.ts b/packages/api/src/indicateurs/actions/indicateur.fetch.ts index e307a3eee8..7d023b9b4d 100644 --- a/packages/api/src/indicateurs/actions/indicateur.fetch.ts +++ b/packages/api/src/indicateurs/actions/indicateur.fetch.ts @@ -12,51 +12,52 @@ import { import {Personne} from "../../shared/domain/personne.schema"; import {Groupement} from "../../collectivites/shared/domain/groupement.schema"; import { - selectGroupementParCollectivite, - selectGroupements -} from "../../collectivites/shared/actions/groupement.fetch"; -import {z} from "zod"; -import {Source} from "../domain"; + selectGroupementParCollectivite, + selectGroupements, +} from '../../collectivites/shared/actions/groupement.fetch'; +import {Source, Valeur} from '../domain'; +import {ObjectToSnake} from 'ts-case-convert/lib/caseConvert'; +import {Tag, Thematique} from '../../shared/domain'; // cas spécial pour cet indicateur TODO: utiliser un champ distinct dans les markdowns plutôt que cet ID "en dur" const ID_COMPACITE_FORMES_URBAINES = 'cae_9'; const COLONNES_VALEURS = [ - 'id', - 'resultat', - 'objectif', - 'resultat_commentaire', - 'objectif_commentaire', - 'date_valeur', - 'collectivite_id', - 'indicateur_id', - 'source:indicateur_source_metadonnee(*)' -] as const + 'id', + 'resultat', + 'objectif', + 'resultat_commentaire', + 'objectif_commentaire', + 'date_valeur', + 'collectivite_id', + 'indicateur_id', + 'source:indicateur_source_metadonnee(*)', +] as const; const COLONNES_DEFINITION_COURTE = [ - 'id', - 'titre', - 'titre_long', - 'unite', - 'participation_score', - 'sans_valeur:sans_valeur_utilisateur', - 'identifiant:identifiant_referentiel' -] as const + 'id', + 'titre', + 'titre_long', + 'unite', + 'participation_score', + 'sans_valeur:sans_valeur_utilisateur', + 'identifiant:identifiant_referentiel', +] as const; const COLONNES_DEFINITION = [ - ...COLONNES_DEFINITION_COURTE, - 'collectivite_id', - 'description', - 'borne_min', - 'borne_max', - 'plus:indicateur_collectivite(commentaire, confidentiel)', - 'actions:indicateur_action(...action_relation(*))', - 'thematiques:indicateur_thematique(...thematique_id(*))', - 'categories:indicateur_categorie_tag(...categorie_tag(id,nom,collectivite_id,groupement_id, groupement(groupement_collectivite(*))))', - 'valeurs:indicateur_valeur('+`${COLONNES_VALEURS.join(',')}`+')', - 'enfants:indicateur_enfants(id)', - 'parents:indicateur_parents(id)' -] as const + ...COLONNES_DEFINITION_COURTE, + 'collectivite_id', + 'description', + 'borne_min', + 'borne_max', + 'plus:indicateur_collectivite(commentaire, confidentiel)', + 'actions:indicateur_action(...action_relation(*))', + 'thematiques:indicateur_thematique(...thematique_id(*))', + 'categories:indicateur_categorie_tag(...categorie_tag(id,nom,collectivite_id,groupement_id, groupement(groupement_collectivite(*))))', + 'valeurs:indicateur_valeur(' + `${COLONNES_VALEURS.join(',')}` + ')', + 'enfants:indicateur_enfants(id)', + 'parents:indicateur_parents(id)', +] as const; /** * Récupère les sources disponibles pour un indicateur et une collectivité @@ -65,29 +66,51 @@ const COLONNES_DEFINITION = [ * @param collectiviteId identifiant de la collectivité * @return liste des sources */ -export async function selectIndicateurSources ( - dbClient : DBClient, - indicateurId : number, - collectiviteId : number -): Promise{ - const {data, error} = await dbClient - .from('indicateur_valeur') - .select('...indicateur_source_metadonnee(...indicateur_source(*))') - .eq('indicateur_id', indicateurId) - .eq('collectivite_id', collectiviteId) - .returns(); - - return data?.filter((s : Source) => s.id !== null) - .reduce((uniques, s) => { - // Enlever les doublons en utilisant id comme clé - if (!uniques.some(unique => unique.id === s.id)) { - uniques.push(s); - } - return uniques; - }, [] as Source[]) || []; +export async function selectIndicateurSources( + dbClient: DBClient, + indicateurId: number, + collectiviteId: number +) { + const {data} = await dbClient + .from('indicateur_valeur') + .select( + 'objectif,resultat,...indicateur_source_metadonnee(...indicateur_source(*))' + ) + .eq('indicateur_id', indicateurId) + .eq('collectivite_id', collectiviteId) + .returns>>(); + + // fait le décompte des valeurs objectif et résultat pour chaque source + const sourcesById: Record< + string, + {objectifs: number; resultats: number; source: Source} + > = {}; + + data?.forEach(source => { + if (!source.id) return; + sourcesById[source.id] = sourcesById[source.id] || { + objectifs: 0, + resultats: 0, + source, + }; + if (typeof source.objectif === 'number') sourcesById[source.id].objectifs++; + if (typeof source.resultat === 'number') sourcesById[source.id].resultats++; + }); + + return Object.values(sourcesById) + .map(({objectifs, resultats, source}) => ({ + ...source, + // TODO: gérer les sources contenant des objectifs ET des résultats ? + type: + objectifs > 0 + ? ('objectif' as const) + : resultats > 0 + ? ('resultat' as const) + : null, + })) + .sort((a, b) => (a.ordreAffichage || 0) - (b.ordreAffichage || 0)); } - /** * Récupère les catégories tags d'une collectivité et d'un indicateur * @param dbClient client supabase @@ -96,19 +119,18 @@ export async function selectIndicateurSources ( * @return liste des identifiants des tags */ export async function selectIndicateurCategoriesUtilisateur( - dbClient : DBClient, - indicateurId : number, - collectiviteId : number -): Promise{ - const {data, error} = await dbClient - .from('indicateur_categorie_tag') - .select('...categorie_tag!inner(id, collectivite_id)') - .eq('indicateur_id', indicateurId) - .eq('categorie_tag.collectivite_id', collectiviteId); - return data?.map((cat : any) => cat.id) as number[] || []; + dbClient: DBClient, + indicateurId: number, + collectiviteId: number +): Promise { + const {data, error} = await dbClient + .from('indicateur_categorie_tag') + .select('...categorie_tag!inner(id, collectivite_id)') + .eq('indicateur_id', indicateurId) + .eq('categorie_tag.collectivite_id', collectiviteId); + return (data?.map((cat: any) => cat.id) as number[]) || []; } - /** * Récupère les pilotes d'un indicateur mis par une collectivité * @param dbClient client supabase @@ -117,29 +139,31 @@ export async function selectIndicateurCategoriesUtilisateur( * @return liste de pilotes */ export async function selectIndicateurPilotes( - dbClient : DBClient, - indicateurId : number, - collectiviteId : number -): Promise{ - const {data, error} = await dbClient - .from('indicateur_pilote') - .select(`id, collectivite_id, user_id, tag_id, tag:personne_tag(*), user:indicateur_pilote_user(*)`) - .eq('indicateur_id', indicateurId) - .eq('collectivite_id', collectiviteId) - .returns(); - - if(!data){ - return [] - } - return data.map(p => { - return { - collectiviteId : p.collectivite_id, - userId : p.user_id, - tagId : p.tag_id, - nom : p.tag_id? p.tag.nom : (p.user.prenom +' ' +p.user.nom), - idTablePassage: p.id - }; - }); + dbClient: DBClient, + indicateurId: number, + collectiviteId: number +): Promise { + const {data, error} = await dbClient + .from('indicateur_pilote') + .select( + `id, collectivite_id, user_id, tag_id, tag:personne_tag(*), user:indicateur_pilote_user(*)` + ) + .eq('indicateur_id', indicateurId) + .eq('collectivite_id', collectiviteId) + .returns(); + + if (!data) { + return []; + } + return data.map(p => { + return { + collectiviteId: p.collectivite_id, + userId: p.user_id, + tagId: p.tag_id, + nom: p.tag_id ? p.tag.nom : p.user.prenom + ' ' + p.user.nom, + idTablePassage: p.id, + }; + }); } /** @@ -149,18 +173,40 @@ export async function selectIndicateurPilotes( * @param collectiviteId identifiant de la collectivité * @return liste d'id de tags services */ +export async function selectIndicateurServicesId( + dbClient: DBClient, + indicateurId: number, + collectiviteId: number +): Promise { + const {data} = await dbClient + .from('indicateur_service_tag') + .select(`service_tag_id`) + .eq('indicateur_id', indicateurId) + .eq('collectivite_id', collectiviteId); + + return data?.map(d => d.service_tag_id) || []; +} + +/** + * Récupère les identifiants des tags services d'un indicateur et d'une collectivité + * @param dbClient client supabase + * @param indicateurId identifiant de l'indicateur + * @param collectiviteId identifiant de la collectivité + * @return liste de tags services + */ export async function selectIndicateurServices( - dbClient : DBClient, - indicateurId : number, - collectiviteId : number -) : Promise { - const {data, error} = await dbClient - .from('indicateur_service_tag') - .select(`service_tag_id`) - .eq('indicateur_id', indicateurId) - .eq('collectivite_id', collectiviteId); - - return data?.map(d => d.service_tag_id) || []; + dbClient: DBClient, + indicateurId: number, + collectiviteId: number +): Promise { + const {data} = await dbClient + .from('indicateur_service_tag') + .select('...service_tag!inner(*)') + .eq('indicateur_id', indicateurId) + .eq('collectivite_id', collectiviteId) + .returns[]>(); + + return data ? (objectToCamel(data) as Tag[]) : []; } /** @@ -169,13 +215,35 @@ export async function selectIndicateurServices( * @param indicateurId identifiant de l'indicateur * @return liste des identifiants des thématiques */ -export async function selectIndicateurThematiques(dbClient : DBClient, indicateurId : number) : Promise { - const {data, error} = await dbClient - .from('indicateur_thematique') - .select(`thematique_id`) - .eq('indicateur_id', indicateurId); +export async function selectIndicateurThematiquesId( + dbClient: DBClient, + indicateurId: number +): Promise { + const {data, error} = await dbClient + .from('indicateur_thematique') + .select(`thematique_id`) + .eq('indicateur_id', indicateurId); + + return data?.map(d => d.thematique_id) || []; +} - return data?.map(d => d.thematique_id) || []; +/** + * Récupère les identifiants des thématiques d'un indicateur + * @param dbClient client supabase + * @param indicateurId identifiant de l'indicateur + * @return liste des thématiques + */ +export async function selectIndicateurThematiques( + dbClient: DBClient, + indicateurId: number +): Promise { + const {data} = await dbClient + .from('indicateur_thematique') + .select(`...thematique!inner(id,nom)`) + .eq('indicateur_id', indicateurId) + .returns(); + + return data || []; } /** @@ -186,18 +254,18 @@ export async function selectIndicateurThematiques(dbClient : DBClient, indicateu * @return liste de fiches résumées */ export async function selectIndicateurFiches( - dbClient : DBClient, - indicateurId : number, - collectiviteId : number -) : Promise { - const {data, error} = await dbClient - .from('fiche_action_indicateur') - .select(`...fiche_resume!inner(*)`) - .eq('indicateur_id', indicateurId) - .eq('fiche_resume.collectivite_id', collectiviteId) - .returns(); - - return data ? objectToCamel(data) as FicheResume[] : [] ; + dbClient: DBClient, + indicateurId: number, + collectiviteId: number +): Promise { + const {data, error} = await dbClient + .from('fiche_action_indicateur') + .select(`...fiche_resume!inner(*)`) + .eq('indicateur_id', indicateurId) + .eq('fiche_resume.collectivite_id', collectiviteId) + .returns(); + + return data ? (objectToCamel(data) as FicheResume[]) : []; } /** @@ -206,13 +274,16 @@ export async function selectIndicateurFiches( * @param indicateurId identifiant de l'indicateur * @return liste d'actions */ -export async function selectIndicateurActions(dbClient : DBClient, indicateurId : number) : Promise { - const {data, error} = await dbClient - .from('indicateur_action') - .select(`...action_relation(*)`) - .eq('indicateur_id', indicateurId) - .returns(); - return data ? data : []; +export async function selectIndicateurActions( + dbClient: DBClient, + indicateurId: number +): Promise { + const {data, error} = await dbClient + .from('indicateur_action') + .select(`...action_relation(*)`) + .eq('indicateur_id', indicateurId) + .returns(); + return data ? data : []; } /** @@ -224,47 +295,59 @@ export async function selectIndicateurActions(dbClient : DBClient, indicateurId * @return liste des identifiants et titres des indicateurs */ export async function selectIndicateurListItems( - dbClient : DBClient, - collectiviteId : number, - personnalise : boolean, - predefini : boolean -) : Promise { - const query = dbClient - .from('indicateur_definition') - .select('id, titre, groupement_id, plus:indicateur_collectivite(collectivite_id)'); - if (personnalise && predefini){ - // Tous les indicateurs de la collectivité - query.or(`collectivite_id.is.null, collectivite_id.eq.${collectiviteId}`); - }else if (predefini){ - // Tous les indicateurs predefinis - query.is('collectivite_id', null) - }else{ - // Tous les indicateurs personnalisés - query.eq('collectivite_id', collectiviteId) - } - const {data, error} = await query; - // Filtre les indicateurs privés - let dataFilter = data? data : []; - if(predefini){ - const groupement : Groupement[] = await selectGroupementParCollectivite(dbClient, collectiviteId); - const groupementIds = groupement.map(gp => gp.id); - dataFilter = dataFilter.filter((item : any)=> - item.groupement_id === null || groupementIds.includes(item.groupement_id)); + dbClient: DBClient, + collectiviteId: number, + personnalise: boolean, + predefini: boolean +): Promise { + const query = dbClient + .from('indicateur_definition') + .select( + 'id, identifiant: identifiant_referentiel, titre, collectivite_id, groupement_id, plus:indicateur_collectivite(collectivite_id)' + ); + if (personnalise && predefini) { + // Tous les indicateurs de la collectivité + query.or(`collectivite_id.is.null, collectivite_id.eq.${collectiviteId}`); + } else if (predefini) { + // Tous les indicateurs predefinis + query.is('collectivite_id', null); + } else { + // Tous les indicateurs personnalisés + query.eq('collectivite_id', collectiviteId); + } + const {data, error} = await query; + // Filtre les indicateurs privés + let dataFilter = data ? data : []; + if (predefini) { + const groupement: Groupement[] = await selectGroupementParCollectivite( + dbClient, + collectiviteId + ); + const groupementIds = groupement.map(gp => gp.id); + dataFilter = dataFilter.filter( + (item: any) => + item.groupement_id === null || + groupementIds.includes(item.groupement_id) + ); + } + const toReturn = dataFilter.map((item: any) => { + const plusInfoFilter = + item.plus?.filter((i: any) => i.collectivite_id === collectiviteId) || []; + const plusInfo = + plusInfoFilter && plusInfoFilter[0] + ? plusInfoFilter[0] + : {collectivite_id: collectiviteId}; + if (!item.prive || plusInfo.acces_prive) { + return { + id: item.id, + titre: item.titre, + identifiant: item.identifiant, + estPerso: item.collectivite_id !== null, + }; } - const toReturn = dataFilter.map((item : any)=>{ - const plusInfoFilter = - item.plus?.filter((i : any) => i.collectivite_id === collectiviteId) || []; - const plusInfo = plusInfoFilter && plusInfoFilter[0] ? plusInfoFilter[0] : - {collectivite_id : collectiviteId}; - if (!item.prive || plusInfo.acces_prive){ - return { - id : item.id, - titre : item.titre - } - } - }); + }); - return toReturn as IndicateurListItem[]; + return toReturn as IndicateurListItem[]; } /** @@ -276,65 +359,82 @@ export async function selectIndicateurListItems( * @return liste de valeurs */ export async function selectIndicateurValeurs( - dbClient: DBClient, - indicateurId : number, - collectiviteId : number, - source : string | null -) : Promise { - const {data, error} = await dbClient - .from('indicateur_valeur') - .select(`${COLONNES_VALEURS.join(',')}`) - .eq('indicateur_id', indicateurId) - .eq('collectivite_id', collectiviteId); - let toReturn; - if(!source) { - // Récupère les valeurs renseignées par l'utilisateur (sans source) - toReturn = data?.filter((val: any) => val.source === null || val.source.length === 0) || []; - }else{ - // Récupère les valeurs de la source donnée (garde que la dernière si conflit sur la date) - const valeursSource = data?.filter((val: any) => - val.source && - val.source.source_id === source - ) || []; - const groupeParAnneeResultat : Map = new Map(); - const groupeParAnneeObjectif : Map = new Map(); - const groupeParAnneeEstimation : Map = new Map(); - valeursSource.forEach((val : any) => { - // Tri les valeurs par an - // Tri séparément les valeurs ayant des résultats, des objectifs, et des estimations - const annee = new Date(val.date_valeur).getFullYear(); - if(val.resultat || val.resultat_commentaire){ - if (!groupeParAnneeResultat.get(annee)) groupeParAnneeResultat.set(annee, []); - groupeParAnneeResultat.get(annee)!.push(val); - } - if(val.objectif || val.objectif_commentaire){ - if (!groupeParAnneeObjectif.get(annee)) groupeParAnneeObjectif.set(annee, []); - groupeParAnneeObjectif.get(annee)!.push(val); - } - if(val.estimation){ - if (!groupeParAnneeEstimation.get(annee)) groupeParAnneeEstimation.set(annee, []); - groupeParAnneeEstimation.get(annee)!.push(val); - } - - }); - const maps = [groupeParAnneeResultat, groupeParAnneeObjectif, groupeParAnneeEstimation]; - toReturn = []; - const ids = []; - for (let m = 0; m - new Date(a.source.date_version) > new Date(b.source.date_version) ? a : b - ); - if(!ids[plusRecente.id]){ - toReturn.push(plusRecente); - ids.push(plusRecente.id); - } - } + dbClient: DBClient, + indicateurId: number, + collectiviteId: number, + source: string | null +): Promise { + const {data} = await dbClient + .from('indicateur_valeur') + .select(`${COLONNES_VALEURS.join(',')}`) + .eq('indicateur_id', indicateurId) + .eq('collectivite_id', collectiviteId) + .order('date_valeur', {ascending: false}); + let toReturn; + if (!source) { + // Récupère les valeurs renseignées par l'utilisateur (sans source) + toReturn = + data?.filter( + (val: any) => val.source === null || val.source.length === 0 + ) || []; + } else { + // Récupère les valeurs de la source donnée (garde que la dernière si conflit sur la date) + const valeursSource = + data?.filter( + (val: any) => val.source && val.source.source_id === source + ) || []; + const groupeParAnneeResultat: Map = new Map(); + const groupeParAnneeObjectif: Map = new Map(); + const groupeParAnneeEstimation: Map = new Map< + number, + any[] + >(); + valeursSource.forEach((val: any) => { + // Tri les valeurs par an + // Tri séparément les valeurs ayant des résultats, des objectifs, et des estimations + const annee = new Date(val.date_valeur).getFullYear(); + if (val.resultat || val.resultat_commentaire) { + if (!groupeParAnneeResultat.get(annee)) + groupeParAnneeResultat.set(annee, []); + groupeParAnneeResultat.get(annee)!.push(val); + } + if (val.objectif || val.objectif_commentaire) { + if (!groupeParAnneeObjectif.get(annee)) + groupeParAnneeObjectif.set(annee, []); + groupeParAnneeObjectif.get(annee)!.push(val); + } + if (val.estimation) { + if (!groupeParAnneeEstimation.get(annee)) + groupeParAnneeEstimation.set(annee, []); + groupeParAnneeEstimation.get(annee)!.push(val); + } + }); + const maps = [ + groupeParAnneeResultat, + groupeParAnneeObjectif, + groupeParAnneeEstimation, + ]; + toReturn = []; + const ids = []; + for (let m = 0; m < maps.length; m++) { + const map = maps[m]; + for (const annee of map.keys()) { + const plusRecente = map + .get(annee)! + .reduce((a, b) => + new Date(a.source.date_version) > new Date(b.source.date_version) + ? a + : b + ); + if (!ids[plusRecente.id]) { + toReturn.push(plusRecente); + ids.push(plusRecente.id); } + } } - toReturn = data ? dateEnAnnee(toReturn, true) : []; - return objectToCamel(toReturn) as Valeur[] + } + toReturn = data ? dateEnAnnee(toReturn, true) : []; + return objectToCamel(toReturn) as Valeur[]; } /** @@ -343,14 +443,17 @@ export async function selectIndicateurValeurs( * @param valeurId identifiant de la valeur * @return valeur */ -export async function selectIndicateurValeur(dbClient: DBClient, valeurId : number) : Promise { - const {data, error} = await dbClient - .from('indicateur_valeur') - .select(`${COLONNES_VALEURS.join(',')}`) - .eq('id', valeurId); - - let toReturn = data ? dateEnAnnee(data, false) : null; - return toReturn ? objectToCamel(toReturn)[0] as Valeur : null; +export async function selectIndicateurValeur( + dbClient: DBClient, + valeurId: number +): Promise { + const {data, error} = await dbClient + .from('indicateur_valeur') + .select(`${COLONNES_VALEURS.join(',')}`) + .eq('id', valeurId); + + let toReturn = data ? dateEnAnnee(data, false) : null; + return toReturn ? (objectToCamel(toReturn)[0] as Valeur) : null; } /** @@ -361,18 +464,68 @@ export async function selectIndicateurValeur(dbClient: DBClient, valeurId : numb * @return indicateur */ export async function selectIndicateurDefinition( - dbClient: DBClient, - indicateurId : number, - collectiviteId : number -) : Promise { - const {data, error} = await dbClient - .from('indicateur_definition') - .select(`${COLONNES_DEFINITION.join(',')}`) - .eq('id', indicateurId) - .eq('plus.collectivite_id', collectiviteId) - .eq('valeurs.collectivite_id', collectiviteId); - let toReturn = data ? await transformeDefinition(dbClient, data, collectiviteId, false) : null; - return toReturn ? objectToCamel(toReturn)[0] as IndicateurDefinition : null; + dbClient: DBClient, + indicateurId: number, + collectiviteId: number +): Promise { + const data = await selectIndicateurDefinitions( + dbClient, + [indicateurId], + collectiviteId + ); + return data?.[0] || null; +} + +/** + * Récupère les définitions des indicateurs pour une collectivité + * @param dbClient client supabase + * @param indicateurId identifiants des indicateurs voulus + * @param collectiviteId identifiant de la collectivité + * @return indicateur + */ +export async function selectIndicateurDefinitions( + dbClient: DBClient, + indicateurIds: number[], + collectiviteId: number +): Promise { + const {data} = await dbClient + .from('indicateur_definition') + .select(COLONNES_DEFINITION.join(',')) + .in('id', indicateurIds) + .eq('plus.collectivite_id', collectiviteId) + .eq('valeurs.collectivite_id', collectiviteId); + const toReturn = data + ? await transformeDefinition(dbClient, data, collectiviteId, false) + : null; + return toReturn ? (objectToCamel(toReturn) as IndicateurDefinition[]) : null; +} + +/** + * Récupère la définition d'un indicateur à partir de son identifiant référentiel + * @param dbClient client supabase + * @param identifiant identifiant de l'indicateur voulu + * @param collectiviteId identifiant de la collectivité + * @return indicateur + */ +export async function selectIndicateurReferentielDefinition( + dbClient: DBClient, + identifiant: string | undefined, + collectiviteId: number +): Promise { + if (identifiant === undefined) return null; + + const {data} = await dbClient + .from('indicateur_definition') + .select(COLONNES_DEFINITION.join(',')) + .eq('identifiant_referentiel', identifiant) + .eq('plus.collectivite_id', collectiviteId) + .eq('valeurs.collectivite_id', collectiviteId); + const toReturn = data + ? await transformeDefinition(dbClient, data, collectiviteId, false) + : null; + return toReturn + ? (objectToCamel(toReturn?.[0]) as IndicateurDefinition) + : null; } /** @@ -383,26 +536,32 @@ export async function selectIndicateurDefinition( * @return indicateur complet */ export async function selectIndicateurComplet( - dbClient: DBClient, - indicateurId : number, - collectiviteId : number -) : Promise { - const {data, error} = await dbClient - .from('indicateur_definition') - .select(`${COLONNES_DEFINITION.join(',')}, ` + - 'services:indicateur_service_tag(service_tag_id, collectivite_id),' + - 'pilotes:indicateur_pilote(' + - 'tag_id, user_id, collectivite_id, tag:personne_tag(*), user:indicateur_pilote_user(*)),' + - 'fiches:fiche_action_indicateur(...fiche_resume(*))') - .eq('id', indicateurId) - .eq('plus.collectivite_id', collectiviteId) - .eq('valeurs.collectivite_id', collectiviteId) - .eq('services.collectivite_id', collectiviteId) - .eq('pilotes.collectivite_id', collectiviteId) - .eq('fiches.fiche_resume.collectivite_id', collectiviteId); - - let toReturn = data ? await transformeDefinition(dbClient, data, collectiviteId,true) : null; - return toReturn? objectToCamel(toReturn)[0] as IndicateurDefinitionComplet : null; + dbClient: DBClient, + indicateurId: number, + collectiviteId: number +): Promise { + const {data, error} = await dbClient + .from('indicateur_definition') + .select( + `${COLONNES_DEFINITION.join(',')}, ` + + 'services:indicateur_service_tag(service_tag_id, collectivite_id),' + + 'pilotes:indicateur_pilote(' + + 'tag_id, user_id, collectivite_id, tag:personne_tag(*), user:indicateur_pilote_user(*)),' + + 'fiches:fiche_action_indicateur(...fiche_resume(*))' + ) + .eq('id', indicateurId) + .eq('plus.collectivite_id', collectiviteId) + .eq('valeurs.collectivite_id', collectiviteId) + .eq('services.collectivite_id', collectiviteId) + .eq('pilotes.collectivite_id', collectiviteId) + .eq('fiches.fiche_resume.collectivite_id', collectiviteId); + + let toReturn = data + ? await transformeDefinition(dbClient, data, collectiviteId, true) + : null; + return toReturn + ? (objectToCamel(toReturn)[0] as IndicateurDefinitionComplet) + : null; } /** @@ -413,86 +572,103 @@ export async function selectIndicateurComplet( * @return l'indicateur et ses valeurs pour un affichage graphique */ export async function selectIndicateurChartInfo( - dbClient : DBClient, - indicateurId : number, - collectiviteId : number -) : Promise { - const {data, error} = await dbClient - .from('indicateur_definition') - .select(`${COLONNES_DEFINITION_COURTE.join(',')}, groupement_id,` + - 'plus:indicateur_collectivite(confidentiel, collectivite_id), ' + - 'enfants:indicateur_enfants(' + - 'id, ' + - 'valeurs:indicateur_valeur(date_valeur, resultat, objectif, collectivite_id, metadonnee_id)' + - '), ' + - 'valeurs:indicateur_valeur(date_valeur, resultat, objectif, collectivite_id, metadonnee_id)') - .eq('id', indicateurId) - .eq('plus.collectivite_id', collectiviteId) - .eq('indicateur_valeur.collectivite_id', collectiviteId) - .is('valeurs.metadonnee_id', null) - .eq('indicateur_enfants.indicateur_valeur.collectivite_id', collectiviteId) - .is('indicateur_enfants.indicateur_valeur.metadonnee_id', null) - .returns(); - - const groupement : Groupement[] = await selectGroupementParCollectivite(dbClient, collectiviteId); - const groupementIds = groupement.map(gp => gp.id); - let toReturn = data?.filter((item : any)=> - item.groupement_id === null || groupementIds.includes(item.groupement_id)) - .map(item => { - // Récupère l'information de la confidentialité - const plusInfo = item.plus && item.plus[0] ? item.plus[0] : - { confidentiel: false, collectiviteId : collectiviteId }; - - // Transforme les valeurs - let valeursTransforme = dateEnAnnee(item.valeurs, true); - - // Vérifie le remplissage des indicateurs enfants - let enfantsTransforme = item.enfants.map((enf : any)=> { - return { - ...enf, - valeurs : enf.valeurs, - rempli : enf.valeurs.length > 0 - } - }); - - let count = null; - let total = null; - // Pour un indicateur composé n'ayant pas ses propres valeurs - if (item.sans_valeur && enfantsTransforme.length>0){ - // On compte le nombre d'enfants total et remplis - count = enfantsTransforme.filter((enf : any) => enf.rempli).length; - total = enfantsTransforme.length; - - // Si tous les enfants sont remplis ou si au moins un est rempli pour l'indicateur parent cae_9 - if(count === total || (item.identifiant === ID_COMPACITE_FORMES_URBAINES && count >=1)){ - // On affiche les valeurs du premier enfant rempli - const premierRempli = enfantsTransforme.find((enf : any) => enf.rempli); - valeursTransforme = dateEnAnnee(premierRempli.valeurs, true); - } - } - // On enlève l'attribut valeurs des enfants pour correspondre au schéma - enfantsTransforme = enfantsTransforme.map((enf : any) => { - return { - ...enf, - valeurs : undefined - } - }); - - return { - ...item, - valeurs : valeursTransforme, - rempli : item.valeurs.length > 0, // Ajoute l'attribut 'rempli' - enfants : enfantsTransforme, - plus : undefined, - confidentiel : plusInfo.confidentiel, // Remonte l'info 'confidentiel' - count : count, // Ajoute l'attribut 'count' - total : total, // Ajoute l'attribut 'total' - identifiant : undefined, // Enlève 'identifiant' pour correspondre au schéma - groupement_id : undefined // Enlève l'information du groupement - } - }) || null; - - return toReturn ? objectToCamel(toReturn)[0] as IndicateurChartInfo : null; + dbClient: DBClient, + indicateurId: number, + collectiviteId: number +): Promise { + const {data, error} = await dbClient + .from('indicateur_definition') + .select( + `${COLONNES_DEFINITION_COURTE.join(',')}, groupement_id,` + + 'plus:indicateur_collectivite(confidentiel, collectivite_id), ' + + 'enfants:indicateur_enfants(' + + 'id, ' + + 'valeurs:indicateur_valeur(date_valeur, resultat, objectif, collectivite_id, metadonnee_id)' + + '), ' + + 'valeurs:indicateur_valeur(date_valeur, resultat, objectif, collectivite_id, metadonnee_id)' + ) + .eq('id', indicateurId) + .eq('plus.collectivite_id', collectiviteId) + .eq('indicateur_valeur.collectivite_id', collectiviteId) + .is('valeurs.metadonnee_id', null) + .eq('indicateur_enfants.indicateur_valeur.collectivite_id', collectiviteId) + .is('indicateur_enfants.indicateur_valeur.metadonnee_id', null) + .returns(); + + const groupement: Groupement[] = await selectGroupementParCollectivite( + dbClient, + collectiviteId + ); + const groupementIds = groupement.map(gp => gp.id); + let toReturn = + data + ?.filter( + (item: any) => + item.groupement_id === null || + groupementIds.includes(item.groupement_id) + ) + .map(item => { + // Récupère l'information de la confidentialité + const plusInfo = + item.plus && item.plus[0] + ? item.plus[0] + : {confidentiel: false, collectiviteId: collectiviteId}; + + // Transforme les valeurs + let valeursTransforme = dateEnAnnee(item.valeurs, true); + + // Vérifie le remplissage des indicateurs enfants + let enfantsTransforme = item.enfants.map((enf: any) => { + return { + ...enf, + valeurs: enf.valeurs, + rempli: enf.valeurs.length > 0, + }; + }); + + let count = null; + let total = null; + // Pour un indicateur composé n'ayant pas ses propres valeurs + if (item.sans_valeur && enfantsTransforme.length > 0) { + // On compte le nombre d'enfants total et remplis + count = enfantsTransforme.filter((enf: any) => enf.rempli).length; + total = enfantsTransforme.length; + + // Si tous les enfants sont remplis ou si au moins un est rempli pour l'indicateur parent cae_9 + if ( + count === total || + (item.identifiant === ID_COMPACITE_FORMES_URBAINES && count >= 1) + ) { + // On affiche les valeurs du premier enfant rempli + const premierRempli = enfantsTransforme.find( + (enf: any) => enf.rempli + ); + valeursTransforme = dateEnAnnee(premierRempli.valeurs, true); + } + } + // On enlève l'attribut valeurs des enfants pour correspondre au schéma + enfantsTransforme = enfantsTransforme.map((enf: any) => { + return { + ...enf, + valeurs: undefined, + }; + }); + + return { + ...item, + valeurs: valeursTransforme, + rempli: item.valeurs.length > 0, // Ajoute l'attribut 'rempli' + enfants: enfantsTransforme, + plus: undefined, + confidentiel: plusInfo.confidentiel, // Remonte l'info 'confidentiel' + count: count, // Ajoute l'attribut 'count' + total: total, // Ajoute l'attribut 'total' + identifiant: undefined, // Enlève 'identifiant' pour correspondre au schéma + groupement_id: undefined, // Enlève l'information du groupement + }; + }) || null; + + return toReturn ? (objectToCamel(toReturn)[0] as IndicateurChartInfo) : null; } /** @@ -501,24 +677,26 @@ export async function selectIndicateurChartInfo( * @param enleveDoublon si vrai, enlève les valeurs avec la même année * @return liste de valeurs avec annee (nombre) */ -function dateEnAnnee(data : any[], enleveDoublon : boolean){ - // En base de donnée l'année d'une valeur est sous forme de date 01/01/XXXX pour laisser la possibilité future - // d'avoir des évolutions de valeurs par semestre, mois, etc. - // Actuellement l'application n'affiche qu'une évolution par année, on transforme donc la date en année - // Dans le cas où il y aurait éventuellement plusieurs dates sur la même année en BDD, - // on ne garde que les valeurs sous la forme 01/01/XXXX - const toTransforme = enleveDoublon? - (data.filter((val : any) => - new Date(val.date_valeur).getMonth() === 0 && - new Date(val.date_valeur).getDate() === 1)) - :data; - return toTransforme.map((val : any) => { - return { - ...val, - annee: new Date(val.date_valeur).getFullYear(), - date_valeur : undefined - }; - }); +function dateEnAnnee(data: any[], enleveDoublon: boolean) { + // En base de donnée l'année d'une valeur est sous forme de date 01/01/XXXX pour laisser la possibilité future + // d'avoir des évolutions de valeurs par semestre, mois, etc. + // Actuellement l'application n'affiche qu'une évolution par année, on transforme donc la date en année + // Dans le cas où il y aurait éventuellement plusieurs dates sur la même année en BDD, + // on ne garde que les valeurs sous la forme 01/01/XXXX + const toTransforme = enleveDoublon + ? data.filter( + (val: any) => + new Date(val.date_valeur).getMonth() === 0 && + new Date(val.date_valeur).getDate() === 1 + ) + : data; + return toTransforme.map((val: any) => { + return { + ...val, + annee: new Date(val.date_valeur).getFullYear(), + date_valeur: undefined, + }; + }); } /** @@ -530,76 +708,102 @@ function dateEnAnnee(data : any[], enleveDoublon : boolean){ * @return liste des valeurs résultats et objectifs à comparer */ export async function getValeursComparaison( - dbClient : DBClient, - indicateurId : number, - collectiviteId : number, - source : string -): Promise<{resultats: ValeurComparaison, objectifs: ValeurComparaison} | null>{ - const valeursUtilisateur = - await selectIndicateurValeurs(dbClient, indicateurId, collectiviteId, null); - const valeursSource = await selectIndicateurValeurs(dbClient, indicateurId, collectiviteId, source); - - if (!valeursSource.length) { - // rien à appliquer - return null; - } - - // Pour compter les lignes en conflit - let nbConflitsResultat = 0; - let nbConflitsObjectif = 0; - // et celles à insérer - let nbAjoutsResultat = 0; - let nbAjoutsObjectif = 0; - - const lignesResultat : ValeurComparaisonLigne[] = []; - const lignesObjectif : ValeurComparaisonLigne[] = []; - - // Parcours chaque ligne à appliquer - valeursSource.map(aAppliquer => { - // cherche si une valeur a déjà été saisie pour la même année - const aEcraser = valeursUtilisateur?.find(d => d.annee === aAppliquer.annee); - const ligneCommune : ValeurComparaisonLigne = { - conflit: false, - annee : aAppliquer.annee, - idAEcraser : aEcraser?.id ?? null, - idAAppliquer : aAppliquer.id!, - valeurAEcraser: null, - valeurAAppliquer: 0, - source : source - } - // Ajout d'une ligne résultat - if (aAppliquer.resultat){ - const ligne : ValeurComparaisonLigne = { - ...ligneCommune, - valeurAEcraser: aEcraser?.resultat ?? null, - valeurAAppliquer: aAppliquer.resultat! - }; - // Ajoute l'information du conflit - ligne.conflit = ligne.valeurAEcraser? ligne.valeurAEcraser !== ligne.valeurAAppliquer : false; - if (ligne.conflit) nbConflitsResultat++; - if (ligne.valeurAEcraser === null) nbAjoutsResultat++; - lignesResultat.push(ligne); - } - // Ajout d'une ligne objectif - if (aAppliquer.objectif){ - const ligne = { - ... ligneCommune, - valeurAEcraser: aEcraser?.objectif ?? null, - valeurAAppliquer: aAppliquer.objectif! - }; - // Ajoute l'information du conflit - ligne.conflit = ligne.valeurAEcraser? ligne.valeurAEcraser !== ligne.valeurAAppliquer : false; - if (ligne.conflit) nbConflitsObjectif++; - if (ligne.valeurAEcraser === null) nbAjoutsObjectif++; - lignesObjectif.push(ligne); - } - }); - - // renvoi le nombre et le détail des conflits relevés - return { - resultats : {lignes : lignesResultat, conflits: nbConflitsResultat, ajouts: nbAjoutsResultat}, - objectifs : {lignes : lignesObjectif, conflits: nbConflitsObjectif, ajouts: nbAjoutsObjectif}, + dbClient: DBClient, + indicateurId: number, + collectiviteId: number, + source: string +): Promise<{ + resultats: ValeurComparaison; + objectifs: ValeurComparaison; +} | null> { + const valeursUtilisateur = await selectIndicateurValeurs( + dbClient, + indicateurId, + collectiviteId, + null + ); + const valeursSource = await selectIndicateurValeurs( + dbClient, + indicateurId, + collectiviteId, + source + ); + + if (!valeursSource.length) { + // rien à appliquer + return null; + } + + // Pour compter les lignes en conflit + let nbConflitsResultat = 0; + let nbConflitsObjectif = 0; + // et celles à insérer + let nbAjoutsResultat = 0; + let nbAjoutsObjectif = 0; + + const lignesResultat: ValeurComparaisonLigne[] = []; + const lignesObjectif: ValeurComparaisonLigne[] = []; + + // Parcours chaque ligne à appliquer + valeursSource.map(aAppliquer => { + // cherche si une valeur a déjà été saisie pour la même année + const aEcraser = valeursUtilisateur?.find( + d => d.annee === aAppliquer.annee + ); + const ligneCommune: ValeurComparaisonLigne = { + conflit: false, + annee: aAppliquer.annee, + idAEcraser: aEcraser?.id ?? null, + idAAppliquer: aAppliquer.id!, + valeurAEcraser: null, + valeurAAppliquer: 0, + source: source, }; + // Ajout d'une ligne résultat + if (aAppliquer.resultat) { + const ligne: ValeurComparaisonLigne = { + ...ligneCommune, + valeurAEcraser: aEcraser?.resultat ?? null, + valeurAAppliquer: aAppliquer.resultat!, + }; + // Ajoute l'information du conflit + ligne.conflit = ligne.valeurAEcraser + ? ligne.valeurAEcraser !== ligne.valeurAAppliquer + : false; + if (ligne.conflit) nbConflitsResultat++; + if (ligne.valeurAEcraser === null) nbAjoutsResultat++; + lignesResultat.push(ligne); + } + // Ajout d'une ligne objectif + if (aAppliquer.objectif) { + const ligne = { + ...ligneCommune, + valeurAEcraser: aEcraser?.objectif ?? null, + valeurAAppliquer: aAppliquer.objectif!, + }; + // Ajoute l'information du conflit + ligne.conflit = ligne.valeurAEcraser + ? ligne.valeurAEcraser !== ligne.valeurAAppliquer + : false; + if (ligne.conflit) nbConflitsObjectif++; + if (ligne.valeurAEcraser === null) nbAjoutsObjectif++; + lignesObjectif.push(ligne); + } + }); + + // renvoi le nombre et le détail des conflits relevés + return { + resultats: { + lignes: lignesResultat, + conflits: nbConflitsResultat, + ajouts: nbAjoutsResultat, + }, + objectifs: { + lignes: lignesObjectif, + conflits: nbConflitsObjectif, + ajouts: nbAjoutsObjectif, + }, + }; } /** @@ -610,84 +814,106 @@ export async function getValeursComparaison( * @param complet vrai si la liste d'indicateur contient tous les attributs annexes */ async function transformeDefinition( - dbClient : DBClient, - data : any[], - collectiviteId : number, - complet : boolean -){ - const groupement = await selectGroupements(dbClient); - return data.map(item => { - // Extraire les informations de 'plus' si elles existent - const plusInfo = item.plus && item.plus[0] ? item.plus[0] : - { commentaire: null, confidentiel: false, collectiviteId : collectiviteId }; - - let type; - let programmes : any[] = []; - let prioritaire = false; - let categoriesUtilisateur = undefined; - let valeurs = undefined; - let services = undefined; - let pilotes = undefined; - let fiches = undefined; - let fiches_non_classees = undefined; - - // Transforme les informations complémentaires aux indicateurs - if (complet){ - valeurs = item.valeurs?.filter((val: any) => val.source === null || val.source.length === 0)|| []; - valeurs = dateEnAnnee(valeurs, true); - services = item.services ? item.services : []; - pilotes = item.pilotes - .map((p : any) => { - return { - tagId : undefined, - userId : undefined, - nom : p.tag_id? p.tag.nom : (p.user.prenom +' ' +p.user.nom), - idTablePassage : p.id, - collectiviteId : p.collectivite_id - }; - }); - fiches = item.fiches; - fiches_non_classees = fiches.filter((fiche : any) => fiche.plans === null || fiche.plans.length === 0); - } - - // Découpe les catégories en type, programme et catégories utilisateur - item.categories.forEach((cat : any) => { - if (cat.collectivite_id !== null) { - if (complet && cat.collectivite_id === collectiviteId) { - categoriesUtilisateur = [] - categoriesUtilisateur.push({id: cat.id, nom: cat.nom, collectivite_id: cat.collectivite_id}); - } - }else if(cat.groupement_id !== null){ - const groupe = groupement.filter((g: any)=> g.id === cat.groupement_id); - if(groupe.length>0 && groupe[0].collectivites && groupe[0].collectivites.includes(collectiviteId)){ - programmes.push({id:cat.id, nom:cat.nom}); - } - } else if (cat.nom === 'resultat' || cat.nom === 'impact') { - type = cat; - } else if (cat.nom === 'prioritaire') { - prioritaire = true; - } else { - programmes.push({id:cat.id, nom:cat.nom}); - } - }); - + dbClient: DBClient, + data: any[], + collectiviteId: number, + complet: boolean +) { + const groupement = await selectGroupements(dbClient); + return data.map(item => { + // Extraire les informations de 'plus' si elles existent + const plusInfo = + item.plus && item.plus[0] + ? item.plus[0] + : { + commentaire: null, + confidentiel: false, + collectiviteId: collectiviteId, + }; + + let type; + let programmes: any[] = []; + let prioritaire = false; + let categoriesUtilisateur = undefined; + let valeurs = undefined; + let services = undefined; + let pilotes = undefined; + let fiches = undefined; + let fiches_non_classees = undefined; + + // Transforme les informations complémentaires aux indicateurs + if (complet) { + valeurs = + item.valeurs?.filter( + (val: any) => val.source === null || val.source.length === 0 + ) || []; + valeurs = dateEnAnnee(valeurs, true); + services = item.services ? item.services : []; + pilotes = item.pilotes.map((p: any) => { return { - ...item, - rempli: item.valeurs?.length > 0 || 0, // Ajouter le champ 'rempli' - commentaire: plusInfo.commentaire, // Remonte le champ 'commentaire' - confidentiel: plusInfo.confidentiel, // Remonte le champ 'confidentiel' - plus: undefined, // Supprimer le champ 'plus' - categories : undefined, // Supprimer le champ 'categories' - valeurs : valeurs, - categories_utilisateur: categoriesUtilisateur, // Divise le champ 'categorie' en 'categories_utilisateur' - type: type, // Divise le champ 'categorie' en 'type' - programmes: programmes, // Divise le champ 'categorie' en 'programmes' - prioritaire : prioritaire, // Divise le champ 'categorie' en 'prioritaire' - est_perso : item.collectivite_id !== null, - pilotes : pilotes, - services : services, - fiches : fiches, - fiches_non_classees : fiches_non_classees // Ajoute le champ 'est_perso' + tagId: undefined, + userId: undefined, + nom: p.tag_id ? p.tag.nom : p.user.prenom + ' ' + p.user.nom, + idTablePassage: p.id, + collectiviteId: p.collectivite_id, }; + }); + fiches = item.fiches; + fiches_non_classees = fiches.filter( + (fiche: any) => fiche.plans === null || fiche.plans.length === 0 + ); + } + + // Découpe les catégories en type, programme et catégories utilisateur + item.categories.forEach((cat: any) => { + if (cat.collectivite_id !== null) { + if (complet && cat.collectivite_id === collectiviteId) { + categoriesUtilisateur = []; + categoriesUtilisateur.push({ + id: cat.id, + nom: cat.nom, + collectivite_id: cat.collectivite_id, + }); + } + } else if (cat.groupement_id !== null) { + const groupe = groupement.filter( + (g: any) => g.id === cat.groupement_id + ); + if ( + groupe.length > 0 && + groupe[0].collectivites && + groupe[0].collectivites.includes(collectiviteId) + ) { + programmes.push({id: cat.id, nom: cat.nom}); + } + } else if (cat.nom === 'resultat' || cat.nom === 'impact') { + type = cat; + } else if (cat.nom === 'prioritaire') { + prioritaire = true; + } else { + programmes.push({id: cat.id, nom: cat.nom}); + } }); + + return { + ...item, + rempli: item.valeurs?.length > 0 || 0, // Ajouter le champ 'rempli' + commentaire: plusInfo.commentaire, // Remonte le champ 'commentaire' + confidentiel: plusInfo.confidentiel, // Remonte le champ 'confidentiel' + plus: undefined, // Supprimer le champ 'plus' + categories: undefined, // Supprimer le champ 'categories' + valeurs: valeurs, + categories_utilisateur: categoriesUtilisateur, // Divise le champ 'categorie' en 'categories_utilisateur' + type: type, // Divise le champ 'categorie' en 'type' + programmes: programmes, // Divise le champ 'categorie' en 'programmes' + prioritaire: prioritaire, // Divise le champ 'categorie' en 'prioritaire' + est_perso: item.collectivite_id !== null, + pilotes, + services, + fiches, + fiches_non_classees, // Ajoute le champ 'est_perso' + enfants: item?.enfants?.map(e => e.id), + parents: item?.parents?.map(p => p.id), + }; + }); } From e2bcf738b658f7b60bfe35be0054c26cd71704d4 Mon Sep 17 00:00:00 2001 From: Marc Rutkowski Date: Wed, 10 Jul 2024 15:29:59 +0200 Subject: [PATCH 11/46] Change l'attente d'un groupe de Promise (+ prettier) --- .../actions/indicateur.save.test.ts | 276 +++---- .../indicateurs/actions/indicateur.save.ts | 693 +++++++++--------- 2 files changed, 491 insertions(+), 478 deletions(-) diff --git a/packages/api/src/indicateurs/actions/indicateur.save.test.ts b/packages/api/src/indicateurs/actions/indicateur.save.test.ts index 146d6355ca..00306b9705 100644 --- a/packages/api/src/indicateurs/actions/indicateur.save.test.ts +++ b/packages/api/src/indicateurs/actions/indicateur.save.test.ts @@ -10,156 +10,168 @@ import { upsertThematiques, upsertValeursUtilisateurAvecSource } from "./indicateur.save"; import { - selectIndicateurActions, selectIndicateurCategoriesUtilisateur, - selectIndicateurDefinition, - selectIndicateurFiches, selectIndicateurPilotes, selectIndicateurServices, - selectIndicateurThematiques, - selectIndicateurValeur, selectIndicateurValeurs -} from "./indicateur.fetch"; -import {IndicateurDefinitionInsert} from "../domain/definition.schema"; -import {Valeur} from "../domain/valeur.schema"; -import {Thematique} from "../../shared/domain/thematique.schema"; -import {FicheResume} from "../../fiche_actions/domain/resume.schema"; -import {Personne} from "../../shared/domain/personne.schema"; -import {Action} from "../../referentiel/domain/action.schema"; -import {Tag} from "../../shared/domain/tag.schema"; - - + selectIndicateurActions, + selectIndicateurCategoriesUtilisateur, + selectIndicateurDefinition, + selectIndicateurFiches, + selectIndicateurPilotes, + selectIndicateurServicesId, + selectIndicateurThematiquesId, + selectIndicateurValeur, + selectIndicateurValeurs, +} from './indicateur.fetch'; +import {IndicateurDefinitionInsert} from '../domain/definition.schema'; +import {Valeur} from '../domain/valeur.schema'; +import {Thematique} from '../../shared/domain/thematique.schema'; +import {FicheResume} from '../../fiche_actions/domain/resume.schema'; +import {Personne} from '../../shared/domain/personne.schema'; +import {Action} from '../../referentiel/domain/action.schema'; +import {Tag} from '../../shared/domain/tag.schema'; beforeAll(async () => { - await signIn('yolododo'); - await testReset(); + await signIn('yolododo'); + await testReset(); - return async () => { - await signOut(); - }; + return async () => { + await signOut(); + }; }); test('Test updateIndicateurDefinition', async () => { - // Modification indicateur personnalisé - const def = await selectIndicateurDefinition(supabase, 123, 1); - const defToUpdate = JSON.parse(JSON.stringify(def!)); - defToUpdate.commentaire = 'test nouveau com'; - defToUpdate.description = 'test nouvel des' - await updateIndicateurDefinition(supabase, defToUpdate, 1); - const newDef = await selectIndicateurDefinition(supabase, 123, 1); - expect(def!.commentaire).not.eq(newDef!.commentaire); - expect(def!.description).not.eq(newDef!.description); - - // Modification indicateur prédéfini - const def2 = await selectIndicateurDefinition(supabase, 1, 1); - const def2ToUpdate = JSON.parse(JSON.stringify(def2!)); - def2ToUpdate.commentaire = 'test nouveau com'; - def2ToUpdate.description = 'test nouvel des' - await updateIndicateurDefinition(supabase, def2ToUpdate, 1); - const newDef2 = await selectIndicateurDefinition(supabase, 1, 1); - expect(def2!.commentaire).not.eq(newDef2!.commentaire); - expect(def2!.description).eq(newDef2!.description); // Ne peut pas modifier la description d'un indicateur prédéfini - + // Modification indicateur personnalisé + const def = await selectIndicateurDefinition(supabase, 123, 1); + const defToUpdate = JSON.parse(JSON.stringify(def!)); + defToUpdate.commentaire = 'test nouveau com'; + defToUpdate.description = 'test nouvel des'; + await updateIndicateurDefinition(supabase, defToUpdate, 1); + const newDef = await selectIndicateurDefinition(supabase, 123, 1); + expect(def!.commentaire).not.eq(newDef!.commentaire); + expect(def!.description).not.eq(newDef!.description); + + // Modification indicateur prédéfini + const def2 = await selectIndicateurDefinition(supabase, 1, 1); + const def2ToUpdate = JSON.parse(JSON.stringify(def2!)); + def2ToUpdate.commentaire = 'test nouveau com'; + def2ToUpdate.description = 'test nouvel des'; + await updateIndicateurDefinition(supabase, def2ToUpdate, 1); + const newDef2 = await selectIndicateurDefinition(supabase, 1, 1); + expect(def2!.commentaire).not.eq(newDef2!.commentaire); + expect(def2!.description).eq(newDef2!.description); // Ne peut pas modifier la description d'un indicateur prédéfini }); test('Test insertIndicateurDefinition', async () => { - const def : IndicateurDefinitionInsert = { - titre : 'test', - collectiviteId: 1, - thematiques: [{id : 1, nom :''}] - } - - const newId = await insertIndicateurDefinition(supabase, def); - const data = await selectIndicateurDefinition(supabase, newId!, 1); - expect(data).not.toBeNull(); - expect(data?.thematiques[0].id).eq(1); + const def: IndicateurDefinitionInsert = { + titre: 'test', + collectiviteId: 1, + thematiques: [{id: 1, nom: ''}], + }; + + const newId = await insertIndicateurDefinition(supabase, def); + const data = await selectIndicateurDefinition(supabase, newId!, 1); + expect(data).not.toBeNull(); + expect(data?.thematiques[0].id).eq(1); }); test('Test upsertIndicateurValeur', async () => { - const valeur : Valeur = { - collectiviteId : 1, - indicateurId : 1, - resultat : 1.3, - objectif : 2, - resultatCommentaire : 'test', - annee : 2022 - }; - // Ajout valeur - const newId = await upsertIndicateurValeur(supabase, valeur); - const data = await selectIndicateurValeur(supabase, newId!); - expect(data).not.toBeNull(); - data!.objectif = 2.3; - // Modification valeur - await upsertIndicateurValeur(supabase, data!); - const result = await selectIndicateurValeur(supabase, newId!); - expect(result!.objectif).eq(2.3); - expect(data!.id).eq(result!.id); + const valeur: Valeur = { + collectiviteId: 1, + indicateurId: 1, + resultat: 1.3, + objectif: 2, + resultatCommentaire: 'test', + annee: 2022, + }; + // Ajout valeur + const newId = await upsertIndicateurValeur(supabase, valeur); + const data = await selectIndicateurValeur(supabase, newId!); + expect(data).not.toBeNull(); + data!.objectif = 2.3; + // Modification valeur + await upsertIndicateurValeur(supabase, data!); + const result = await selectIndicateurValeur(supabase, newId!); + expect(result!.objectif).eq(2.3); + expect(data!.id).eq(result!.id); }); test('Test upsertThematiques', async () => { - // Ajout thématique sur indicateur personnalisé - const def = await selectIndicateurDefinition(supabase, 123, 1); - const them : Thematique[] = [{ - id : 1, - nom : 'test' - }]; - await upsertThematiques(supabase, def!, them); - const data = await selectIndicateurThematiques(supabase, 123); - expect(data).not.toBeNull(); - expect(data).toHaveLength(1); - // Enlève thématique sur indicateur personnalisé - await upsertThematiques(supabase, def!, []); - const data2 = await selectIndicateurThematiques(supabase, 123); - expect(data2).not.toBeNull(); - expect(data2).toHaveLength(0); - // Ajout thématique sur indicateur prédéfini (pas possible) - const def2 = await selectIndicateurDefinition(supabase, 1, 1); - await upsertThematiques(supabase, def2!, them); - const data3 = await selectIndicateurThematiques(supabase, 1); - expect(data3).not.toBeNull(); - expect(data3).toHaveLength(0); + // Ajout thématique sur indicateur personnalisé + const def = await selectIndicateurDefinition(supabase, 123, 1); + const them: Thematique[] = [ + { + id: 1, + nom: 'test', + }, + ]; + await upsertThematiques(supabase, def!, them); + const data = await selectIndicateurThematiquesId(supabase, 123); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); + // Enlève thématique sur indicateur personnalisé + await upsertThematiques(supabase, def!, []); + const data2 = await selectIndicateurThematiquesId(supabase, 123); + expect(data2).not.toBeNull(); + expect(data2).toHaveLength(0); + // Ajout thématique sur indicateur prédéfini (pas possible) + const def2 = await selectIndicateurDefinition(supabase, 1, 1); + await upsertThematiques(supabase, def2!, them); + const data3 = await selectIndicateurThematiquesId(supabase, 1); + expect(data3).not.toBeNull(); + expect(data3).toHaveLength(0); }); test('Test upsertServices', async () => { - // Données - const serv = await dbAdmin.from('service_tag') - .insert({nom : 'serv2', collectivite_id : 2}).select(); - await dbAdmin.from('indicateur_service_tag') - .insert({indicateur_id : 1, service_tag_id : serv!.data![0].id, collectivite_id : 2}); - - // Ajout service inexistant sur indicateur personnalisé - const def = await selectIndicateurDefinition(supabase, 123, 1); - const tags : Tag[] = [{ - nom : 'test', - collectiviteId: 1 - }]; - await upsertServices(supabase, def!, 1, tags); - const data = await selectIndicateurServices(supabase, 123, 1); - expect(data).not.toBeNull(); - expect(data).toHaveLength(1); - // Ajout service existant sur indicateur personnalisé - tags[0].id = data[0]; - tags.push({nom : '', collectiviteId: 1, id: 1}); - await upsertServices(supabase, def!, 1, tags); - const data2 = await selectIndicateurServices(supabase, 123, 1); - expect(data2).not.toBeNull(); - expect(data2).toHaveLength(2); - // Enlève services sur indicateur personnalisé - await upsertServices(supabase, def!, 1, []); - const data3 = await selectIndicateurServices(supabase, 123, 1); - expect(data3).not.toBeNull(); - expect(data3).toHaveLength(0); - // Ajout services sur indicateur prédéfini - const def2 = await selectIndicateurDefinition(supabase, 1, 1); - await upsertServices(supabase, def2!, 1, tags); - const data4 = await selectIndicateurServices(supabase, 1, 1); - expect(data4).not.toBeNull(); - expect(data4).toHaveLength(2); - // Enlève services sur indicateur prédéfini - await upsertServices(supabase, def2!, 1, []); - const data5 = await selectIndicateurServices(supabase, 1, 1); - expect(data5).not.toBeNull(); - expect(data5).toHaveLength(0); - // Vérifie qu'on supprime pas les services des autres collectivités - const data6 = await selectIndicateurServices(supabase, 1, 2); - expect(data6).not.toBeNull(); - expect(data6).toHaveLength(1); + // Données + const serv = await dbAdmin + .from('service_tag') + .insert({nom: 'serv2', collectivite_id: 2}) + .select(); + await dbAdmin + .from('indicateur_service_tag') + .insert({ + indicateur_id: 1, + service_tag_id: serv!.data![0].id, + collectivite_id: 2, + }); + + // Ajout service inexistant sur indicateur personnalisé + const def = await selectIndicateurDefinition(supabase, 123, 1); + const tags: Tag[] = [ + { + nom: 'test', + collectiviteId: 1, + }, + ]; + await upsertServices(supabase, def!, 1, tags); + const data = await selectIndicateurServicesId(supabase, 123, 1); + expect(data).not.toBeNull(); + expect(data).toHaveLength(1); + // Ajout service existant sur indicateur personnalisé + tags[0].id = data[0]; + tags.push({nom: '', collectiviteId: 1, id: 1}); + await upsertServices(supabase, def!, 1, tags); + const data2 = await selectIndicateurServicesId(supabase, 123, 1); + expect(data2).not.toBeNull(); + expect(data2).toHaveLength(2); + // Enlève services sur indicateur personnalisé + await upsertServices(supabase, def!, 1, []); + const data3 = await selectIndicateurServicesId(supabase, 123, 1); + expect(data3).not.toBeNull(); + expect(data3).toHaveLength(0); + // Ajout services sur indicateur prédéfini + const def2 = await selectIndicateurDefinition(supabase, 1, 1); + await upsertServices(supabase, def2!, 1, tags); + const data4 = await selectIndicateurServicesId(supabase, 1, 1); + expect(data4).not.toBeNull(); + expect(data4).toHaveLength(2); + // Enlève services sur indicateur prédéfini + await upsertServices(supabase, def2!, 1, []); + const data5 = await selectIndicateurServicesId(supabase, 1, 1); + expect(data5).not.toBeNull(); + expect(data5).toHaveLength(0); + // Vérifie qu'on supprime pas les services des autres collectivités + const data6 = await selectIndicateurServicesId(supabase, 1, 2); + expect(data6).not.toBeNull(); + expect(data6).toHaveLength(1); }); test('Test upsertCategoriesUtilisateur', async () => { diff --git a/packages/api/src/indicateurs/actions/indicateur.save.ts b/packages/api/src/indicateurs/actions/indicateur.save.ts index 4c595dd3af..9ff0328ed7 100644 --- a/packages/api/src/indicateurs/actions/indicateur.save.ts +++ b/packages/api/src/indicateurs/actions/indicateur.save.ts @@ -10,21 +10,20 @@ import {objectToSnake} from "ts-case-convert"; import {Personne} from "../../shared/domain/personne.schema"; import {insertTags} from "../../shared/actions/tag.save"; import {Tag} from "../../shared/domain/tag.schema"; -import {Thematique} from "../../shared/domain/thematique.schema"; -import {FicheResume} from "../../fiche_actions/domain/resume.schema"; -import {Action} from "../../referentiel/domain/action.schema"; -import {getValeursComparaison} from "./indicateur.fetch"; -import {selectTags} from "../../shared/actions/tag.fetch"; +import {Thematique} from '../../shared/domain/thematique.schema'; +import {Action} from '../../referentiel/domain/action.schema'; +import {getValeursComparaison} from './indicateur.fetch'; +import {selectTags} from '../../shared/actions/tag.fetch'; export type upsertValeursUtilisateurAvecSourceParametres = { - dbClient : DBClient, - indicateurId : number, - collectiviteId : number, - source : string, - appliquerResultat : boolean, - appliquerObjectif : boolean, - ecraserResultat : boolean, - ecraserObjectif : boolean + dbClient: DBClient; + indicateurId: number; + collectiviteId: number; + source: string; + appliquerResultat: boolean; + appliquerObjectif: boolean; + ecraserResultat: boolean; + ecraserObjectif: boolean; }; /** @@ -34,37 +33,31 @@ export type upsertValeursUtilisateurAvecSourceParametres = { * @param collectiviteId identifiant de la collectivité */ export async function updateIndicateurDefinition( - dbClient: DBClient, - indicateur : IndicateurDefinition, - collectiviteId : number + dbClient: DBClient, + indicateur: IndicateurDefinition, + collectiviteId: number ) { - - // Modifier commentaire && confidentiel - await dbClient - .from('indicateur_collectivite') - .upsert({ - indicateur_id : indicateur.id, - collectivite_id : collectiviteId, - commentaire : indicateur.commentaire, - confidentiel : indicateur.confidentiel - }); - - - // Modifier l'indicateur si personnalise - if(indicateur.estPerso){ - await dbClient - .from('indicateur_definition') - .upsert({ - id : indicateur.id, - collectivite_id : indicateur.collectiviteId, - titre: indicateur.titre, - titre_long: indicateur.titreLong, - description: indicateur.description, - unite: indicateur.unite, - borne_max: indicateur.borneMax, - borne_min: indicateur.borneMin, - }); - } + // Modifier commentaire && confidentiel + await dbClient.from('indicateur_collectivite').upsert({ + indicateur_id: indicateur.id, + collectivite_id: collectiviteId, + commentaire: indicateur.commentaire, + confidentiel: indicateur.confidentiel, + }); + + // Modifier l'indicateur si personnalise + if (indicateur.estPerso) { + await dbClient.from('indicateur_definition').upsert({ + id: indicateur.id, + collectivite_id: indicateur.collectiviteId, + titre: indicateur.titre, + titre_long: indicateur.titreLong, + description: indicateur.description, + unite: indicateur.unite, + borne_max: indicateur.borneMax, + borne_min: indicateur.borneMin, + }); + } } /** @@ -74,34 +67,39 @@ export async function updateIndicateurDefinition( * @return identifiant de l'indicateur ajouté */ export async function insertIndicateurDefinition( - dbClient : DBClient, - indicateur : IndicateurDefinitionInsert -) : Promise { - indicateurDefinitionSchemaInsert.parse(indicateur); // Vérifie le type - try { - const {data, error } = await dbClient - .from('indicateur_definition') - .insert({ - collectivite_id : indicateur.collectiviteId, - titre : indicateur.titre, - unite : indicateur.unite ? indicateur.unite : "" - }) - .select('id'); - - if(data && data.length >0 && indicateur.thematiques !=null && indicateur.thematiques.length>0) { - await dbClient - .from('indicateur_thematique') - .insert(indicateur.thematiques.map(t => ( - { - indicateur_id : data[0].id, - thematique_id : t.id - }))) - } + dbClient: DBClient, + indicateur: IndicateurDefinitionInsert +): Promise { + indicateurDefinitionSchemaInsert.parse(indicateur); // Vérifie le type + const {data, error} = await dbClient + .from('indicateur_definition') + .insert({ + collectivite_id: indicateur.collectiviteId, + titre: indicateur.titre, + unite: indicateur.unite ? indicateur.unite : '', + description: indicateur.description, + }) + .select('id'); + + if ( + data && + data.length > 0 && + indicateur.thematiques != null && + indicateur.thematiques.length > 0 + ) { + await dbClient.from('indicateur_thematique').insert( + indicateur.thematiques.map(t => ({ + indicateur_id: data[0].id, + thematique_id: t.id, + })) + ); + } - return data? data[0].id: null; - } catch (error) { - throw error - } + if (error) { + throw error; + } + + return data ? data[0].id : null; } /** @@ -111,41 +109,45 @@ export async function insertIndicateurDefinition( * @return identifiant de la valeur ajoutée/modifiée, null si supprimée */ export async function upsertIndicateurValeur( - dbClient : DBClient, - indicateurValeur : Valeur -) : Promise { - valeurSchema.parse(indicateurValeur); // Vérifie le type - if( - indicateurValeur.resultat === null && - indicateurValeur.objectif === null && - indicateurValeur.estimation === null && - (indicateurValeur.resultatCommentaire === null || indicateurValeur.resultatCommentaire === '') && - (indicateurValeur.objectifCommentaire === null || indicateurValeur.objectifCommentaire === '') - ){ - if(indicateurValeur.id){ - await dbClient - .from('indicateur_valeur') - .delete() - .eq('id', indicateurValeur.id); - } - return null; - } - let {annee, ...rest} = indicateurValeur; - const toUpsert = { - ...rest, - dateValeur : new Date(indicateurValeur.annee, 0, 1).toLocaleDateString('sv-SE'), - source : undefined, - metadonneeId : rest.source?.id || null - } - try { - const {data, error} = await dbClient - .from('indicateur_valeur') - .upsert(objectToSnake(toUpsert) as TablesInsert<'indicateur_valeur'>) - .select('id'); - return data && data.length>0? data[0].id : null; - } catch (error) { - throw error + dbClient: DBClient, + indicateurValeur: Valeur +): Promise { + valeurSchema.parse(indicateurValeur); // Vérifie le type + if ( + indicateurValeur.resultat === null && + indicateurValeur.objectif === null && + indicateurValeur.estimation === null && + (indicateurValeur.resultatCommentaire === null || + indicateurValeur.resultatCommentaire === '') && + (indicateurValeur.objectifCommentaire === null || + indicateurValeur.objectifCommentaire === '') + ) { + if (indicateurValeur.id) { + await dbClient + .from('indicateur_valeur') + .delete() + .eq('id', indicateurValeur.id); } + return null; + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const {annee, ...rest} = indicateurValeur; + const toUpsert = { + ...rest, + dateValeur: new Date(indicateurValeur.annee, 0, 1).toLocaleDateString(), + source: undefined, + metadonneeId: rest.source?.id || null, + }; + const {data, error} = await dbClient + .from('indicateur_valeur') + .upsert(objectToSnake(toUpsert) as TablesInsert<'indicateur_valeur'>) + .select('id'); + + if (error) { + throw error; + } + + return data && data.length > 0 ? data[0].id : null; } /** @@ -155,30 +157,27 @@ export async function upsertIndicateurValeur( * @param thematiques thématiques à modifier */ export async function upsertThematiques( - dbClient : DBClient, - indicateur : IndicateurDefinition, - thematiques : Thematique[], + dbClient: DBClient, + indicateur: IndicateurDefinition, + thematiques: Thematique[] ) { - if(indicateur.estPerso){ - // Supprime les liens vers les thématiques qui ne sont plus concernés - await dbClient - .from('indicateur_thematique') - .delete() - .eq('indicateur_id', indicateur.id) - .not( - 'thematique_id', - 'in', - `(${thematiques.map(t => t.id).join(',')})` - ); - - // Fait les nouveaux liens entre l'indicateur et les thématiques - await dbClient - .from('indicateur_thematique') - .upsert( - thematiques.map(t => ({thematique_id: t.id, indicateur_id : indicateur.id})), - {onConflict: 'indicateur_id,thematique_id'} - ); - } + if (indicateur.estPerso) { + // Supprime les liens vers les thématiques qui ne sont plus concernés + await dbClient + .from('indicateur_thematique') + .delete() + .eq('indicateur_id', indicateur.id) + .not('thematique_id', 'in', `(${thematiques.map(t => t.id).join(',')})`); + + // Fait les nouveaux liens entre l'indicateur et les thématiques + await dbClient.from('indicateur_thematique').upsert( + thematiques.map(t => ({ + thematique_id: t.id, + indicateur_id: indicateur.id, + })), + {onConflict: 'indicateur_id,thematique_id'} + ); + } } /** @@ -189,44 +188,45 @@ export async function upsertThematiques( * @param services services à modifier */ export async function upsertServices( - dbClient : DBClient, - indicateur : IndicateurDefinition, - collectiviteId : number, - services : Tag[], + dbClient: DBClient, + indicateur: IndicateurDefinition, + collectiviteId: number, + services: Tag[] ) { - const tagIds: number[] = []; - const newTags : Tag[] = []; - - services.forEach(s => { - if (s.id) { - tagIds.push(s.id as number); - }else if (s.nom) { - newTags.push(s); - } - }); - - // Supprime les services qui ne sont plus concernés - await dbClient - .from('indicateur_service_tag') - .delete() - .eq('indicateur_id', indicateur.id) - .eq('collectivite_id', collectiviteId) - .not( - 'service_tag_id', - 'in', - `(${tagIds.join(',')})` - ); - - // Ajoute les nouveaux tags - const newTagsAdded : Tag[] = await insertTags(dbClient,'service', newTags); - - // Fait les nouveaux liens entre l'indicateur et les pilotes - const toUpsert = tagIds.concat(newTagsAdded.map(t => t.id as number)) - .map(s => ({collectivite_id: collectiviteId, indicateur_id: indicateur.id, service_tag_id : s})); - - await dbClient.from('indicateur_service_tag').upsert(toUpsert, { - onConflict: 'indicateur_id, collectivite_id, service_tag_id' - }); + const tagIds: number[] = []; + const newTags: Tag[] = []; + + services.forEach(s => { + if (s.id) { + tagIds.push(s.id as number); + } else if (s.nom) { + newTags.push(s); + } + }); + + // Supprime les services qui ne sont plus concernés + await dbClient + .from('indicateur_service_tag') + .delete() + .eq('indicateur_id', indicateur.id) + .eq('collectivite_id', collectiviteId) + .not('service_tag_id', 'in', `(${tagIds.join(',')})`); + + // Ajoute les nouveaux tags + const newTagsAdded: Tag[] = await insertTags(dbClient, 'service', newTags); + + // Fait les nouveaux liens entre l'indicateur et les pilotes + const toUpsert = tagIds + .concat(newTagsAdded.map(t => t.id as number)) + .map(s => ({ + collectivite_id: collectiviteId, + indicateur_id: indicateur.id, + service_tag_id: s, + })); + + await dbClient.from('indicateur_service_tag').upsert(toUpsert, { + onConflict: 'indicateur_id, collectivite_id, service_tag_id', + }); } /** @@ -237,42 +237,50 @@ export async function upsertServices( * @param categories categories à modifier */ export async function upsertCategoriesUtilisateur( - dbClient : DBClient, - indicateur : IndicateurDefinition, - collectiviteId : number, - categories : Tag[], + dbClient: DBClient, + indicateur: IndicateurDefinition, + collectiviteId: number, + categories: Tag[] ) { - const tagIds: number[] = []; - const newTags : Tag[] = []; - const categoriesCollectivite = await selectTags(dbClient, collectiviteId, 'categorie'); - - categories.forEach(s => { - if (s.id) { - tagIds.push(s.id as number); - }else if (s.nom && s.collectiviteId === collectiviteId) { - newTags.push(s); - } - }); - - // Supprime les categories qui ne sont plus concernés - await dbClient - .from('indicateur_categorie_tag') - .delete() - .eq('indicateur_id', indicateur.id) - // Ne supprime que les catégories de la collectivité - .in('categorie_tag_id', categoriesCollectivite.map(c => c.id)) - .not('categorie_tag_id', 'in', `(${tagIds.join(',')})`); - - // Ajoute les nouveaux tags - const newTagsAdded : Tag[] = await insertTags(dbClient,'categorie', newTags); - - // Fait les nouveaux liens entre l'indicateur et les pilotes - const toUpsert = tagIds.concat(newTagsAdded.map(t => t.id as number)) - .map(s => ({indicateur_id: indicateur.id, categorie_tag_id : s})); - - await dbClient.from('indicateur_categorie_tag').upsert(toUpsert, { - onConflict: 'indicateur_id, categorie_tag_id' - }); + const tagIds: number[] = []; + const newTags: Tag[] = []; + const categoriesCollectivite = await selectTags( + dbClient, + collectiviteId, + 'categorie' + ); + + categories.forEach(s => { + if (s.id) { + tagIds.push(s.id as number); + } else if (s.nom && s.collectiviteId === collectiviteId) { + newTags.push(s); + } + }); + + // Supprime les categories qui ne sont plus concernés + await dbClient + .from('indicateur_categorie_tag') + .delete() + .eq('indicateur_id', indicateur.id) + // Ne supprime que les catégories de la collectivité + .in( + 'categorie_tag_id', + categoriesCollectivite.map(c => c.id) + ) + .not('categorie_tag_id', 'in', `(${tagIds.join(',')})`); + + // Ajoute les nouveaux tags + const newTagsAdded: Tag[] = await insertTags(dbClient, 'categorie', newTags); + + // Fait les nouveaux liens entre l'indicateur et les pilotes + const toUpsert = tagIds + .concat(newTagsAdded.map(t => t.id as number)) + .map(s => ({indicateur_id: indicateur.id, categorie_tag_id: s})); + + await dbClient.from('indicateur_categorie_tag').upsert(toUpsert, { + onConflict: 'indicateur_id, categorie_tag_id', + }); } /** @@ -283,52 +291,55 @@ export async function upsertCategoriesUtilisateur( * @param pilotes liste des pilotes à upsert */ export async function upsertPilotes( - dbClient : DBClient, - indicateur : IndicateurDefinition, - collectiviteId : number, - pilotes : Personne[], -){ - const passageIds: number[] = []; - const userIds : string[] = []; - const tagIds: number[] = []; - const newTags : Tag[] = []; - pilotes.forEach(p => { - if (p.idTablePassage){ - passageIds.push(p.idTablePassage); - }else if (p.tagId ) { - tagIds.push(p.tagId as number); - }else if (p.userId) { - userIds.push(p.userId as string); - }else if (p.nom){ - newTags.push({collectiviteId : collectiviteId, nom: p.nom as string}); - } - }); - // Supprime les liens vers les pilotes qui ne sont plus concernés - await dbClient - .from('indicateur_pilote') - .delete() - .eq('indicateur_id', indicateur.id) - .eq('collectivite_id', collectiviteId) - .not('id', 'in',`(${passageIds.join(',')})`); - - // Ajoute les nouveaux tags personne - const newTagsAdded : Tag[] = await insertTags(dbClient, 'personne', newTags); - - // Fait les nouveaux liens entre l'indicateur et les pilotes - const toUpsert = [ - ...userIds - .map(p => ({user_id: p, tag_id: null})), - ...tagIds.concat(newTagsAdded.map(t => t.id as number)) - .map(p => ({user_id: null, tag_id: p})), - ].map(p => ({...p, collectivite_id: collectiviteId, indicateur_id: indicateur.id})); - - // Sauvegarde les nouveaux pilotes - if(toUpsert.length>0){ - await dbClient.from('indicateur_pilote').upsert(toUpsert, { - onConflict: 'indicateur_id, collectivite_id, user_id, tag_id' - }); + dbClient: DBClient, + indicateur: IndicateurDefinition, + collectiviteId: number, + pilotes: Personne[] +) { + const passageIds: number[] = []; + const userIds: string[] = []; + const tagIds: number[] = []; + const newTags: Tag[] = []; + pilotes.forEach(p => { + if (p.idTablePassage) { + passageIds.push(p.idTablePassage); + } else if (p.tagId) { + tagIds.push(p.tagId as number); + } else if (p.userId) { + userIds.push(p.userId as string); + } else if (p.nom) { + newTags.push({collectiviteId: collectiviteId, nom: p.nom as string}); } - + }); + // Supprime les liens vers les pilotes qui ne sont plus concernés + await dbClient + .from('indicateur_pilote') + .delete() + .eq('indicateur_id', indicateur.id) + .eq('collectivite_id', collectiviteId) + .not('id', 'in', `(${passageIds.join(',')})`); + + // Ajoute les nouveaux tags personne + const newTagsAdded: Tag[] = await insertTags(dbClient, 'personne', newTags); + + // Fait les nouveaux liens entre l'indicateur et les pilotes + const toUpsert = [ + ...userIds.map(p => ({user_id: p, tag_id: null})), + ...tagIds + .concat(newTagsAdded.map(t => t.id as number)) + .map(p => ({user_id: null, tag_id: p})), + ].map(p => ({ + ...p, + collectivite_id: collectiviteId, + indicateur_id: indicateur.id, + })); + + // Sauvegarde les nouveaux pilotes + if (toUpsert.length > 0) { + await dbClient.from('indicateur_pilote').upsert(toUpsert, { + onConflict: 'indicateur_id, collectivite_id, user_id, tag_id', + }); + } } /** @@ -339,39 +350,31 @@ export async function upsertPilotes( * @param fiches fiches à modifier */ export async function upsertFiches( - dbClient : DBClient, - indicateur : IndicateurDefinition, - collectiviteId : number, - fiches : FicheResume[], + dbClient: DBClient, + indicateurId: number, + collectiviteId: number, + fiches: number[] ) { - const requestCol = await dbClient - .from('fiche_action') - .select('id') - .eq('collectivite_id', collectiviteId); - const fichesCol : number[] = requestCol.data?.map(r=> r.id) || []; - if(fichesCol.length>0){ - // Supprime les liens vers les fiches qui ne sont plus concernés - await dbClient - .from('fiche_action_indicateur') - .delete() - .eq('indicateur_id', indicateur.id) - .in('fiche_id', fichesCol) - .not( - 'fiche_id', - 'in', - `(${fiches.map(f => f.id).join(',')})` - ); - } - - - // Fait les nouveaux liens entre l'indicateur et les fiches + const requestCol = await dbClient + .from('fiche_action') + .select('id') + .eq('collectivite_id', collectiviteId); + const fichesCol: number[] = requestCol.data?.map(r => r.id) || []; + if (fichesCol.length > 0) { + // Supprime les liens vers les fiches qui ne sont plus concernés await dbClient - .from('fiche_action_indicateur') - .upsert( - fiches.map(f => ({fiche_id: f.id, indicateur_id : indicateur.id})), - {onConflict: 'indicateur_id,fiche_id'} - ); - + .from('fiche_action_indicateur') + .delete() + .eq('indicateur_id', indicateurId) + .in('fiche_id', fichesCol) + .not('fiche_id', 'in', `(${fiches.join(',')})`); + } + + // Fait les nouveaux liens entre l'indicateur et les fiches + await dbClient.from('fiche_action_indicateur').upsert( + fiches.map(fiche_id => ({fiche_id, indicateur_id: indicateurId})), + {onConflict: 'indicateur_id,fiche_id'} + ); } /** @@ -381,32 +384,25 @@ export async function upsertFiches( * @param actions actions à modifier */ export async function upsertActions( - dbClient : DBClient, - indicateur : IndicateurDefinition, - actions : Action[], + dbClient: DBClient, + indicateur: IndicateurDefinition, + actions: Action[] ) { - if(indicateur.estPerso){ - // Supprime les liens vers les actions qui ne sont plus concernés - await dbClient - .from('indicateur_action') - .delete() - .eq('indicateur_id', indicateur.id) - .not( - 'action_id', - 'in', - `(${actions.map(a => a.id).join(',')})` - ); - - // Fait les nouveaux liens entre l'indicateur et les fiches - await dbClient - .from('indicateur_action') - .upsert( - actions.map(a => ({action_id: a.id, indicateur_id : indicateur.id})), - {onConflict: 'indicateur_id,action_id'} - ); - } -} + if (indicateur.estPerso) { + // Supprime les liens vers les actions qui ne sont plus concernés + await dbClient + .from('indicateur_action') + .delete() + .eq('indicateur_id', indicateur.id) + .not('action_id', 'in', `(${actions.map(a => a.id).join(',')})`); + // Fait les nouveaux liens entre l'indicateur et les fiches + await dbClient.from('indicateur_action').upsert( + actions.map(a => ({action_id: a.id, indicateur_id: indicateur.id})), + {onConflict: 'indicateur_id,action_id'} + ); + } +} /** * Applique les valeurs d'une source aux valeurs utilisateurs d'un indicateur @@ -422,57 +418,62 @@ export async function upsertActions( * */ export async function upsertValeursUtilisateurAvecSource( - args : upsertValeursUtilisateurAvecSourceParametres + args: upsertValeursUtilisateurAvecSourceParametres ) { - const valeurs = await getValeursComparaison( - args.dbClient, - args.indicateurId, - args.collectiviteId, - args.source - ); - const valeursToUpsert : Map = new Map(); - if(valeurs){ - if(args.appliquerResultat){ - for(let ligne of valeurs.resultats.lignes){ - // Si nouvelle ligne, ou nouveau résultat qu'on écrase - if(!ligne.idAEcraser || (ligne.conflit && args.ecraserResultat)) { - let valeurToUpsert : Valeur = { - id : ligne.idAEcraser?ligne.idAEcraser:undefined, - indicateurId : args.indicateurId, - annee : ligne.annee, - collectiviteId: args.collectiviteId, - source : null, - resultat: ligne.valeurAAppliquer - } - if(!ligne.idAEcraser) valeurToUpsert.resultatCommentaire = `Copié de la source ${args.source}`; - valeursToUpsert.set(ligne.annee, valeurToUpsert); - } - } + const valeurs = await getValeursComparaison( + args.dbClient, + args.indicateurId, + args.collectiviteId, + args.source + ); + const valeursToUpsert: Map = new Map(); + if (valeurs) { + if (args.appliquerResultat) { + for (const ligne of valeurs.resultats.lignes) { + // Si nouvelle ligne, ou nouveau résultat qu'on écrase + if (!ligne.idAEcraser || (ligne.conflit && args.ecraserResultat)) { + const valeurToUpsert: Valeur = { + id: ligne.idAEcraser ? ligne.idAEcraser : undefined, + indicateurId: args.indicateurId, + annee: ligne.annee, + collectiviteId: args.collectiviteId, + source: null, + resultat: ligne.valeurAAppliquer, + }; + if (!ligne.idAEcraser) + valeurToUpsert.resultatCommentaire = `Copié de la source ${args.source}`; + valeursToUpsert.set(ligne.annee, valeurToUpsert); } - if(args.appliquerObjectif){ - for(let ligne of valeurs.objectifs.lignes){ - if(!ligne.idAEcraser || (ligne.conflit && args.ecraserObjectif)) { - const valeurFromResultat = valeursToUpsert.get(ligne.annee); - let valeurToUpsert : Valeur = valeurFromResultat? valeurFromResultat : - { - id : ligne.idAEcraser, - indicateurId : args.indicateurId, - annee : ligne.annee, - collectiviteId: args.collectiviteId, - source : null - }; - valeurToUpsert.objectif = ligne.valeurAAppliquer; - if(!ligne.idAEcraser) valeurToUpsert.objectifCommentaire = `Copié de la source ${args.source}`; - valeursToUpsert.set(ligne.annee, valeurToUpsert) - } - } - } - - for(let valeurToUpsert of valeursToUpsert.values()){ - // TODO faire un upsert de plusieurs valeurs en une fois - await upsertIndicateurValeur(args.dbClient, valeurToUpsert); + } + } + if (args.appliquerObjectif) { + for (const ligne of valeurs.objectifs.lignes) { + if (!ligne.idAEcraser || (ligne.conflit && args.ecraserObjectif)) { + const valeurFromResultat = valeursToUpsert.get(ligne.annee); + const valeurToUpsert: Valeur = valeurFromResultat + ? valeurFromResultat + : { + id: ligne.idAEcraser ? ligne.idAEcraser : undefined, + indicateurId: args.indicateurId, + annee: ligne.annee, + collectiviteId: args.collectiviteId, + source: null, + objectif: ligne.valeurAAppliquer, + }; + if (!ligne.idAEcraser) + valeurToUpsert.objectifCommentaire = `Copié de la source ${args.source}`; + valeursToUpsert.set(ligne.annee, valeurToUpsert); } + } } + + // TODO faire un upsert de plusieurs valeurs en une fois + await Promise.all( + [...valeursToUpsert.values()].map(v => + upsertIndicateurValeur(args.dbClient, v) + ) + ); + } } From d81fddc2d56b36e98e2d38c8caf5ce446f1c8d99 Mon Sep 17 00:00:00 2001 From: Marc Rutkowski Date: Wed, 10 Jul 2024 15:30:52 +0200 Subject: [PATCH 12/46] =?UTF-8?q?Change=20les=20donn=C3=A9es=20retourn?= =?UTF-8?q?=C3=A9es=20par=20la=20fonction=20de=20filtrage=20(+=20prettier)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../actions/fetchFilteredIndicateurs.ts | 154 ++++++++++-------- .../indicateurs/domain/definition.schema.ts | 101 ++++++------ 2 files changed, 145 insertions(+), 110 deletions(-) diff --git a/packages/api/src/indicateurs/actions/fetchFilteredIndicateurs.ts b/packages/api/src/indicateurs/actions/fetchFilteredIndicateurs.ts index e060f9b3c0..1048a93f55 100644 --- a/packages/api/src/indicateurs/actions/fetchFilteredIndicateurs.ts +++ b/packages/api/src/indicateurs/actions/fetchFilteredIndicateurs.ts @@ -1,19 +1,18 @@ import {Enums, DBClient} from '../../typeUtils'; import {unaccent} from '../../utils/unaccent'; -import {IndicateurListItem} from "../domain"; -import {selectGroupements} from "../../collectivites/shared/actions/groupement.fetch"; +import {selectGroupements} from '../../collectivites/shared/actions/groupement.fetch'; import {FetchOptions} from '../domain/fetch_options.schema'; -import {Groupement} from "../../collectivites/shared/domain/groupement.schema"; +import {Groupement} from '../../collectivites/shared/domain/groupement.schema'; // Sous-ensemble d'indicateurs export type Subset = 'cae' | 'eci' | 'crte' | 'perso' | 'cles' | 'selection'; -const subsetPassage= new Map([ +const subsetPassage = new Map([ ['cae', 'cae'], ['eci', 'eci'], ['crte', 'crte'], ['cles', 'clef'], - ['selection','prioritaire'] + ['selection', 'prioritaire'], ]); // Options de filtrage @@ -38,22 +37,25 @@ export type Filters = { const filtresOptions: {[key in keyof Filters]?: string} = { thematique_ids: 'indicateur_thematique!inner(thematique_id)', - action_id : 'indicateur_action!inner(action_id)', - plan_ids: 'fiche_action_indicateur!inner(fiche_id, fiche_action!inner(fiche_action_axe!inner(axe!inner())))', + action_id: 'indicateur_action!inner(action_id)', + plan_ids: + 'fiche_action_indicateur!inner(fiche_id, fiche_action!inner(fiche_action_axe!inner(axe!inner())))', pilote_user_ids: 'indicateur_pilote!inner()', pilote_tag_ids: 'indicateur_pilote!inner()', service_ids: 'indicateur_service_tag!inner(service_tag_id)', - rempli : 'indicateur_valeur()', - confidentiel : 'indicateur_collectivite(commentaire, confidentiel, collectivite_id)', - fiches_non_classees: 'fiche_action_indicateur!inner(fiche_id, fiche_action!inner(fiche_action_axe!inner(axe!inner())))' + rempli: 'indicateur_valeur()', + confidentiel: + 'indicateur_collectivite(commentaire, confidentiel, collectivite_id)', + fiches_non_classees: + 'fiche_action_indicateur!inner(fiche_id, fiche_action!inner(fiche_action_axe!inner(axe!inner())))', }; export async function fetchFilteredIndicateurs( - dbClient : DBClient, - collectiviteId : number, - subset: Subset | null, - filters : Filters -) :Promise<{data:IndicateurListItem[], status:any}> { + dbClient: DBClient, + collectiviteId: number, + subset: Subset | null, + filters: Filters +) { const parts = new Set(); const isPerso = subset === 'perso'; const groupements: Groupement[] = await selectGroupements(dbClient); @@ -62,49 +64,57 @@ export async function fetchFilteredIndicateurs( let key: keyof Filters; for (key in filters) { if ( - (filters[key] as Array)?.length || - (filters[key] !== undefined && !Array.isArray(filters[key])) + (filters[key] as Array)?.length || + (filters[key] !== undefined && !Array.isArray(filters[key])) ) { const part = filtresOptions[key]; if (part) parts.add(part); } } - if(subset!==null && !isPerso) parts.add('indicateur_categorie_tag!inner(categorie_tag!inner(id,nom,collectivite_id,groupement_id))'); + if (subset !== null && !isPerso) + parts.add( + 'indicateur_categorie_tag!inner(categorie_tag!inner(id,nom,collectivite_id,groupement_id))' + ); // construit la requête const query = dbClient - .from('indicateur_definition') - .select( - [ - 'id', - 'identifiant_referentiel', - 'titre', - 'groupement_id', - 'indicateur_parents(id)', - ...parts, - ].join(',') - ); + .from('indicateur_definition') + .select( + [ + 'id', + 'identifiant_referentiel', + 'titre', + 'groupement_id', + 'indicateur_parents(id)', + ...parts, + ].join(',') + ); // filtre par sous-ensemble voulu if (isPerso) { // On ne récupère que les indicateurs personnalisés query.eq('collectivite_id', collectiviteId); } else { - if(subset!== null ||filters.type?.length){ + if (subset !== null || filters.type?.length) { // On ne récupère que les indicateurs prédéfinis query.is('collectivite_id', null); // S'il y a un tri sur les catégories prédéfinies, // on ne garde que les indicateurs ayant des catégories prédéfinies query.is('indicateur_categorie_tag.categorie_tag.collectivite_id', null); - if(subset !== null){ + if (subset !== null) { if (filters.type?.length) { // S'il y a un tri sur le type et le programme - query.or(`nom.eq.${subsetPassage.get(subset)!}, nom.in.${filters.type}`, - {referencedTable : 'indicateur_categorie_tag.categorie_tag'}); - }else { + query.or( + `nom.eq.${subsetPassage.get(subset)!}, nom.in.${filters.type}`, + {referencedTable: 'indicateur_categorie_tag.categorie_tag'} + ); + } else { // S'il y a un tri que sur le programme - query.eq('indicateur_categorie_tag.categorie_tag.nom', subsetPassage.get(subset)!); + query.eq( + 'indicateur_categorie_tag.categorie_tag.nom', + subsetPassage.get(subset)! + ); } - } else if (filters.type?.length) { + } else if (filters.type?.length) { // S'il y a un tri que sur le type query.in('indicateur_categorie_tag.categorie_tag.nom', filters.type); } @@ -124,11 +134,11 @@ export async function fetchFilteredIndicateurs( } } else { const search = unaccent(text) - .split(' ') - .map(s => s.trim()) - .filter(s => !!s) - .map(s => `"${s}":*`) - .join(' & '); + .split(' ') + .map(s => s.trim()) + .filter(s => !!s) + .map(s => `"${s}":*`) + .join(' & '); // ou dans le nom ou la description query.or(`titre.fts.${search}, description.fts.${search}`); } @@ -138,23 +148,23 @@ export async function fetchFilteredIndicateurs( // si une de ces conditions est vraie alors le filtre "parent uniquement" sera désactivé const filtrerPar = { participationAuScore: - subset === 'cae' && filters.participation_score !== undefined, + subset === 'cae' && filters.participation_score !== undefined, confidentiel: filters.confidentiel, planAction: !!filters.plan_ids?.length, service: !!filters.service_ids?.length, personne: - !!filters.pilote_user_ids?.length || !!filters.pilote_tag_ids?.length, + !!filters.pilote_user_ids?.length || !!filters.pilote_tag_ids?.length, fichesNonClassees: !!filters.fiches_non_classees, }; // sélectionne uniquement les indicateurs parent (sauf pour CRTE et perso ou si on fait // une recherche par id ou si un des filtres complémentaires est actif) const filtrerParParent = - subset !== null && - subset !== 'crte' && - subset !== 'perso' && - !searchById && - !Object.values(filtrerPar).find(v => !!v); + subset !== null && + subset !== 'crte' && + subset !== 'perso' && + !searchById && + !Object.values(filtrerPar).find(v => !!v); if (filtrerParParent) { query.is('indicateur_parents', null); @@ -172,28 +182,31 @@ export async function fetchFilteredIndicateurs( // par plan if (filtrerPar.planAction) { - query.in('fiche_action_indicateur.fiche_action.fiche_action_axe.axe.plan', filters.plan_ids!); + query.in( + 'fiche_action_indicateur.fiche_action.fiche_action_axe.axe.plan', + filters.plan_ids! + ); } // filtre les indicateurs confidentiels if (filters.confidentiel !== undefined) { - if(filters.confidentiel){ + if (filters.confidentiel) { query.not('indicateur_collectivite', 'is', null); query.eq('indicateur_collectivite.collectivite_id', collectiviteId); query.is('indicateur_collectivite.confidentiel', true); - }else{ - query.or(`indicateur_id.is.null, collectivite_id.eq.${collectiviteId})`, - { referencedTable: 'indicateur_collectivite' }); + } else { + query.or(`indicateur_id.is.null, collectivite_id.eq.${collectiviteId})`, { + referencedTable: 'indicateur_collectivite', + }); } } // par service pilote if (filtrerPar.service) { - query.eq('indicateur_service_tag.collectivite_id', collectiviteId) + query.eq('indicateur_service_tag.collectivite_id', collectiviteId); query.in('indicateur_service_tag.service_tag_id', filters.service_ids!); } - // par personne pilote if (filtrerPar.personne) { const filterParams: string[] = []; @@ -218,9 +231,9 @@ export async function fetchFilteredIndicateurs( // filtre les indicateurs complétés / à compléter if (filters.rempli !== undefined) { query.eq('indicateur_valeur.collectivite_id', collectiviteId); - if(filters.rempli){ + if (filters.rempli) { query.not('indicateur_valeur', 'is', null); - }else{ + } else { query.is('indicateur_valeur', null); } } @@ -242,19 +255,32 @@ export async function fetchFilteredIndicateurs( }); const {data, ...remaining} = await query; let rows = data || []; - if(filters.confidentiel===false){ + if (filters.confidentiel === false) { // Filtre supplémentaire sur confidentiel car pas trouvé comment faire ma condition avec postgrest - rows = rows.filter((r: any)=> - r.indicateur_collectivite.length === 0 || r.indicateur_collectivite[0].confidentiel === false); + rows = rows.filter( + (r: any) => + r.indicateur_collectivite.length === 0 || + r.indicateur_collectivite[0].confidentiel === false + ); } // Filtre sur les indicateurs d'un groupement - rows = rows.filter((r : any)=> r.groupement_id === null || - groupements.filter((g : Groupement) => g.id === r.groupement_id)[0].collectivites?.includes(collectiviteId)); + rows = rows.filter( + (r: any) => + r.groupement_id === null || + groupements + .filter((g: Groupement) => g.id === r.groupement_id)[0] + .collectivites?.includes(collectiviteId) + ); return { ...remaining, data: rows - // et conserve un id unique - .map((d : any) => ({id : d.id as number, titre : d.titre as string})) + // et conserve un id unique + .map((d: any) => ({ + id: d.id as number, + titre: d.titre as string, + estPerso: d.estPerso as boolean, + identifiant: d.identifiant_referentiel as string, + })), }; } diff --git a/packages/api/src/indicateurs/domain/definition.schema.ts b/packages/api/src/indicateurs/domain/definition.schema.ts index 5d49b90f9c..57299ff7ce 100644 --- a/packages/api/src/indicateurs/domain/definition.schema.ts +++ b/packages/api/src/indicateurs/domain/definition.schema.ts @@ -45,9 +45,11 @@ export type IndicateurDefinitionInsert = z.input; /** * Schéma zod d'un indicateur pour un affichage en graphique */ -export const IndicateurChartInfoSchema = z.object ({ - id : z.number(), - titre: z.string(), - titreLong : z.string().nullable(), - unite: z.string(), - rempli: z.boolean(), - confidentiel: z.boolean(), - participationScore: z.boolean(), - sansValeur : z.boolean().nullable(), - enfants: z.object({ - id : z.number(), - rempli : z.boolean() - }).array().nullable(), - count: z.number().nullable(), - total: z.number().nullable(), - valeurs : z.object({ - annee : z.number(), - resultat : z.number(), - objectif : z.number() - }).array().nullable() +export const IndicateurChartInfoSchema = z.object({ + id: z.number(), + titre: z.string(), + titreLong: z.string().nullable(), + unite: z.string(), + rempli: z.boolean(), + confidentiel: z.boolean(), + participationScore: z.boolean(), + sansValeur: z.boolean().nullable(), + enfants: z + .object({ + id: z.number(), + rempli: z.boolean(), + }) + .array() + .nullable(), + count: z.number().nullable(), + total: z.number().nullable(), + valeurs: z + .object({ + annee: z.number(), + resultat: z.number(), + objectif: z.number(), + }) + .array() + .nullable(), }); /** @@ -88,30 +96,31 @@ export type IndicateurChartInfo = z.input; * Schéma zod de la définition d'un indicateur */ export const definitionSchema = z.object({ - id : z.number().readonly(), - groupementId : z.number().nullable(), - collectiviteId : z.number().nullable(), // perso - identifiant : z.string().nullable().readonly(), - titre : z.string(), - titreLong : z.string().nullable(), - description : z.string().nullable(), - unite : z.string(), - borneMin : z.number().nullable(), - borneMax : z.number().nullable(), - participationScore : z.boolean().readonly(), - sansValeur : z.boolean(), - commentaire : z.string().nullable(), - confidentiel : z.boolean(), - rempli : z.boolean().readonly(), - estPerso : z.boolean().readonly(), - actions : actionSchema.array(), - type : categorieSchema.readonly(), - programmes : categorieSchema.array().readonly(), - prioritaire : z.boolean().readonly(), - thematiques : thematiqueSchema.array(), - enfants : z.number().array().readonly(), - parents : z.number().array().readonly() + id: z.number(), + groupementId: z.number().nullable(), + collectiviteId: z.number().nullable(), // perso + identifiant: z.string().nullable(), + titre: z.string(), + titreLong: z.string().nullable(), + description: z.string().nullable(), + unite: z.string(), + borneMin: z.number().nullable(), + borneMax: z.number().nullable(), + participationScore: z.boolean(), + sansValeur: z.boolean(), + commentaire: z.string().nullable(), + confidentiel: z.boolean(), + rempli: z.boolean(), + estPerso: z.boolean(), + actions: actionSchema.array(), + type: categorieSchema, + programmes: categorieSchema.array(), + prioritaire: z.boolean(), + thematiques: thematiqueSchema.array(), + enfants: z.number().array(), + parents: z.number().array(), }); + /** * Type TS de la définition d'un indicateur */ From eb409d77dfee6a67f5fd843f251979d331aca6f4 Mon Sep 17 00:00:00 2001 From: Marc Rutkowski Date: Wed, 10 Jul 2024 15:32:57 +0200 Subject: [PATCH 13/46] Ajoute des exports --- packages/api/src/index.ts | 3 +++ packages/api/src/shared/domain/index.ts | 4 ++++ packages/api/src/shared/domain/personne.schema.ts | 10 +++++----- 3 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 packages/api/src/shared/domain/index.ts diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts index 6ed4738c21..bacf185caa 100644 --- a/packages/api/src/index.ts +++ b/packages/api/src/index.ts @@ -6,6 +6,9 @@ export * from './utils/pathUtils'; export * from './utils/makeSearchString'; export * from './utils/isAllowedOrigin'; export * as Indicateurs from './indicateurs'; +export * as FicheAction from './fiche_actions'; export * as CollectiviteEngagee from './collectiviteEngagees'; export * as FicheActions from './fiche_actions'; export * from './panier_action_impact'; + +export * as SharedDomain from './shared/domain'; diff --git a/packages/api/src/shared/domain/index.ts b/packages/api/src/shared/domain/index.ts new file mode 100644 index 0000000000..77654d3f19 --- /dev/null +++ b/packages/api/src/shared/domain/index.ts @@ -0,0 +1,4 @@ +export * from './personne.schema'; +export * from './query_options.schema'; +export * from './tag.schema'; +export * from './thematique.schema'; diff --git a/packages/api/src/shared/domain/personne.schema.ts b/packages/api/src/shared/domain/personne.schema.ts index 6987d01285..0aa40cde1e 100644 --- a/packages/api/src/shared/domain/personne.schema.ts +++ b/packages/api/src/shared/domain/personne.schema.ts @@ -4,11 +4,11 @@ import {z} from 'zod'; * Schéma zod d'une personne avec id du tag ou de l'utilisateur */ export const personneSchema = z.object({ - nom : z.string().nullable().optional(), - collectiviteId : z.number(), - tagId : z.number().nullable().optional(), - userId : z.string().nullable().optional(), - idTablePassage : z.number().nullable().optional() + nom: z.string().nullable().optional(), + collectiviteId: z.number(), + tagId: z.number().nullable().optional(), + userId: z.string().nullable().optional(), + idTablePassage: z.number().nullable().optional(), }); /** From 3427efce20ee52c21dd935ca82db28b48dfb91dd Mon Sep 17 00:00:00 2001 From: Marc Rutkowski Date: Wed, 10 Jul 2024 15:34:34 +0200 Subject: [PATCH 14/46] Ajoute un package dans les deps --- app.territoiresentransitions.react/package.json | 1 + package-lock.json | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app.territoiresentransitions.react/package.json b/app.territoiresentransitions.react/package.json index b747d86ce8..19a979f9f3 100644 --- a/app.territoiresentransitions.react/package.json +++ b/app.territoiresentransitions.react/package.json @@ -58,6 +58,7 @@ "react-router-dom": "^5.2.0", "react-scripts": "^5.0.1", "react-table": "^7.8.0", + "ts-case-convert": "^2.0.7", "tss-react": "^4.9.2", "use-debounce": "^8.0.1", "uuid": "^8.3.2", diff --git a/package-lock.json b/package-lock.json index d05e67081b..1efc65a8e8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -67,6 +67,7 @@ "react-router-dom": "^5.2.0", "react-scripts": "^5.0.1", "react-table": "^7.8.0", + "ts-case-convert": "^2.0.7", "tss-react": "^4.9.2", "use-debounce": "^8.0.1", "uuid": "^8.3.2", @@ -40862,8 +40863,7 @@ "node_modules/ts-case-convert": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/ts-case-convert/-/ts-case-convert-2.0.7.tgz", - "integrity": "sha512-Kqj8wrkuduWsKUOUNRczrkdHCDt4ZNNd6HKjVw42EnMIGHQUABS4pqfy0acETVLwUTppc1fzo/yi11+uMTaqzw==", - "peer": true + "integrity": "sha512-Kqj8wrkuduWsKUOUNRczrkdHCDt4ZNNd6HKjVw42EnMIGHQUABS4pqfy0acETVLwUTppc1fzo/yi11+uMTaqzw==" }, "node_modules/ts-dedent": { "version": "2.2.0", From 7de3e113ba35bb7ffcecb95cc3987205adf333aa Mon Sep 17 00:00:00 2001 From: Marc Rutkowski Date: Wed, 10 Jul 2024 15:53:40 +0200 Subject: [PATCH 15/46] =?UTF-8?q?G=C3=A8re=20les=20anciennes=20URL=20indic?= =?UTF-8?q?ateurs=20pr=C3=A9d=C3=A9finis=20(bas=C3=A9e=20sur=20l'identifia?= =?UTF-8?q?nt=20r=C3=A9f=C3=A9rentiel=20plut=C3=B4t=20que=20l'id=20num?= =?UTF-8?q?=C3=A9rique)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/collectivite/CollectiviteRoutes.tsx | 3 +++ .../detail/usePrevAndNextIndicateurLinks.ts | 17 ++++++++++--- .../Indicateurs/lists/FiltersAndGrid.tsx | 3 ++- .../lists/IndicateurChartsGrid.tsx | 3 ++- .../indicateurs/IndicateursLies.tsx | 17 ++++--------- .../src/app/paths.ts | 25 ++++++++++++++----- 6 files changed, 44 insertions(+), 24 deletions(-) diff --git a/app.territoiresentransitions.react/src/app/pages/collectivite/CollectiviteRoutes.tsx b/app.territoiresentransitions.react/src/app/pages/collectivite/CollectiviteRoutes.tsx index 9a1e1b7248..984d4b883f 100644 --- a/app.territoiresentransitions.react/src/app/pages/collectivite/CollectiviteRoutes.tsx +++ b/app.territoiresentransitions.react/src/app/pages/collectivite/CollectiviteRoutes.tsx @@ -49,6 +49,9 @@ export const CollectiviteRoutes = () => { + + + diff --git a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/detail/usePrevAndNextIndicateurLinks.ts b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/detail/usePrevAndNextIndicateurLinks.ts index 30597e795e..b6a9753e58 100644 --- a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/detail/usePrevAndNextIndicateurLinks.ts +++ b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/detail/usePrevAndNextIndicateurLinks.ts @@ -12,9 +12,14 @@ import {useFilteredIndicateurDefinitions} from '../lists/useFilteredIndicateurDe export const usePrevAndNextIndicateurLinks = () => { // paramètres de la page courante const collectiviteId = useCollectiviteId()!; - const {vue, indicateurId} = useParams<{ + const { + vue, + indicateurIdentiantReferentielParam: identifiantReferentiel, + indicateurId, + } = useParams<{ vue: IndicateurViewParamOption; indicateurId: string; + indicateurIdentiantReferentielParam: string; }>(); // définitions @@ -24,7 +29,7 @@ export const usePrevAndNextIndicateurLinks = () => { if (['cae', 'eci', 'crte'].includes(vue)) { definitions = definitions?.sort((a, b) => // les liens doivent être dans l'ordre de la numérotation pour cae/eci/crte - (a.id as string).localeCompare(b.id as string, 'fr', { + (a.identifiant as string).localeCompare(b.identifiant as string, 'fr', { ignorePunctuation: true, numeric: true, }) @@ -34,8 +39,10 @@ export const usePrevAndNextIndicateurLinks = () => { if (!definitions?.length) return {}; // index de l'indicateur courant - const currentIndicateurIndex = definitions.findIndex( - ({id}) => id.toString() === indicateurId + const currentIndicateurIndex = definitions.findIndex(({identifiant, id}) => + identifiant + ? identifiant === identifiantReferentiel + : id.toString() === indicateurId ); // indicateur précédent @@ -46,6 +53,7 @@ export const usePrevAndNextIndicateurLinks = () => { collectiviteId, indicateurView: vue, indicateurId: prevIndicateur.id, + identifiantReferentiel: prevIndicateur.identifiant, }) : undefined; @@ -58,6 +66,7 @@ export const usePrevAndNextIndicateurLinks = () => { collectiviteId, indicateurView: vue, indicateurId: nextIndicateur.id, + identifiantReferentiel: nextIndicateur.identifiant, }) : undefined; diff --git a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/lists/FiltersAndGrid.tsx b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/lists/FiltersAndGrid.tsx index 9950ee5924..e65cf34caa 100644 --- a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/lists/FiltersAndGrid.tsx +++ b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/lists/FiltersAndGrid.tsx @@ -11,6 +11,7 @@ import { import {FiltresIndicateurs} from './FiltresIndicateurs'; import {useFilteredIndicateurDefinitions} from './useFilteredIndicateurDefinitions'; import {useIndicateursFilterState} from './useIndicateursFilterState'; +import {ID_NOUVEAU} from 'app/pages/collectivite/Indicateurs/Indicateurs'; /** Affiche les filtres et la grille d'indicateurs donnés */ export const FiltersAndGrid = ({view}: {view: IndicateurViewParamOption}) => { @@ -47,7 +48,7 @@ export const FiltersAndGrid = ({view}: {view: IndicateurViewParamOption}) => { to={makeCollectiviteIndicateursUrl({ collectiviteId: collectivite.collectivite_id, indicateurView: 'perso', - indicateurId: 'nouveau', + indicateurId: ID_NOUVEAU, })} > Créer un indicateur diff --git a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/lists/IndicateurChartsGrid.tsx b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/lists/IndicateurChartsGrid.tsx index 1905dc2c74..9ec0f82d97 100644 --- a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/lists/IndicateurChartsGrid.tsx +++ b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/lists/IndicateurChartsGrid.tsx @@ -48,6 +48,7 @@ const IndicateurChartContainer = ( collectiviteId, indicateurView: view, indicateurId: definition.id, + identifiantReferentiel: definition.identifiant, }); return ( @@ -60,7 +61,7 @@ const IndicateurChartContainer = ( readonly={isReadonly} /> ) : ( - definition.nom + definition.titre )} ); diff --git a/app.territoiresentransitions.react/src/app/pages/collectivite/PlansActions/FicheAction/FicheActionForm/indicateurs/IndicateursLies.tsx b/app.territoiresentransitions.react/src/app/pages/collectivite/PlansActions/FicheAction/FicheActionForm/indicateurs/IndicateursLies.tsx index d725ed6c77..9be21e8f5d 100644 --- a/app.territoiresentransitions.react/src/app/pages/collectivite/PlansActions/FicheAction/FicheActionForm/indicateurs/IndicateursLies.tsx +++ b/app.territoiresentransitions.react/src/app/pages/collectivite/PlansActions/FicheAction/FicheActionForm/indicateurs/IndicateursLies.tsx @@ -41,20 +41,13 @@ const IndicateursLies = ({fiche, indicateurs, onSelect, isReadonly}: Props) => {
    {indicateurs.map(indicateur => ( - collectiviteIndicateurPath - .replace(`:${collectiviteParam}`, collectiviteId.toString()) - .replace(`:${indicateurViewParam}`, indicateurView || '') - .replace(`:${indicateurIdParam}`, indicateurId?.toString() || ''); + identifiantReferentiel + ? collectiviteIndicateurReferentielPath + .replace(`:${collectiviteParam}`, collectiviteId.toString()) + .replace(`:${indicateurViewParam}`, indicateurView || '') + .replace( + `:${indicateurIdentiantReferentielParam}`, + identifiantReferentiel?.toString() || '' + ) + : collectiviteIndicateurPath + .replace(`:${collectiviteParam}`, collectiviteId.toString()) + .replace(`:${indicateurViewParam}`, indicateurView || '') + .replace(`:${indicateurIdParam}`, indicateurId?.toString() || ''); export const makeCollectiviteRootUrl = (collectiviteId: number) => collectivitePath.replace(':collectiviteId', collectiviteId.toString()); From f7822a041abb92d2032c5943ca654dd90acd689c Mon Sep 17 00:00:00 2001 From: Marc Rutkowski Date: Wed, 10 Jul 2024 15:55:25 +0200 Subject: [PATCH 16/46] Importe les nouveaux types depuis le package api --- .../pages/collectivite/Indicateurs/types.ts | 100 +++--------------- .../src/types/alias.ts | 2 +- 2 files changed, 17 insertions(+), 85 deletions(-) diff --git a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/types.ts b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/types.ts index 9e72405bf4..1d7fed0b90 100644 --- a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/types.ts +++ b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/types.ts @@ -1,102 +1,34 @@ -import {ValuesToUnion, Tables} from '@tet/api'; -import {TIndicateur} from 'types/alias'; - -type Rempli = boolean | null; - -type Thematique = { - id: number; - nom: string; -}; +import {Indicateurs} from '@tet/api'; /** type de données importées */ export type SourceType = 'resultat' | 'objectif'; /** Item dans une liste d'indicateurs (avant que le détail pour la vignette ne soit chargé) */ -export type TIndicateurListItem = { - id: string | number; - nom: string; -}; +export type TIndicateurListItem = Indicateurs.domain.IndicateurListItem; /** Item détaillé pour la vignette graphique dans une liste d'indicateurs */ -export type TIndicateurChartInfo = { - nom: string; - unite: string; - rempli: Rempli; - confidentiel: boolean; - participation_score: boolean; - titre_long?: string; - sans_valeur?: boolean | null; - enfants?: {id: string; rempli: Rempli}[] | null; - count?: number; - total?: number; -}; +export type TIndicateurChartInfo = Indicateurs.domain.IndicateurChartInfo; -/** Base indicateur générique */ -export type Indicateur = Omit< - TIndicateur, - 'indicateur_id' | 'indicateur_personnalise_id' -> & { - indicateur_id?: string | null; - indicateur_personnalise_id?: number | null; -}; +/** */ +export type Indicateur = Pick< + Indicateurs.domain.IndicateurDefinition, + 'id' | 'titre' | 'description' | 'unite' | 'identifiant' | 'estPerso' +>; -/** - * Item complet pour l'affichage du détail d'un indicateur prédéfini - * (et ses éventuels enfants) - */ -// liste explicitement les colonnes sélectionnées car on ne veut pas utiliser -// '*' lors du select afin d'exclure certaines colonnes (collectivite_id, fts) -export const INDICATEUR_PREDEFINI_COLS = [ - 'id', - 'identifiant', - 'nom', - 'description', - 'unite', - 'titre_long', - 'programmes', - 'sans_valeur', - 'valeur_indicateur', - 'participation_score', - 'type', -] as const; +export type IndicateurInsert = Indicateurs.domain.IndicateurDefinitionInsert; export type TIndicateurPredefiniEnfant = TIndicateurPredefini & { parent: string; }; -export type TIndicateurPredefini = Pick< - Tables<'indicateur_definition'>, - ValuesToUnion -> & { - action_ids: string[]; - enfants: TIndicateurPredefiniEnfant[] | undefined; - thematiques: Thematique[]; - rempli: Rempli; - isPerso: undefined; - parent: string | null | undefined; -}; - -/** - * Item complet pour l'affichage du détail d'un indicateur personnalisé - */ -export const INDICATEUR_PERSO_COLS = [ - 'id', - 'titre', - 'description', - 'unite', - 'commentaire', -] as const; +export type TIndicateurPredefini = + Indicateurs.domain.IndicateurDefinitionPredefini; -export type TIndicateurPersonnalise = Pick< - Tables<'indicateur_personnalise_definition'>, - ValuesToUnion -> & { - nom: string; // contient la valeur de `titre` - thematiques: Thematique[]; - rempli: Rempli; - isPerso: boolean; -}; +export type TIndicateurPersonnalise = + Indicateurs.domain.IndicateurDefinitionPersonalise; -export type TIndicateurDefinition = +export type TIndicateurDefinition = Indicateurs.domain.IndicateurDefinition; +/* | TIndicateurPredefini | TIndicateurPersonnalise; +*/ diff --git a/app.territoiresentransitions.react/src/types/alias.ts b/app.territoiresentransitions.react/src/types/alias.ts index 15fe0695f3..3efbc4f20e 100644 --- a/app.territoiresentransitions.react/src/types/alias.ts +++ b/app.territoiresentransitions.react/src/types/alias.ts @@ -56,7 +56,7 @@ export type TPersonneTagInsert = TablesInsert<'personne_tag'>; export type TFicheResume = Views<'fiche_resume'>; export type TPersonne = CompositeTypes<'personne'>; -export type TIndicateur = CompositeTypes<'indicateur_generique'>; + export type TFinanceurMontant = CompositeTypes<'financeur_montant'>; export type TFicheActionCibles = Enums<'fiche_action_cibles'>; From cca371e4cd1b29ba009cf2c6472f0cf8bdcba3ac Mon Sep 17 00:00:00 2001 From: Marc Rutkowski Date: Wed, 10 Jul 2024 15:56:00 +0200 Subject: [PATCH 17/46] =?UTF-8?q?Utilise=20la=20fonction=20d'api=20pour=20?= =?UTF-8?q?charger=20les=20donn=C3=A9es=20n=C3=A9cessaires=20=C3=A0=20l'af?= =?UTF-8?q?fichage=20d'un=20graphique=20indicateur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Indicateurs/chart/fixtures.ts | 40 ++++++---- .../chart/useIndicateurChartInfo.ts | 74 ++++--------------- 2 files changed, 39 insertions(+), 75 deletions(-) diff --git a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/chart/fixtures.ts b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/chart/fixtures.ts index 5475297d50..64d5cc72ab 100644 --- a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/chart/fixtures.ts +++ b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/chart/fixtures.ts @@ -1,18 +1,30 @@ import {TIndicateurValeur} from 'app/pages/collectivite/Indicateurs/useIndicateurValeurs'; export const fakeIndicateurValeurs: TIndicateurValeur[] = [ - {annee: 2016, valeur: 3, type: 'objectif'}, - {annee: 2018, valeur: 5, type: 'objectif'}, - {annee: 2019, valeur: 7, type: 'objectif'}, - {annee: 2020, valeur: 8, type: 'objectif'}, - {annee: 2021, valeur: 10, type: 'objectif'}, - {annee: 2022, valeur: 15, type: 'objectif'}, - {annee: 2023, valeur: 56555.6, type: 'objectif'}, - {annee: 2016, valeur: 1, type: 'resultat'}, - {annee: 2016, valeur: 3, type: 'resultat'}, - {annee: 2016, valeur: 4, type: 'import'}, - {annee: 2018, valeur: 3, type: 'resultat'}, - {annee: 2019, valeur: 5, type: 'resultat'}, - {annee: 2020, valeur: 1, type: 'resultat'}, - {annee: 2021, valeur: 0, type: 'resultat'}, + {source: null, commentaire: null, annee: 2016, valeur: 3, type: 'objectif'}, + {source: null, commentaire: null, annee: 2018, valeur: 5, type: 'objectif'}, + {source: null, commentaire: null, annee: 2019, valeur: 7, type: 'objectif'}, + {source: null, commentaire: null, annee: 2020, valeur: 8, type: 'objectif'}, + {source: null, commentaire: null, annee: 2021, valeur: 10, type: 'objectif'}, + {source: null, commentaire: null, annee: 2022, valeur: 15, type: 'objectif'}, + { + source: null, + commentaire: null, + annee: 2023, + valeur: 56555.6, + type: 'objectif', + }, + {source: null, commentaire: null, annee: 2016, valeur: 1, type: 'resultat'}, + {source: null, commentaire: null, annee: 2016, valeur: 3, type: 'resultat'}, + { + source: 'id-source', + commentaire: null, + annee: 2016, + valeur: 4, + type: 'import', + }, + {source: null, commentaire: null, annee: 2018, valeur: 3, type: 'resultat'}, + {source: null, commentaire: null, annee: 2019, valeur: 5, type: 'resultat'}, + {source: null, commentaire: null, annee: 2020, valeur: 1, type: 'resultat'}, + {source: null, commentaire: null, annee: 2021, valeur: 0, type: 'resultat'}, ]; diff --git a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/chart/useIndicateurChartInfo.ts b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/chart/useIndicateurChartInfo.ts index f261e237e9..bf42eb33c0 100644 --- a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/chart/useIndicateurChartInfo.ts +++ b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/chart/useIndicateurChartInfo.ts @@ -1,11 +1,7 @@ import {useQuery} from 'react-query'; import {DISABLE_AUTO_REFETCH, supabaseClient} from 'core-logic/api/supabase'; import {useCollectiviteId} from 'core-logic/hooks/params'; -import {TIndicateurChartInfo} from '../types'; - -// cas spécial pour cet indicateur -// TODO: utiliser un champ distinct dans les markdowns plutôt que cet ID "en dur" -const ID_COMPACITE_FORMES_URBAINES = 'cae_9'; +import {Indicateurs} from '@tet/api'; /** * Charge les données nécessaires à l'affichage d'un graphique indicateur. @@ -13,63 +9,19 @@ const ID_COMPACITE_FORMES_URBAINES = 'cae_9'; * Détermine notamment l'id à utiliser pour lire les valeurs à afficher dans le graphe * ou le décompte à afficher à la place du graphe. */ - -export const useIndicateurChartInfo = ( - indicateur_id: number | string, - autoRefresh?: boolean -) => { - const collectivite_id = useCollectiviteId(); +export const useIndicateurChartInfo = (indicateurId: number) => { + const collectiviteId = useCollectiviteId(); return useQuery( - ['indicateur_chart_info', collectivite_id, indicateur_id], - async () => { - if (!collectivite_id) return; - - const isPerso = typeof indicateur_id === 'number'; - const colonnes = isPerso - ? 'nom, unite, rempli, confidentiel' - : 'nom, unite, rempli, confidentiel,...definition_referentiel(sans_valeur, titre_long, participation_score), enfants(rempli)'; - - const {data, error} = await supabaseClient - .from('indicateur_definitions') - .select(colonnes) - .eq('collectivite_id', collectivite_id) - .eq(isPerso ? 'indicateur_perso_id' : 'indicateur_id', indicateur_id) - .returns(); - - if (error) { - throw new Error(error.message); - } - - const info = data?.[0] || {}; - const {sans_valeur, enfants} = info; - - // pour un indicateur composé (sans parent) - if (sans_valeur && enfants?.length) { - const count = nombreIndicateursRemplis(enfants); - const total = enfants.length; - - // afficher le graphique du 1er enfant rempli pour - // 1. COMPACITÉ DES FORMES URBAINES : au moins 1 des enfants est “complété” - if ( - (indicateur_id === ID_COMPACITE_FORMES_URBAINES && count >= 1) || - // 2. OU si tous les enfants sont remplis - count === total - ) { - const premierRempli = enfants.find(definition => definition.rempli); - return {...info, id: premierRempli?.id || indicateur_id}; - } - - // sinon renvoi le décompte des indicateurs restants à compléter - return {...info, id: indicateur_id, count, total}; - } - - // dans tous les autres cas utilise l'id de la définition - return {...info, id: indicateur_id}; - }, - autoRefresh ? undefined : DISABLE_AUTO_REFETCH + ['indicateur_chart_info', collectiviteId, indicateurId], + async () => + collectiviteId + ? Indicateurs.fetch.selectIndicateurChartInfo( + supabaseClient, + indicateurId, + collectiviteId + ) + : null, + DISABLE_AUTO_REFETCH ); }; -// compte dans une liste d'indicateurs ceux qui sont remplis -const nombreIndicateursRemplis = (liste: TIndicateurChartInfo['enfants']) => - liste?.reduce((count, d) => count + (d.rempli ? 1 : 0), 0) || 0; From 76451a5c4d4a800e1c3b2bac25ca815cf4791446 Mon Sep 17 00:00:00 2001 From: Marc Rutkowski Date: Wed, 10 Jul 2024 15:59:36 +0200 Subject: [PATCH 18/46] =?UTF-8?q?Utilise=20les=20nouvelles=20fonctions=20e?= =?UTF-8?q?t=20typage=20pour=20la=20fonction=20appliquer=20=C3=A0=20mes=20?= =?UTF-8?q?objectifs/r=C3=A9sultats?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Indicateurs/detail/ApplyOpenDataModal.tsx | 97 +++++---- .../detail/ImportSourcesSelector.tsx | 74 +++---- .../Indicateurs/detail/useApplyOpenData.ts | 190 ++++++------------ .../Indicateurs/detail/useImportSources.ts | 41 ++-- 4 files changed, 159 insertions(+), 243 deletions(-) diff --git a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/detail/ApplyOpenDataModal.tsx b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/detail/ApplyOpenDataModal.tsx index 848fad5700..b942c8441a 100644 --- a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/detail/ApplyOpenDataModal.tsx +++ b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/detail/ApplyOpenDataModal.tsx @@ -1,20 +1,17 @@ import {Alert, Checkbox} from '@tet/ui'; -import {OpenDataComparaison} from './useApplyOpenData'; -import {SourceType, TIndicateurDefinition} from '../types'; +import {Indicateurs} from '@tet/api'; +import {TIndicateurDefinition} from '../types'; import {SOURCE_TYPE_LABEL} from '../constants'; import classNames from 'classnames'; +import {IndicateurImportSource} from './useImportSources'; export type Props = { /** Indicateur concerné */ definition: TIndicateurDefinition; /** Comparaison entre les données de la collectivité et celles à appliquer */ - comparaison: OpenDataComparaison; + comparaison: Indicateurs.domain.ValeurComparaison; /** Informations sur la source de données à appliquer */ - source: { - type: SourceType; - id: string; - nom: string; - }; + source: IndicateurImportSource; /** Indique si les données en conflit doivent être écrasées */ overwrite: boolean; /** Appeler pour changer le flag indiquant si les données en conflit doivent être écrasées */ @@ -38,7 +35,9 @@ export const ApplyOpenDataModal = ({ if (!comparaison || !source || !definition) return; const {lignes, conflits} = comparaison; - const {type, nom} = source; + const {type, libelle} = source; + if (!type) return; + const sourceType = SOURCE_TYPE_LABEL[type]; return ( @@ -48,12 +47,12 @@ export const ApplyOpenDataModal = ({ setOverwrite(!overwrite)} /> @@ -71,27 +70,34 @@ export const ApplyOpenDataModal = ({ ({definition.unite}) - {sourceType} {nom} + {sourceType} {libelle} ({definition.unite}) - - {lignes.map(({annee, valeur, nouvelleValeur, conflit}) => ( - - {annee} - - {valeur === null || isNaN(valeur) - ? '' - : NumFormat.format(valeur)} - - {NumFormat.format(nouvelleValeur ?? valeur)} - - ))} + + {lignes?.map( + ({ + annee, + valeurAEcraser: valeur, + valeurAAppliquer: nouvelleValeur, + conflit, + }) => ( + + {annee} + + {valeur === null || isNaN(valeur) + ? '' + : NumFormat.format(valeur)} + + {NumFormat.format(nouvelleValeur ?? valeur)} + + ) + )} @@ -100,21 +106,34 @@ export const ApplyOpenDataModal = ({ - - {lignes.map(({annee, valeur, nouvelleValeur, conflit}) => { - const v = !conflit || overwrite ? nouvelleValeur : valeur; - return ( - - - - ); - })} + + {lignes.map( + ({ + annee, + valeurAEcraser: valeur, + valeurAAppliquer: nouvelleValeur, + conflit, + }) => { + const v = !conflit || overwrite ? nouvelleValeur : valeur; + return ( + + + + ); + } + )}
    Après validation{`\n`} - {sourceType} {nom} + {sourceType} {libelle} ({definition.unite})
    {isNaN(v) ? <>  : NumFormat.format(v)}
    + {v === null || isNaN(v) ? ( + <>  + ) : ( + NumFormat.format(v) + )} +
    diff --git a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/detail/ImportSourcesSelector.tsx b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/detail/ImportSourcesSelector.tsx index 432c0016aa..368d9fe9ad 100644 --- a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/detail/ImportSourcesSelector.tsx +++ b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/detail/ImportSourcesSelector.tsx @@ -37,42 +37,36 @@ export const ImportSourcesSelector = ({ useIndexedSources(sources); // source sélectionnée - const s = sources.find(s => s.id === currentSource); - const sourceType = getSourceType(currentSource); - const source = - (s && - sourceType && { - id: s.id, - type: sourceType, - nom: s.libelle, - }) || - undefined; - - // libellé en fonction du type de source + const source = sources.find(s => s.id === currentSource); + const sourceType = getSourceType(source); const sourceTypeLabel = getSourceTypeLabel(sourceType); + // collectivité courante + const collectivite = useCurrentCollectivite(); + const collectiviteId = collectivite?.collectivite_id || null; + // compare les données open-data avec les données courantes (si la source est externe) - const comparaison = useOpenDataComparaison({ + const openDataComparaison = useOpenDataComparaison({ + collectiviteId, definition, importSource: currentSource, - type: sourceType, }); - - // collectivité courante - const collectivite = useCurrentCollectivite(); - const collectivite_id = collectivite?.collectivite_id || null; + const comparaison = + openDataComparaison && sourceType + ? openDataComparaison[`${sourceType}s`] + : null; // détermine si le bouton "appliquer à mes objectifs/résultats" doit être affiché const canApplyOpenData = collectivite && !collectivite.readonly && currentSource !== SOURCE_COLLECTIVITE && - sourceTypeLabel && + sourceType && !!(comparaison?.conflits || comparaison?.ajouts); // mutation pour appliquer les données const {mutate: applyOpenData} = useApplyOpenData({ - collectivite_id, + collectiviteId, definition, source, }); @@ -87,29 +81,23 @@ export const ImportSourcesSelector = ({ /** onglets de sélection de la source si il y a des sources open-data dispo */ <> { const sourceId = indexToId(activeTab); setCurrentSource(sourceId); - if (sourceId !== SOURCE_COLLECTIVITE) + if (sourceId !== SOURCE_COLLECTIVITE && sourceType) trackEvent('view_open_data', { - collectivite_id: collectivite_id!, - indicateur_id: definition.id as string, + collectivite_id: collectiviteId!, + indicateur_id: String(definition.id), source_id: sourceId, - type: sourceType || 'resultat', + type: sourceType, }); }} > {indexedSources?.map(({id, libelle}) => ( - + ))} {canApplyOpenData && ( @@ -121,6 +109,7 @@ export const ImportSourcesSelector = ({ title={`Vous pouvez appliquer ces données à vos ${sourceTypeLabel} : les données seront alors disponibles dans le tableau “Mes données” et seront éditables`} footer={