from __future__ import annotations from datetime import datetime from typing import Any, Optional class ApiKey: def __init__(self, id: str, key: str, enabled: bool, created_at: datetime | str | None, updated_at: datetime | str | None, deleted_at: datetime | str | None, ) -> None: self.id = id self.key = key self.enabled = enabled self.created_at = self._parse_datetime(created_at) self.updated_at = self._parse_datetime(updated_at) self.deleted_at = self._parse_datetime(deleted_at) if deleted_at is not None else None def __str__(self) -> str: return f"{self.id} - {self.key} - {self.enabled} - {self.created_at} - {self.updated_at} - {self.deleted_at}" @staticmethod def _parse_datetime(value: Any) -> Any: if isinstance(value, datetime): return value if isinstance(value, str): try: return datetime.fromisoformat(value) except ValueError: return value