feat: departments and department sections
This commit is contained in:
@@ -31,6 +31,13 @@ user_pay_rate = Table(
|
||||
Column('user_id', ForeignKey('users.id'), primary_key=True, unique=True)
|
||||
)
|
||||
|
||||
user_department_section = Table(
|
||||
'user_department_section',
|
||||
BaseModel.metadata,
|
||||
Column('department_section_id', ForeignKey('department_sections.id'), primary_key=True),
|
||||
Column('user_id', ForeignKey('users.id'), primary_key=True)
|
||||
)
|
||||
|
||||
|
||||
class Permission(BaseModel):
|
||||
__tablename__ = 'permissions'
|
||||
@@ -135,3 +142,33 @@ class PassportImage(BaseModel):
|
||||
user: Mapped["User"] = relationship(back_populates='passport_images')
|
||||
|
||||
image_url: Mapped[str] = mapped_column(nullable=False)
|
||||
|
||||
|
||||
class Department(BaseModel):
|
||||
__tablename__ = 'departments'
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
name: Mapped[str] = mapped_column(unique=True)
|
||||
|
||||
sections: Mapped[list['DepartmentSection']] = relationship(
|
||||
back_populates='department',
|
||||
lazy='selectin',
|
||||
cascade='all, delete',
|
||||
)
|
||||
|
||||
|
||||
class DepartmentSection(BaseModel):
|
||||
__tablename__ = 'department_sections'
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
name: Mapped[str] = mapped_column(index=True)
|
||||
|
||||
department_id: Mapped[int] = mapped_column(ForeignKey('departments.id'))
|
||||
department: Mapped["Department"] = relationship(
|
||||
back_populates='sections',
|
||||
lazy='selectin',
|
||||
)
|
||||
|
||||
users: Mapped[list[User]] = relationship(
|
||||
'User',
|
||||
secondary=user_department_section,
|
||||
uselist=True,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user