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): class CityEntity(BaseModel):
id: Optional[int] = None id: Optional[int] = None
name: str name: str
x_coordinate: Optional[float] = None
y_coordinate: Optional[float] = None
federal_district_id: Optional[int] = None federal_district_id: Optional[int] = None
federal_district_name: Optional[str] = None federal_district_name: Optional[str] = None

View File

@ -18,7 +18,9 @@ class CitiesService:
id=c.id, id=c.id,
name=c.name, name=c.name,
federal_district_id=c.federal_district_id, 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 for c in cities
] ]
@ -29,19 +31,24 @@ class CitiesService:
return CityEntity( return CityEntity(
id=city.id, id=city.id,
name=city.name, 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 return None
def create_city(self, entity: CityEntity) -> CityEntity: def create_city(self, entity: CityEntity) -> CityEntity:
city_model = City( city_model = City(
name=entity.name, 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) created_city = self.repository.create(city_model)
return CityEntity( return CityEntity(
id=created_city.id, id=created_city.id,
name=created_city.name, name=created_city.name,
x_coordinate=created_city.x_coordinate,
y_coordinate=created_city.y_coordinate,
federal_district_id=created_city.federal_district_id federal_district_id=created_city.federal_district_id
) )
@ -54,6 +61,8 @@ class CitiesService:
return CityEntity( return CityEntity(
id=city_model.id, id=city_model.id,
name=city_model.name, name=city_model.name,
x_coordinate=city_model.x_coordinate,
y_coordinate=city_model.y_coordinate,
federal_district_id=city_model.federal_district_id federal_district_id=city_model.federal_district_id
) )
return None 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 sqlalchemy.orm import relationship
from app.infrastructure.database.models import Base from app.infrastructure.database.models import Base
@ -9,6 +9,8 @@ class City(Base):
id = Column(Integer, primary_key=True, autoincrement=True) id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(VARCHAR(100), nullable=False) name = Column(VARCHAR(100), nullable=False)
x_coordinate = Column(Float)
y_coordinate = Column(Float)
federal_district_id = Column(Integer, ForeignKey('federal_districts.id')) federal_district_id = Column(Integer, ForeignKey('federal_districts.id'))