From ce4b56ca3222e94b9d388ed9cdafba97a26588c3 Mon Sep 17 00:00:00 2001 From: andrei Date: Sat, 5 Oct 2024 11:49:32 +0500 Subject: [PATCH] ._. --- app/core/entities/accessory.py | 1 + app/core/usecases/accessory_service.py | 5 +++-- .../database/repository/accessory_repository.py | 8 +++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/core/entities/accessory.py b/app/core/entities/accessory.py index 2d450ea..05e8ca6 100644 --- a/app/core/entities/accessory.py +++ b/app/core/entities/accessory.py @@ -9,6 +9,7 @@ class AccessoryEntity(BaseModel): weight: Optional[float] = None period: Optional[int] = None city_id: Optional[int] = None + city_name: Optional[str] = None class Config: from_attributes = True diff --git a/app/core/usecases/accessory_service.py b/app/core/usecases/accessory_service.py index b5bd4be..cd662aa 100644 --- a/app/core/usecases/accessory_service.py +++ b/app/core/usecases/accessory_service.py @@ -12,7 +12,7 @@ class AccessoriesService: self.repository = AccessoriesRepository(db) def get_all_accessories(self) -> List[AccessoryEntity]: - accessories = self.repository.get_all() + accessories = self.repository.get_with_cities_all() return [ AccessoryEntity( id=a.id, @@ -20,7 +20,8 @@ class AccessoriesService: volume=a.volume, weight=a.weight, period=a.period, - city_id=a.city_id + city_id=a.city_id, + city_name=a.city.name ) for a in accessories ] diff --git a/app/infrastructure/database/repository/accessory_repository.py b/app/infrastructure/database/repository/accessory_repository.py index 3b160f8..b4c48bd 100644 --- a/app/infrastructure/database/repository/accessory_repository.py +++ b/app/infrastructure/database/repository/accessory_repository.py @@ -1,6 +1,7 @@ -from sqlalchemy.orm import Session +from sqlalchemy.orm import Session, joinedload from app.infrastructure.database.models.accessory import Accessory + class AccessoriesRepository: def __init__(self, db: Session): self.db = db @@ -8,6 +9,11 @@ class AccessoriesRepository: def get_all(self): return self.db.query(Accessory).all() + def get_with_cities_all(self): + return self.db.query(Accessory) \ + .options(joinedload(Accessory.city)) \ + .all() + def get_by_id(self, accessory_id: int): return self.db.query(Accessory).filter(Accessory.id == accessory_id).first()