from abc import ABC, abstractmethod from datetime import datetime from typing import Optional class TableABC(ABC): @abstractmethod def __init__(self): self._created_at: Optional[datetime] = datetime.now().isoformat() self._modified_at: Optional[datetime] = datetime.now().isoformat() @property def created_at(self) -> datetime: return self._created_at @property def modified_at(self) -> datetime: return self._modified_at @modified_at.setter def modified_at(self, value: datetime): self._modified_at = value @property @abstractmethod def insert_string(self) -> str: pass @property @abstractmethod def udpate_string(self) -> str: pass @property @abstractmethod def delete_string(self) -> str: pass