CRUD finished

This commit is contained in:
Eden Kirin
2023-09-14 19:57:47 +02:00
parent 4875837d4e
commit e59b00e078
4 changed files with 58 additions and 35 deletions

View File

@ -1,22 +1,24 @@
from datetime import datetime
from typing import Annotated
from uuid import UUID
from litestar.contrib.sqlalchemy.base import UUIDBase
from litestar.contrib.sqlalchemy.base import UUIDAuditBase
from litestar.contrib.sqlalchemy.dto import SQLAlchemyDTO
from litestar.dto import DTOConfig
from sqlalchemy.orm import Mapped
from litestar.dto import DTOConfig, Mark, dto_field
from sqlalchemy import ForeignKey
from sqlalchemy.orm import Mapped, mapped_column, relationship
from app.domain.city import City
from app.lib import service
from app.lib.filter_repository import FilterRepository
class User(UUIDBase):
class User(UUIDAuditBase):
__tablename__ = "users" # type: ignore[assignment]
first_name: Mapped[str]
last_name: Mapped[str]
created_at: Mapped[datetime]
modified_at: Mapped[datetime]
city_id: Mapped[UUID] = mapped_column(ForeignKey("cities.id"))
city: Mapped[City] = relationship(lazy="joined", info=dto_field(Mark.READ_ONLY))
class Repository(FilterRepository[User]):
@ -27,6 +29,7 @@ class Service(service.Service[User]):
repository_type = Repository
write_config = DTOConfig(exclude={"id"})
write_config = DTOConfig(exclude={"id", "created_at", "updated_at"})
read_config = DTOConfig(exclude={"city"})
UserWriteDTO = SQLAlchemyDTO[Annotated[User, write_config]]
UserReadDTO = SQLAlchemyDTO[User]
UserReadDTO = SQLAlchemyDTO[Annotated[User, read_config]]