This commit is contained in:
Mateusz Gruszczyński
2026-06-03 13:18:08 +02:00
parent 7cb2eddafe
commit 3a4e1b90e2
6 changed files with 107 additions and 19 deletions
+5 -1
View File
@@ -33,6 +33,7 @@ class Overpayment(BaseModel):
repeat: Literal["once", "monthly", "yearly"] = "once"
until_month: int | None = Field(default=None, ge=1)
commission_percent: float = Field(default=0, ge=0, le=20, description="Prowizja od nadplaty w procentach")
commission_until_month: int | None = Field(default=None, ge=1, description="Ostatni miesiac naliczania prowizji od nadplaty")
class HistoricalMonth(BaseModel):
@@ -46,7 +47,8 @@ class HistoricalMonth(BaseModel):
class SimulationRequest(BaseModel):
principal: float = Field(gt=0)
years: int = Field(ge=1, le=50)
years: int = Field(default=25, ge=1, le=50)
term_months: int | None = Field(default=None, ge=1, le=600, description="Okres kredytu w miesiacach")
margin: float = Field(ge=0, le=20, default=2.0)
base_rate: float = Field(ge=0, le=30, default=5.75)
installment_type: InstallmentType = InstallmentType.equal
@@ -54,6 +56,8 @@ class SimulationRequest(BaseModel):
loan_start_date: date = Field(default_factory=date.today)
due_day: int = Field(default=5, ge=1, le=28, description="Dzien splaty raty")
move_due_date_to_business_day: bool = True
overpayment_protection_months: int | None = Field(default=None, ge=1, description="Okres ochronny prowizji od nadplat w miesiacach")
overpayment_protection_commission_percent: float = Field(default=0, ge=0, le=20, description="Domyslna prowizja od nadplat w okresie ochronnym")
rate_changes: list[RateChange] = Field(default_factory=list)
overpayments: list[Overpayment] = Field(default_factory=list)
historical_months: list[HistoricalMonth] = Field(default_factory=list)