""" Modelli Label e MessageLabel – tagging messaggi. """ import uuid from sqlalchemy import CHAR, ForeignKey, Index, String, UniqueConstraint from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import Mapped, mapped_column from app.database import Base class Label(Base): __tablename__ = "labels" id: Mapped[uuid.UUID] = mapped_column( UUID(as_uuid=True), primary_key=True, default=uuid.uuid4 ) tenant_id: Mapped[uuid.UUID] = mapped_column( UUID(as_uuid=True), ForeignKey("tenants.id", ondelete="CASCADE"), nullable=False ) name: Mapped[str] = mapped_column(String(100), nullable=False) color: Mapped[str | None] = mapped_column(CHAR(7), nullable=True) # hex #RRGGBB __table_args__ = ( UniqueConstraint("tenant_id", "name", name="uq_label_name_tenant"), ) def __repr__(self) -> str: return f"