Skip to content
This repository was archived by the owner on Apr 24, 2025. It is now read-only.

Commit a0c3772

Browse files
committed
feat(Item): added creation methods for expense and income items
1 parent 9ea2b03 commit a0c3772

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

projects/Expense-Tracker/item.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,22 @@ def create(cls, name: str, amount: float, description: str, date_str: str, categ
4141
date = datetime.strptime(date_str, "%Y-%m-%d") # Parse the date string into a datetime object
4242
return cls(item_id=item_id, name=name, amount=amount, description=description, date=date, category=category)
4343

44+
@classmethod
45+
def create_expense_item(cls, name: str, amount: float, description: str, date_str: str,
46+
category: Optional[Category] = None):
47+
if amount >= 0:
48+
raise ValueError('Expense Item cannot be positive.')
49+
50+
return cls.create(name, amount, description, date_str, category=category)
51+
52+
@classmethod
53+
def create_income_item(cls, name: str, amount: float, description: str, date_str: str,
54+
category: Optional[Category] = None):
55+
if amount <= 0:
56+
raise ValueError('Income Item cannot be negative.')
57+
58+
return cls.create(name, amount, description, date_str, category=category)
59+
4460
@classmethod
4561
def from_json_str(cls, json_str):
4662
data_dict = json.loads(json_str)

0 commit comments

Comments
 (0)