From 857d7e3da1073fe9957f366c930df9585e3e58f0 Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Thu, 12 Feb 2026 16:10:11 +0000 Subject: [PATCH] =?UTF-8?q?Check=20whether=20plan=20with=20EPC=20goal=20is?= =?UTF-8?q?=20compliant=20=F0=9F=9F=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/domain/classes/plan.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/backend/app/domain/classes/plan.py b/backend/app/domain/classes/plan.py index 1efe87a5..e1215178 100644 --- a/backend/app/domain/classes/plan.py +++ b/backend/app/domain/classes/plan.py @@ -49,23 +49,24 @@ class Plan: @property def is_compliant(self) -> bool: goal: PortfolioGoal = self.scenario.record.goal - goal_value: str = self.scenario.record.goal_value match goal: case PortfolioGoal.INCREASING_EPC: - if self.record.post_epc_rating: - post_epc = self.record.post_epc_rating.value - elif self.record.post_sap_points: - post_epc = sap_to_epc(self.record.post_sap_points) - else: - return False - - if post_epc <= goal_value: - return True - - return False + return self._is_compliant_epc() case _: raise NotImplementedError def set_default(self, value: bool) -> None: self.record = replace(self.record, is_default=value) + + def _is_compliant_epc(self) -> bool: + goal_value: str = self.scenario.record.goal_value + + if self.record.post_epc_rating: + post_epc = self.record.post_epc_rating.value + elif self.record.post_sap_points: + post_epc = sap_to_epc(self.record.post_sap_points) + else: + return False + + return post_epc <= goal_value