Files
test-litestar-addressbook/app/domain/user.py
2023-09-14 17:44:02 +02:00

33 lines
804 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 User(UUIDBase):
__tablename__ = "users" # type: ignore[assignment]
first_name: Mapped[str]
last_name: Mapped[str]
created_at: Mapped[datetime]
modified_at: Mapped[datetime]
class Repository(FilterRepository[User]):
model_type = User
class Service(service.Service[User]):
repository_type = Repository
write_config = DTOConfig(exclude={"id"})
UserWriteDTO = SQLAlchemyDTO[Annotated[User, write_config]]
UserReadDTO = SQLAlchemyDTO[User]