Skip to content

Commit

Permalink
feat: add occasion questions + refactor usage category
Browse files Browse the repository at this point in the history
For now, the occasion is only used for the cost part
not for the carbon footprint.
  • Loading branch information
EmileRolley committed Aug 15, 2024
1 parent ac80665 commit 95af025
Show file tree
Hide file tree
Showing 10 changed files with 382 additions and 150 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@ index.js
doc/dist/
publicodes-voiture.model.json
publicodes-voiture.personas.json
publicodes-voiture.ui.json
test.ts
6 changes: 3 additions & 3 deletions build.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { getModelFromSource } from "@publicodes/tools/compilation"
import Engine from "publicodes"
import getUI from "./scripts/compile-ui.js"
import getPersonas from "./scripts/compile-personas.js"
import generateCombinations from "./scripts/generate-empreinte.js"
import generateAlternatives from "./scripts/generate-alternatives.js"

function check(rules, step) {
try {
Expand Down Expand Up @@ -33,10 +33,10 @@ const resolvedRules = Object.fromEntries(
}),
)

generateCombinations(resolvedRules)
generateAlternatives(resolvedRules)
console.log(`✅ Combinations generated`)

check(resolvedRules, "generating combinations")
check(resolvedRules, "generating alternatives")

writeFileSync(modelDestPath, JSON.stringify(resolvedRules))
console.log(`✅ ${modelDestPath} generated`)
Expand Down
36 changes: 35 additions & 1 deletion personas.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ grandes vacances familiales:
usage . vacances . distance: 2000
usage . vacances . nb personne: 4

famille usage régulier:
famille usage régulier diesel:
titre: Usage régulier en famille (diesel)
description: |
Personne qui utilise une voiture diesel pour les trajets quotidiens et
Expand All @@ -39,3 +39,37 @@ famille usage régulier:
usage . quotidien . nb personne: 2.5
usage . vacances . distance: 2000
usage . vacances . nb personne: 4

famille usage régulier biocarburant:
titre: Usage régulier en famille (biocarburant)
description: |
Personne qui utilise une voiture diesel pour les trajets quotidiens et
les vacances en famille.
Elle a besoin d'une voiture spacieuse pour transporter ses enfants à l'école
et aller au travail.
situation:
voiture . motorisation: thermique
voiture . thermique . carburant: essence E85
voiture . gabarit: berline
usage . quotidien . distance: 33
usage . quotidien . nb personne: 2.5
usage . vacances . distance: 2000
usage . vacances . nb personne: 4

famille usage régulier moyenne biocarburant:
titre: Usage régulier en famille (moyenne/biocarburant)
description: |
Personne qui utilise une voiture diesel pour les trajets quotidiens et
les vacances en famille.
Elle a besoin d'une voiture spacieuse pour transporter ses enfants à l'école
et aller au travail.
situation:
voiture . motorisation: thermique
voiture . thermique . carburant: essence E85
voiture . gabarit: moyenne
usage . quotidien . distance: 33
usage . quotidien . nb personne: 2.5
usage . vacances . distance: 2000
usage . vacances . nb personne: 4
13 changes: 10 additions & 3 deletions rules/cout.publicodes
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,21 @@ coût . voiture:
Nous utilisons le calcul du `coût au km` du modèle de
[futur.eco](https://futur.eco) pour calculer le coût total de votre
voiture.
formule: usage . distance annuelle * futureco . voiture . coûts au km
formule: usage . km annuels * futureco . voiture . coûts au km
unité: €/an
contexte:
futureco . trajet . voyageurs: 1
futureco . voiture . consommation thermique: voiture . thermique . consommation
futureco . voiture . km annuels . par défaut: usage . distance annuelle
futureco . voiture . km annuels . par défaut: usage . km annuels
futureco . voiture . prix d'achat:
valeur:
# Permet de forcer l'utilisation du prix d'achat estimé lors des
# recalculs pour les combinaisons.
#
# Par défaut, si la personne n'a pas renseigné le prix d'achat, on avec
# le mécansime `plancher`, la règle `prix d'achat` est évaluée à 1.
variations:
- si: voiture . prix d'achat
- si: voiture . prix d'achat > 1
alors: voiture . prix d'achat
- sinon: voiture . prix d'achat . estimé
futureco . voiture . motorisation:
Expand All @@ -35,4 +38,8 @@ coût . voiture:
- si: voiture . thermique . carburant = 'essence E85'
alors: "'biocarburant'"
- sinon: voiture . motorisation
# TODO: manage hybride
futureco . trajet voiture . prix carburant: voiture . thermique . prix carburant
futureco . voiture . occasion: voiture . occasion
futureco . voiture . occasion . année de fabrication: voiture . occasion . année de fabrication

6 changes: 3 additions & 3 deletions rules/empreinte.publicodes
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ empreinte . voiture:
pour calculer l'empreinte carbone de votre voiture.
valeur: ngc . transport . voiture
contexte:
# TODO: on ne prend pas en compte la durée de vie
ngc . transport . voiture . utilisateur: "'propriétaire'"
ngc . transport . voiture . gabarit: voiture . gabarit
ngc . transport . voiture . motorisation: voiture . motorisation
ngc . transport . voiture . thermique . carburant: voiture . thermique . carburant
ngc . transport . voiture . km: usage . distance annuelle
ngc . transport . voiture . km: usage . km annuels
ngc . transport . voiture . thermique . consommation aux 100: voiture . thermique . consommation
# le nombre de passagers est reflété dans la distance totale
ngc . transport . voiture . voyageurs: 1
unité: kgCO2e/an/personne
unité: kgCO2e/an
Loading

0 comments on commit 95af025

Please sign in to comment.