diff --git a/openbb_platform/core/openbb_core/provider/standard_models/options_chains.py b/openbb_platform/core/openbb_core/provider/standard_models/options_chains.py index f4e270bbbdd..38486d07f80 100644 --- a/openbb_platform/core/openbb_core/provider/standard_models/options_chains.py +++ b/openbb_platform/core/openbb_core/provider/standard_models/options_chains.py @@ -12,7 +12,7 @@ from openbb_core.provider.utils.descriptions import ( QUERY_DESCRIPTIONS, ) from openbb_core.provider.utils.options_chains_properties import OptionsChainsProperties -from pydantic import Field, field_validator +from pydantic import Field, field_validator, model_serializer class OptionsChainsQueryParams(QueryParams): @@ -351,3 +351,22 @@ class OptionsChainsData(OptionsChainsProperties): if isinstance(v[0], str): return [datetime.strptime(d, "%Y-%m-%d") if d else None for d in v] return v + + @model_serializer + def model_serialize(self): + """Return the serialized data.""" + data: dict = {} + for field in self.model_fields: + value = getattr(self, field) + if isinstance(value, list): + if value: # Check if the list is not empty + if isinstance(value[0], datetime): + data[field] = [str(v) if v else None for v in value] + else: + data[field] = value + else: + data[field] = value + + records = [dict(zip(data.keys(), values)) for values in zip(*data.values())] + + return records