This commit is contained in:
Андрей Дувакин 2024-10-05 18:44:19 +05:00
parent 3a9490d243
commit e624bc4497
3 changed files with 17 additions and 4 deletions

View File

@ -5,6 +5,8 @@ from typing import Optional
class CityEntity(BaseModel):
id: Optional[int] = None
name: str
x_coordinate: Optional[float] = None
y_coordinate: Optional[float] = None
federal_district_id: Optional[int] = None
federal_district_name: Optional[str] = None

View File

@ -18,7 +18,9 @@ class CitiesService:
id=c.id,
name=c.name,
federal_district_id=c.federal_district_id,
federal_district_name=c.federal_district.name
federal_district_name=c.federal_district.name,
x_coordinate=c.x_coordinate,
y_coordinate=c.y_coordinate,
)
for c in cities
]
@ -29,19 +31,24 @@ class CitiesService:
return CityEntity(
id=city.id,
name=city.name,
federal_district_id=city.federal_district_id
x_coordinate=city.x_coordinate,
y_coordinate=city.y_coordinate,
federal_district_id=city.federal_district_id,
)
return None
def create_city(self, entity: CityEntity) -> CityEntity:
city_model = City(
name=entity.name,
federal_district_id=entity.federal_district_id
x_coordinate=entity.x_coordinate,
federal_district_id=entity.federal_district_id,
)
created_city = self.repository.create(city_model)
return CityEntity(
id=created_city.id,
name=created_city.name,
x_coordinate=created_city.x_coordinate,
y_coordinate=created_city.y_coordinate,
federal_district_id=created_city.federal_district_id
)
@ -54,6 +61,8 @@ class CitiesService:
return CityEntity(
id=city_model.id,
name=city_model.name,
x_coordinate=city_model.x_coordinate,
y_coordinate=city_model.y_coordinate,
federal_district_id=city_model.federal_district_id
)
return None

View File

@ -1,4 +1,4 @@
from sqlalchemy import Column, Integer, VARCHAR, ForeignKey
from sqlalchemy import Column, Integer, VARCHAR, ForeignKey, Float
from sqlalchemy.orm import relationship
from app.infrastructure.database.models import Base
@ -9,6 +9,8 @@ class City(Base):
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(VARCHAR(100), nullable=False)
x_coordinate = Column(Float)
y_coordinate = Column(Float)
federal_district_id = Column(Integer, ForeignKey('federal_districts.id'))