fix: ProjectMember unique constraint, task flush before action, clean models
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
This commit is contained in:
parent
aedbe583c8
commit
d2402dc213
@ -3,7 +3,7 @@
|
||||
import uuid
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import ForeignKey, Integer, String, Text
|
||||
from sqlalchemy import ForeignKey, Integer, String, Text, UniqueConstraint
|
||||
from sqlalchemy.dialects.postgresql import ARRAY, UUID
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
|
||||
@ -32,15 +32,20 @@ class Project(Base):
|
||||
|
||||
|
||||
class ProjectMember(Base):
|
||||
"""Many-to-many: project ↔ member with role."""
|
||||
__tablename__ = "project_members"
|
||||
|
||||
project_id: Mapped[uuid.UUID] = mapped_column(
|
||||
UUID(as_uuid=True), ForeignKey("projects.id", ondelete="CASCADE"), primary_key=True
|
||||
UUID(as_uuid=True), ForeignKey("projects.id", ondelete="CASCADE"), nullable=False
|
||||
)
|
||||
member_id: Mapped[uuid.UUID] = mapped_column(
|
||||
UUID(as_uuid=True), ForeignKey("members.id", ondelete="CASCADE"), primary_key=True
|
||||
UUID(as_uuid=True), ForeignKey("members.id", ondelete="CASCADE"), nullable=False
|
||||
)
|
||||
role: Mapped[str] = mapped_column(String(20), default=MemberRole.MEMBER) # owner | member
|
||||
|
||||
project: Mapped["Project"] = relationship(back_populates="members")
|
||||
member: Mapped["Member"] = relationship()
|
||||
|
||||
__table_args__ = (
|
||||
UniqueConstraint("project_id", "member_id", name="uq_project_member"),
|
||||
)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user