11from typing import Optional , Any
2- from datetime import datetime , timedelta
3- from pydantic import ConfigDict
2+ from datetime import datetime , timezone , timedelta
3+ from pydantic import ConfigDict , Field
44from src .views .interface import ApiBaseView
55from src .models .environment import EnvironmentModel
66
77
8+ def _default_future_datetime () -> datetime :
9+ """Factory function to create timezone-aware datetime one day in the future."""
10+ return datetime .now (timezone .utc ) + timedelta (days = 1 )
11+
12+
813class EnvironmentSimulation (ApiBaseView ):
914 """
1015 Environment simulation view that handles dynamically
@@ -17,9 +22,7 @@ class EnvironmentSimulation(ApiBaseView):
1722 """
1823
1924 model_config = ConfigDict (
20- ser_json_exclude_none = True , # keep parent's behavior
21- extra = 'allow' ,
22- arbitrary_types_allowed = True
25+ ser_json_exclude_none = True , extra = 'allow' , arbitrary_types_allowed = True
2326 )
2427
2528 message : str = "Environment successfully simulated"
@@ -41,9 +44,13 @@ class EnvironmentSimulation(ApiBaseView):
4144 initial_hemisphere : Optional [str ] = None
4245 initial_ew : Optional [str ] = None
4346 max_expected_height : Optional [int ] = None
44- date : Optional [datetime ] = datetime .today () + timedelta (days = 1 )
45- local_date : Optional [datetime ] = datetime .today () + timedelta (days = 1 )
46- datetime_date : Optional [datetime ] = datetime .today () + timedelta (days = 1 )
47+ date : Optional [datetime ] = Field (default_factory = _default_future_datetime )
48+ local_date : Optional [datetime ] = Field (
49+ default_factory = _default_future_datetime
50+ )
51+ datetime_date : Optional [datetime ] = Field (
52+ default_factory = _default_future_datetime
53+ )
4754
4855 # Function attributes
4956 # discretized by rocketpy_encoder
0 commit comments