Coverage for src / mysingle / core / base / models.py: 0%
18 statements
« prev ^ index » next coverage.py v7.12.0, created at 2025-12-02 00:58 +0900
« prev ^ index » next coverage.py v7.12.0, created at 2025-12-02 00:58 +0900
1from datetime import UTC, datetime
3from beanie import Document, Insert, Save, Update, before_event
4from pydantic import Field
7class BaseDoc(Document):
8 """Base Document model."""
11class BaseDocWithUserId(BaseDoc):
12 """Base User Document model."""
14 user_id: str
17class BaseTimeDoc(BaseDoc):
18 """Base Document model with created_at and updated_at fields."""
20 created_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
21 updated_at: datetime | None = Field(default_factory=lambda: datetime.now(UTC))
23 @before_event([Insert, Save])
24 def set_created_at(self):
25 self.created_at = datetime.now(UTC)
26 self.updated_at = self.created_at
28 @before_event([Update])
29 def set_updated_at(self):
30 self.updated_at = datetime.now(UTC)
33class BaseTimeDocWithUserId(BaseTimeDoc):
34 """Base User Document model with created_at and updated_at fields."""
36 user_id: str