Entities¶
Entities are the core of your domain - they represent business concepts.
Location¶
backend/internal/entities/
├── user.py
├── user_repository.py
├── product.py
└── product_repository.py
What An Entity Contains¶
@dataclass
class Order:
"""Order domain entity."""
# Identity
id: UUID
# Properties
user_id: UUID
items: List[OrderItem]
total: float
status: str
# Timestamps
created_at: datetime
# Domain Methods
def calculate_total(self) -> float:
"""Business logic lives here."""
return sum(item.price * item.quantity for item in self.items)
def can_cancel(self) -> bool:
"""Domain rules."""
return self.status in ['pending', 'processing']
Rules¶
- No framework imports - Pure Python only
- Domain logic inside - Validation, calculations
- Paired with Repository - Interface for data access