Hi, I looked at the documentation and fullstack as my reference for creating a DTO. Unfortunately, I am encountering an error when returning the Employee which is a child model of the UserModel
#DTO.py
from typing import Annotated
from litestar.contrib.sqlalchemy.dto import SQLAlchemyDTO
from litestar.dto import DTOConfig
from app.core.models.employee import EmployeeModel
config = DTOConfig(
exclude={
"user_account.id",
"user_account.created_at",
"user_account.updated_at",
"user_account.hashed_password",
}
)
ReadEmployeeDTO = SQLAlchemyDTO[Annotated[EmployeeModel, config]]
#employee.py
from uuid import UUID
from sqlalchemy.orm import Mapped, relationship, mapped_column
from sqlalchemy import ForeignKey, Enum
from app.core.models import PermissionModel, CustomerModel
from app.core.models.users import UserModel, UserType
class EmployeeModel(UserModel):
__tablename__ = "employees_account"
id: Mapped[UUID] = mapped_column(ForeignKey("users_account.id"), primary_key=True)
is_admin: Mapped[bool] = mapped_column(nullable=False, default=False)
department: Mapped[Department] = mapped_column(Enum(Department), nullable=False)
customer: Mapped[list["CustomerModel"]] = relationship(
"CustomerModel",
back_populates="representative",
foreign_keys=[CustomerModel.id],
)
permission: Mapped[list["PermissionModel"]] = relationship(
"PermissionModel", back_populates="user", foreign_keys=[PermissionModel.user_id]
)
__mapper_args__ = {
"polymorphic_identity": UserType.employee,
}