From d82268779b1d126537d5057e941477368946f934 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Arod?= Date: Sat, 7 Sep 2024 15:18:54 +0200 Subject: [PATCH] feat: supprime stats v1 --- .../publish/v1/publishStatisticsToNotion.ts | 2 +- src/notion/publish/v1/statPublishOptions.ts | 106 ------------ src/statistiques/v1/ELStats.ts | 47 +---- src/statistiques/v1/computeELPeriodStats.ts | 19 +-- src/statistiques/v1/computeELStatsAtDate.ts | 160 +----------------- .../v1/computeELStatsOverPeriod.ts | 29 ---- 6 files changed, 6 insertions(+), 357 deletions(-) delete mode 100644 src/statistiques/v1/computeELStatsOverPeriod.ts diff --git a/src/notion/publish/v1/publishStatisticsToNotion.ts b/src/notion/publish/v1/publishStatisticsToNotion.ts index 25b2507..4015a4b 100644 --- a/src/notion/publish/v1/publishStatisticsToNotion.ts +++ b/src/notion/publish/v1/publishStatisticsToNotion.ts @@ -6,7 +6,7 @@ import { publishPeriodStats } from "./publishPeriodStats"; import { publishStatsActuelles } from "./publishStatsActuelles"; export const statsPageId = "2b91cd90e3694e96bb196d69aeca59b1"; -export const currentStatsHeading = "Statistiques actuelles"; +export const currentStatsHeading = "Statistiques v1"; const yearStatsDb = "4b19a72aa07840eab948525ea41878ee"; const monthStatsDb = "8418a8a4a7544f6a8c54e6003be7efe5"; diff --git a/src/notion/publish/v1/statPublishOptions.ts b/src/notion/publish/v1/statPublishOptions.ts index 46fc990..799beec 100644 --- a/src/notion/publish/v1/statPublishOptions.ts +++ b/src/notion/publish/v1/statPublishOptions.ts @@ -10,112 +10,6 @@ export function statPublishOptions( const statPropsPublishOptions: { [jsPropName in AllStatsPropNames]: StatPublishOptions; } = { - nbFamilleResistantes: { - notionPropName: "Nb familles résistantes", - }, - - nbFamilleResistantesSurPeriode: { - notionPropName: "Nb familles résistantes sur période", - }, - nbFamilleResistantesOrEx: { - notionPropName: "Nb familles résistantes ou ex-résistantes", - }, - dureeResistanceMoyenne: { - notionPropName: "Durée résistance moyenne", - unit: "j", - }, - dureeResistanceMediane: { - notionPropName: "Durée résistance médiane", - unit: "j", - }, - pourcentageEntreeApresMiseEnDemeure: { - notionPropName: "% d'entrées après mises en demeure", - unit: "%", - }, - - nbFamillesMisesEnDemeure: { - notionPropName: "Nb familles mises en demeure", - }, - pourcentageFamillesMisesEnDemeure: { - notionPropName: "% de familles mises en demeure", - unit: "%", - }, - - pourcentageEntreeApresMiseEnDemeureSurPeriode: { - notionPropName: "% d'entrées après mises en demeure sur période", - }, - nbFamillesCompositionPenale: { - notionPropName: "Nb familles avec composition pénale", - }, - pourcentageFamillesCompositionPenale: { - notionPropName: "% familles avec composition pénale", - unit: "%", - }, - nbFamillesCompositionPenaleAcceptee: { - notionPropName: "Nb familles avec composition pénale acceptée", - }, - pourcentageCompositionPenaleAcceptee: { - notionPropName: "% des composition pénale qui sont acceptée", - unit: "%", - }, - pourcentageFamillesCompositionPenaleAcceptee: { - notionPropName: "% familles avec composition pénale acceptée", - unit: "%", - }, - nbFamillesCompositionPenaleRefusee: { - notionPropName: "Nb familles avec composition pénale refusée", - }, - pourcentageCompositionPenaleRefusee: { - notionPropName: "% des composition pénale qui sont refusée", - unit: "%", - }, - pourcentageFamillesCompositionPenaleRefusee: { - notionPropName: "% familles avec composition pénale refusée", - unit: "%", - }, - - nbFamillesCRPC: { - notionPropName: "Nb familles avec CRPC", - }, - pourcentageFamillesCRPC: { - notionPropName: "% familles avec CRPC", - unit: "%", - }, - nbFamillesCRPCAcceptee: { - notionPropName: "Nb familles avec CRPC acceptée", - }, - pourcentageCRPCAcceptee: { - notionPropName: "% des CRPC qui sont acceptée", - unit: "%", - }, - pourcentageFamillesCRPCAcceptee: { - notionPropName: "% familles avec CRPC acceptée", - unit: "%", - }, - nbFamillesCRPCRefusee: { - notionPropName: "Nb familles avec CRPC refusée", - }, - pourcentageCRPCRefusee: { - notionPropName: "% des CRPC qui sont refusée", - unit: "%", - }, - pourcentageFamillesCRPCRefusee: { - notionPropName: "% familles avec CRPC refusée", - unit: "%", - }, - - nbFamillesTribunalCorrectionnel: { - notionPropName: "Nb familles passées au tribunal correctionnel", - }, - nbFamillesTribunalCorrectionnelProgramme: { - notionPropName: "Nb familles tribunal correctionnel programmé", - unit: "%", - }, - pourcentageFamillesTribunalCorrectionnel: { - notionPropName: "% familles passées au tribunal correctionnel", - unit: "%", - }, - nbFamillesProcedureCivile: { notionPropName: "Nb familles avec procédure civile", }, diff --git a/src/statistiques/v1/ELStats.ts b/src/statistiques/v1/ELStats.ts index 9de9881..81b4c22 100644 --- a/src/statistiques/v1/ELStats.ts +++ b/src/statistiques/v1/ELStats.ts @@ -6,42 +6,6 @@ export type ELStats = { }; export type ELStatsAtDate = { - // Résistance - nbFamilleResistantes: V; - nbFamilleResistantesOrEx: V; - dureeResistanceMoyenne: V; - dureeResistanceMediane: V; - pourcentageEntreeApresMiseEnDemeure: V; - - // Pénale - nbFamillesMisesEnDemeure: V; - pourcentageFamillesMisesEnDemeure: V; - - // Pénale > Composition Pénale - nbFamillesCompositionPenale: V; - pourcentageFamillesCompositionPenale: V; - nbFamillesCompositionPenaleAcceptee: V; - pourcentageCompositionPenaleAcceptee: V; - pourcentageFamillesCompositionPenaleAcceptee: V; - nbFamillesCompositionPenaleRefusee: V; - pourcentageCompositionPenaleRefusee: V; - pourcentageFamillesCompositionPenaleRefusee: V; - - // Pénale > CRPC - nbFamillesCRPC: V; - pourcentageFamillesCRPC: V; - nbFamillesCRPCAcceptee: V; - pourcentageCRPCAcceptee: V; - pourcentageFamillesCRPCAcceptee: V; - nbFamillesCRPCRefusee: V; - pourcentageCRPCRefusee: V; - pourcentageFamillesCRPCRefusee: V; - - // Pénale > Tribunal Correctionnel - nbFamillesTribunalCorrectionnel: V; - pourcentageFamillesTribunalCorrectionnel: V; - nbFamillesTribunalCorrectionnelProgramme: V; - // Civile nbFamillesProcedureCivile: V; pourcentageFamillesProcedureCivile: V; @@ -65,12 +29,7 @@ export type ELStatsPeriod = { stats: PeriodStatsValues; }; -export type PeriodStatsValues = ELStatsAtDate | ELStatsOverPeriod; - -export type ELStatsOverPeriod = { - pourcentageEntreeApresMiseEnDemeureSurPeriode: V; - nbFamilleResistantesSurPeriode: V; -}; +export type PeriodStatsValues = ELStatsAtDate; export type ValueWithEvol = { value: number; @@ -78,6 +37,4 @@ export type ValueWithEvol = { evolPercent: number; }; -export type AllStatsPropNames = - | keyof ELStatsOverPeriod - | keyof ELStatsAtDate; +export type AllStatsPropNames = keyof ELStatsAtDate; diff --git a/src/statistiques/v1/computeELPeriodStats.ts b/src/statistiques/v1/computeELPeriodStats.ts index 95e9d75..1a49002 100644 --- a/src/statistiques/v1/computeELPeriodStats.ts +++ b/src/statistiques/v1/computeELPeriodStats.ts @@ -1,14 +1,8 @@ import { Famille } from "../../data/Famille"; import { IdentifiedPeriod } from "../../period/IdentifiedPeriod"; import { Period } from "../../period/Period"; -import { - ELStatsOverPeriod, - ELStatsPeriod, - PeriodStatsValues, - ValueWithEvol, -} from "./ELStats"; +import { ELStatsPeriod, PeriodStatsValues, ValueWithEvol } from "./ELStats"; import { computeELStatsAtDate } from "./computeELStatsAtDate"; -import { computeELStatsOverPeriod } from "./computeELStatsOverPeriod"; export function computeELPeriodStats( familles: Famille[], @@ -37,16 +31,7 @@ function computePeriodStatsNumberValues( familles: Famille[], period: Period ): PeriodStatsValues { - const statsAtPeriodEnd = computeELStatsAtDate(familles, period.end); - - const statsOverPeriod: ELStatsOverPeriod = computeELStatsOverPeriod( - familles, - period - ); - return { - ...statsAtPeriodEnd, - ...statsOverPeriod, - }; + return computeELStatsAtDate(familles, period.end); } function computeStatsEvol( diff --git a/src/statistiques/v1/computeELStatsAtDate.ts b/src/statistiques/v1/computeELStatsAtDate.ts index faa9e68..086771b 100644 --- a/src/statistiques/v1/computeELStatsAtDate.ts +++ b/src/statistiques/v1/computeELStatsAtDate.ts @@ -1,104 +1,19 @@ import { - isCRPC, - isCompositionPenale, isEvenementBefore, isProcedureCivile, } from "../../data/EvenementFamille"; -import { - Famille, - dureeResistanceInDays, - isExResistant, - isResistant, -} from "../../data/Famille"; -import { average } from "../../utils/math/average"; -import { median } from "../../utils/math/median"; +import { Famille, isExResistant, isResistant } from "../../data/Famille"; import { percent } from "../../utils/math/percent"; -import { notNull } from "../../utils/notNull"; import { ELStatsAtDate } from "./ELStats"; -import { computePourcentageEntreeApresMiseEnDemeure } from "./computePourcentageEntreeApresMiseEnDemeure"; export function computeELStatsAtDate( familles: Famille[], asOfDate: Date ): ELStatsAtDate { - const familleResistantes = familles.filter((f) => isResistant(f, asOfDate)); const familleResistantesOrEx = familles.filter( (famille) => isResistant(famille, asOfDate) || isExResistant(famille, asOfDate) ); - const dureesResistances = familles - .map((famille) => dureeResistanceInDays(famille, asOfDate)) - .filter(notNull); - - const nbFamillesMiseEnDemeure = familleResistantesOrEx.filter((f) => - f.Evenements.find((e) => e.Type === "Mise en demeure de scolarisation") - ).length; - - const famillesAvecCompositionPenale = familleResistantesOrEx.filter( - (famille) => - famille.Evenements.find( - (evt) => isCompositionPenale(evt) && isEvenementBefore(evt, asOfDate) - ) - ); - - const famillesAvecCompositionPenaleAcceptee = familleResistantesOrEx.filter( - (famille) => - famille.Evenements.find( - (evt) => - isCompositionPenale(evt) && - evt.Type === "Composition pénale acceptée" && - isEvenementBefore(evt, asOfDate) - ) - ); - const famillesAvecCompositionPenaleRefusee = familleResistantesOrEx.filter( - (famille) => - famille.Evenements.find( - (evt) => - isCompositionPenale(evt) && - evt.Type === "Composition pénale refusée" && - isEvenementBefore(evt, asOfDate) - ) - ); - - const famillesAvecCRPC = familleResistantesOrEx.filter((famille) => - famille.Evenements.find( - (evt) => isCRPC(evt) && isEvenementBefore(evt, asOfDate) - ) - ); - const famillesAvecCRPCAcceptee = familleResistantesOrEx.filter((famille) => - famille.Evenements.find( - (evt) => - isCRPC(evt) && - evt.Type === "Acceptation CRPC" && - isEvenementBefore(evt, asOfDate) - ) - ); - const famillesAvecCRPCRefusee = familleResistantesOrEx.filter((famille) => - famille.Evenements.find( - (evt) => - isCRPC(evt) && - evt.Type === "Refus CRPC" && - isEvenementBefore(evt, asOfDate) - ) - ); - - const famillesPasseesTribunalCorrectionnel = familleResistantesOrEx.filter( - (famille) => - famille.Evenements.find( - (evt) => - evt.Type === "Tribunal correctionnel" && - isEvenementBefore(evt, asOfDate) - ) - ); - - const famillesTribunalCorrectionnelProgramme = familleResistantesOrEx.filter( - (famille) => - famille.Evenements.find( - (evt) => - evt.Type === "Tribunal correctionnel" && - !isEvenementBefore(evt, asOfDate) - ) - ); const famillesAvecProcedureCivile = familleResistantesOrEx.filter((famille) => famille.Evenements.find( @@ -133,79 +48,6 @@ export function computeELStatsAtDate( f.Evenements.find((e) => e.Type === "Contrôle URSSAF") ); const elStats: ELStatsAtDate = { - nbFamilleResistantes: familleResistantes.length, - nbFamilleResistantesOrEx: familleResistantesOrEx.length, - - dureeResistanceMoyenne: average(dureesResistances), - dureeResistanceMediane: median(dureesResistances), - pourcentageEntreeApresMiseEnDemeure: - computePourcentageEntreeApresMiseEnDemeure(familleResistantesOrEx), - - nbFamillesMisesEnDemeure: nbFamillesMiseEnDemeure, - pourcentageFamillesMisesEnDemeure: percent( - nbFamillesMiseEnDemeure, - familleResistantesOrEx.length - ), - - nbFamillesCompositionPenale: famillesAvecCompositionPenale.length, - pourcentageFamillesCompositionPenale: percent( - famillesAvecCompositionPenale.length, - familleResistantesOrEx.length - ), - nbFamillesCompositionPenaleAcceptee: - famillesAvecCompositionPenaleAcceptee.length, - pourcentageCompositionPenaleAcceptee: percent( - famillesAvecCompositionPenaleAcceptee.length, - famillesAvecCompositionPenale.length - ), - pourcentageFamillesCompositionPenaleAcceptee: percent( - famillesAvecCompositionPenaleAcceptee.length, - familleResistantesOrEx.length - ), - nbFamillesCompositionPenaleRefusee: - famillesAvecCompositionPenaleRefusee.length, - pourcentageCompositionPenaleRefusee: percent( - famillesAvecCompositionPenaleRefusee.length, - famillesAvecCompositionPenale.length - ), - pourcentageFamillesCompositionPenaleRefusee: percent( - famillesAvecCompositionPenaleRefusee.length, - familleResistantesOrEx.length - ), - - nbFamillesCRPC: famillesAvecCRPC.length, - pourcentageFamillesCRPC: percent( - famillesAvecCRPC.length, - familleResistantesOrEx.length - ), - nbFamillesCRPCAcceptee: famillesAvecCRPCAcceptee.length, - pourcentageCRPCAcceptee: percent( - famillesAvecCRPCAcceptee.length, - famillesAvecCRPC.length - ), - pourcentageFamillesCRPCAcceptee: percent( - famillesAvecCRPCAcceptee.length, - familleResistantesOrEx.length - ), - nbFamillesCRPCRefusee: famillesAvecCRPCRefusee.length, - pourcentageCRPCRefusee: percent( - famillesAvecCRPCRefusee.length, - famillesAvecCRPC.length - ), - pourcentageFamillesCRPCRefusee: percent( - famillesAvecCRPCRefusee.length, - familleResistantesOrEx.length - ), - - nbFamillesTribunalCorrectionnel: - famillesPasseesTribunalCorrectionnel.length, - pourcentageFamillesTribunalCorrectionnel: percent( - famillesPasseesTribunalCorrectionnel.length, - familleResistantesOrEx.length - ), - nbFamillesTribunalCorrectionnelProgramme: - famillesTribunalCorrectionnelProgramme.length, - nbFamillesProcedureCivile: famillesAvecProcedureCivile.length, pourcentageFamillesProcedureCivile: percent( famillesAvecProcedureCivile.length, diff --git a/src/statistiques/v1/computeELStatsOverPeriod.ts b/src/statistiques/v1/computeELStatsOverPeriod.ts deleted file mode 100644 index f9449ae..0000000 --- a/src/statistiques/v1/computeELStatsOverPeriod.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { - Famille, - isResistantOverPeriod, - periodOfResistance, -} from "../../data/Famille"; -import { Period } from "../../period/Period"; -import { isPeriodContaining } from "../../period/isPeriodContaining"; -import { ELStatsOverPeriod } from "./ELStats"; -import { computePourcentageEntreeApresMiseEnDemeure } from "./computePourcentageEntreeApresMiseEnDemeure"; - -export function computeELStatsOverPeriod( - familles: Famille[], - period: Period -): ELStatsOverPeriod { - const famillesEntreesSurPeriode = familles.filter((f) => { - const por = periodOfResistance(f); - return por != null && isPeriodContaining(period, por.start); - }); - - const nbFamilleResistantesSurPeriode = familles.filter((famille) => - isResistantOverPeriod(famille, period) - ).length; - const pourcentageEntreeApresMiseEnDemeureSurPeriode = - computePourcentageEntreeApresMiseEnDemeure(famillesEntreesSurPeriode); - return { - nbFamilleResistantesSurPeriode, - pourcentageEntreeApresMiseEnDemeureSurPeriode, - }; -}