This commit is contained in:
Андрей Дувакин 2024-10-05 11:49:32 +05:00
parent 01df26b502
commit ce4b56ca32
3 changed files with 11 additions and 3 deletions

View File

@ -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

View File

@ -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
]

View File

@ -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()