15 lines
466 B
Python
15 lines
466 B
Python
from __future__ import annotations
|
|
import uuid
|
|
from datetime import datetime, timezone
|
|
from dataclasses import dataclass, field
|
|
|
|
|
|
@dataclass
|
|
class BaseEntity:
|
|
id: uuid.UUID = field(default_factory=uuid.uuid4)
|
|
created_at: datetime = field(default_factory=lambda: datetime.now(timezone.utc))
|
|
updated_at: datetime = field(default_factory=lambda: datetime.now(timezone.utc))
|
|
|
|
def touch(self) -> None:
|
|
self.updated_at = datetime.now(timezone.utc)
|