| from pydantic import BaseModel, ConfigDict | |
| from enum import Enum | |
| from typing import Optional | |
| class ActionEnum(str, Enum): | |
| cut_expenses = "cut_expenses" | |
| stock_essentials = "stock_essentials" | |
| invest_gold = "invest_gold" | |
| hold_cash = "hold_cash" | |
| convert_currency = "convert_currency" | |
| take_loan = "take_loan" | |
| pay_debt = "pay_debt" | |
| reduce_luxury = "reduce_luxury" | |
| build_emergency_fund = "build_emergency_fund" | |
| class EventEnum(str, Enum): | |
| none = "none" | |
| war_outbreak = "war_outbreak" | |
| oil_supply_shock = "oil_supply_shock" | |
| currency_crash = "currency_crash" | |
| food_shortage = "food_shortage" | |
| job_loss = "job_loss" | |
| import_ban = "import_ban" | |
| class Action(BaseModel): | |
| action: ActionEnum | |
| class Observation(BaseModel): | |
| model_config = ConfigDict(extra="forbid") | |
| income: float | |
| expenses: float | |
| savings: float | |
| debt: float | |
| inflation: float | |
| currency_value: float | |
| food_price_index: float | |
| fuel_price: float | |
| current_event: str | |
| month: int | |
| bankrupt: bool | |
| class Reward(BaseModel): | |
| survival_score: float | |
| savings_stability: float | |
| debt_reduction: float | |
| smart_decision_bonus: float | |
| bad_decision_penalty: float | |
| bankruptcy_penalty: float | |
| total: float | |
| class StepResponse(BaseModel): | |
| observation: Observation | |
| reward: float | |
| done: bool | |
| info: dict | |