from sqlalchemy.orm import relationship from sqlalchemy import Column, String, Boolean, ForeignKey from AppUser.Model.RoleModel import Role from AppUser.Model.DepartmentModel import Department from Utils.DataBase.SqlAlchemyUtils import Base class User(Base): __tablename__ = "user" id = Column(String(8), primary_key=True) email = Column(String(64), unique=True, index=True) passwd = Column(String(255)) name = Column(String(32), index=True, nullable=False) avatar = Column(String(128)) role_id = Column(String(8), ForeignKey("role.id")) department_id = Column(String(8), ForeignKey("department.id")) is_active = Column(Boolean, default=True) role = relationship(Role, backref="user") department = relationship(Department, backref="user") def to_dict(self): user_dict = {c.name: getattr(self, c.name, None) for c in self.__table__.columns} user_dict.update({"role": self.role.__str__()}) user_dict.update({"department": self.department.__str__()}) return user_dict