This commit is contained in:
2024-04-21 20:46:17 +00:00
parent 0e2ecd3449
commit 2ca7787dcb
17 changed files with 249 additions and 72 deletions

View File

@@ -1,13 +1,13 @@
import uuid
from sqlalchemy import UUID
from sqlalchemy import UUID, ForeignKey
from sqlalchemy.orm import Mapped, mapped_column
from api.infrastructure.persistence.models.base import Base
class CompanyModel(Base):
__tablename__ = "companies"
__tablename__ = "company"
id: Mapped[uuid.UUID] = mapped_column(
UUID(as_uuid=True),
@@ -15,3 +15,45 @@ class CompanyModel(Base):
)
name: Mapped[str]
email: Mapped[str] = mapped_column(unique=True)
address: Mapped[str]
owner_id: Mapped[uuid.UUID] = mapped_column(
ForeignKey("users.id", ondelete="CASCADE"),
)
class DepartmentModel(Base):
__tablename__ = "department"
id: Mapped[uuid.UUID] = mapped_column(
UUID(as_uuid=True),
primary_key=True,
)
name: Mapped[str]
address: Mapped[str]
company_id: Mapped[uuid.UUID] = mapped_column(
ForeignKey("company.id", ondelete="CASCADE")
)
class CompanyDepartmentModel(Base):
__tablename__ = "company_department_m2m"
company_id: Mapped[uuid.UUID] = mapped_column(
ForeignKey("company.id", ondelete="CASCADE"),
primary_key=True,
)
department_id: Mapped[uuid.UUID] = mapped_column(
ForeignKey("department.id", ondelete="CASCADE"),
primary_key=True,
)
class DepartmentUserModel(Base):
__tablename__ = "department_user_m2m"
department_id: Mapped[uuid.UUID] = mapped_column(
ForeignKey("department.id", ondelete="CASCADE"),
primary_key=True,
)
user_id: Mapped[uuid.UUID] = mapped_column(
ForeignKey("users.id"),
primary_key=True,
)

View File

@@ -14,5 +14,6 @@ class UserModel(Base):
primary_key=True,
)
name: Mapped[str]
last_name: Mapped[str]
email: Mapped[str] = mapped_column(unique=True)
hashed_password: Mapped[str]