Services (سرویسها)¶
Services شامل منطق کسبوکار و orchestrate کننده use cases هستند.
مکان¶
ساختار¶
class OrderService:
def __init__(self, order_repo, product_repo, payment_service):
# تزریق وابستگیها
self.order_repo = order_repo
self.product_repo = product_repo
self.payment_service = payment_service
async def place_order(self, user_id: UUID, items: list) -> Order:
"""
Use case: ثبت سفارش.
Orchestrate: اعتبارسنجی، پرداخت، ذخیره.
"""
# ۱. اعتبارسنجی آیتمها
products = await self.product_repo.get_by_ids(...)
# ۲. ساخت entity سفارش
order = Order(user_id=user_id, items=items)
# ۳. پردازش پرداخت
await self.payment_service.charge(user_id, order.total)
# ۴. ذخیره و برگرداندن
return await self.order_repo.save(order)
قوانین¶
- یک service برای هر دامین -
UserService،OrderService - تزریق repositories - هرگز داخل نسازید
- برگرداندن اشیاء دامین - نه مدلهای دیتابیس