| from peewee import * |
|
|
| from src.model.BaseModel import BaseModel |
| from src.model.User import User |
| from src.model.enums.income_tax.IncomeTaxBreakdown import IncomeTaxBreakdown |
| from src.model.enums.income_tax.IncomeTaxContribution import IncomeTaxContribution |
| from src.model.enums.income_tax.IncomeTaxDeduction import IncomeTaxDeduction |
| from src.model.enums.income_tax.IncomeTaxEventType import IncomeTaxEventType |
|
|
|
|
| class IncomeTaxEvent(BaseModel): |
| """ |
| IncomeTaxEvent class |
| """ |
|
|
| user = ForeignKeyField(User, backref="income_tax_events") |
| event_id = IntegerField() |
| event_type = CharField() |
| starting_amount = BigIntegerField() |
| amount = BigIntegerField() |
| breakdown_list = TextField() |
| deduction_list = TextField() |
| contribution_list = TextField() |
|
|
| class Meta: |
| db_table = "income_tax_event" |
|
|
| def get_tax_deduction_list(self) -> list[IncomeTaxDeduction]: |
| """ |
| Get the tax deduction list |
| :return: The tax deduction list |
| """ |
| return IncomeTaxDeduction.from_string(str(self.deduction_list)) |
|
|
| def get_tax_breakdown_list(self) -> list[IncomeTaxBreakdown]: |
| """ |
| Get the tax breakdown list |
| :return: The tax breakdown list |
| """ |
| return IncomeTaxBreakdown.from_string(str(self.breakdown_list)) |
|
|
| def get_tax_contribution_list(self) -> list[IncomeTaxContribution]: |
| """ |
| Get the tax contribution list |
| :return: The tax contribution list |
| """ |
| return IncomeTaxContribution.from_string(str(self.contribution_list)) |
|
|
| def get_event_type(self) -> IncomeTaxEventType: |
| """ |
| Get the event type |
| :return: The event type |
| """ |
| return IncomeTaxEventType(self.event_type) |
|
|
| def get_event_type_description(self) -> str: |
| """ |
| Get the event type description |
| :return: The event type description |
| """ |
| return self.get_event_type().get_description() |
|
|
|
|
| IncomeTaxEvent.create_table() |
|
|