diff --git a/models/financial_contract.py b/models/financial_contract.py
index d121d1f0279ba3076fb9c339719e9f629cbfa9ea..9de3ae44af7f3865d7f9cf1bc8aee820fdbe289a 100644
--- a/models/financial_contract.py
+++ b/models/financial_contract.py
@@ -59,15 +59,25 @@ class FinancialContract(models.Model):
         # FIXME: ORM overload + design does not imply inheritance,
         #  therefore hardcoded creation of each model ? (Warranty, title and loan)
         contract = super().create(values)
+        creation_dict = {}
+
+        match self.deal_tool_model_id.model:
+            case str(s) if s == MAP_DICT.get("loan"):
+                creation_dict = {
+                    "description": contract.name,
+                    "first_term_date": datetime.now(),
+                    "payment_date": datetime.now(),
+                    "amount": contract.deal_tool_id.amount,
+                    "partner_id": contract.deal_id.partner_id.id,
+                }
+            case MAP_DICT.get("title"):
+                pass
+            case MAP_DICT.get("warranty"):
+                pass
+
         # Create financial tool associated
         financial_tool_record = self.env[contract.deal_tool_model_id.model].create(
-            {
-                "description": contract.name,
-                "first_term_date": datetime.now(),
-                "payment_date": datetime.now(),
-                "amount": contract.deal_tool_id.amount,
-                "partner_id": contract.deal_id.partner_id.id,
-            }
+            creation_dict
         )
         self.deal_tool_model_id_referenced_id = financial_tool_record.id
         return contract