fix: ProjectMember unique constraint, task flush before action, clean models
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s

This commit is contained in:
markov 2026-02-25 11:10:48 +01:00
parent aedbe583c8
commit d2402dc213

View File

@ -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"),
)