From b99fb686ddff9aa530c9f70c757e4e6a84721448 Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Mon, 16 Feb 2026 11:59:03 +0000 Subject: [PATCH] only write to db if is_default value has changed --- backend/categorisation/processor.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/backend/categorisation/processor.py b/backend/categorisation/processor.py index 445bbbc4..68e8c991 100644 --- a/backend/categorisation/processor.py +++ b/backend/categorisation/processor.py @@ -72,14 +72,22 @@ def _choose_cheapest_relevant_plan(plans: List[Plan]) -> Plan: return cheapest_plan -def _update_default_flags(plans: List[Plan], cheapest_plan: Plan) -> None: - plan_models: List[PlanModel] = [] - scenario_models: List[ScenarioModel] = [] +def _update_default_flags(plans: List["Plan"], cheapest_plan: Plan) -> None: + plans_to_update: List[Plan] = [] for plan in plans: - plan.set_default(plan.id == cheapest_plan.id) - plan_model, scenario_model = plan.to_sqlalchemy() - plan_models.append(plan_model) - scenario_models.append(scenario_model) + should_be_default: bool = plan.id == cheapest_plan.id + if plan.record.is_default != should_be_default: + plan.set_default(should_be_default) + plans_to_update.append(plan) - bulk_update_plans(plan_models, scenario_models) + if plans_to_update: + plan_models: List[PlanModel] = [] + scenario_models: List[ScenarioModel] = [] + + for plan in plans_to_update: + plan_model, scenario_model = plan.to_sqlalchemy() + plan_models.append(plan_model) + scenario_models.append(scenario_model) + + bulk_update_plans(plan_models, scenario_models)