from typing import List from pydantic import BaseModel, Field class CapacityFadeInput(BaseModel): cathode_name: str cycle_numbers: List[int] = Field(..., description="List of cycle numbers") Q_discharge_list: List[float] = Field(..., description="List of discharge capacities (mAh/g)") # New impedance growth inputs: cycle_numbers_imp: List[int] = Field(..., description="List of cycle numbers for impedance growth plot") impedance_list: List[float] = Field(..., description="List of impedance values (Ω)") parameter_name: str = Field("Rct", description="Parameter name for impedance (e.g., 'Rct')") # Calendar ageing inputs temperature_C: float = Field(..., description="Storage temperature in °C") SOC_fraction: float = Field(..., description="State of charge (0–1)") storage_time_hours: float = Field(..., description="Storage time in hours") initial_capacity_mAh: float = Field(..., description="Initial full‑cell capacity (mAh)") k_fade: float = Field(..., description="Capacity fade constant k for cycle-life estimation") b_fade: float = Field(..., description="Exponent b for cycle-life estimation (0.3–0.7)")