33 lines
801 B
Python
33 lines
801 B
Python
from datetime import datetime
|
|
from typing import Annotated
|
|
|
|
from litestar.contrib.sqlalchemy.base import UUIDBase
|
|
from litestar.contrib.sqlalchemy.dto import SQLAlchemyDTO
|
|
from litestar.dto import DTOConfig
|
|
from sqlalchemy.orm import Mapped
|
|
|
|
from app.lib import service
|
|
from app.lib.filter_repository import FilterRepository
|
|
|
|
|
|
class City(UUIDBase):
|
|
__tablename__ = "cities" # type: ignore[assignment]
|
|
|
|
name: Mapped[str]
|
|
postal_code: Mapped[str]
|
|
created_at: Mapped[datetime]
|
|
modified_at: Mapped[datetime]
|
|
|
|
|
|
class Repository(FilterRepository[City]):
|
|
model_type = City
|
|
|
|
|
|
class Service(service.Service[City]):
|
|
repository_type = Repository
|
|
|
|
|
|
write_config = DTOConfig(exclude={"id"})
|
|
CityWriteDTO = SQLAlchemyDTO[Annotated[City, write_config]]
|
|
CityReadDTO = SQLAlchemyDTO[City]
|