"""Table invitations.""" import uuid from datetime import datetime, timezone from sqlalchemy import String, Boolean, DateTime, ForeignKey from sqlalchemy.orm import Mapped, mapped_column from app.core.database import Base class Invitation(Base): __tablename__ = "invitations" id: Mapped[uuid.UUID] = mapped_column(primary_key=True, default=uuid.uuid4) groupe_id: Mapped[uuid.UUID] = mapped_column(ForeignKey("groupes.id"), nullable=False) code: Mapped[str] = mapped_column(String(12), unique=True, nullable=False) cree_par: Mapped[uuid.UUID | None] = mapped_column(ForeignKey("membres.id")) utilise_par: Mapped[uuid.UUID | None] = mapped_column(ForeignKey("membres.id")) expire_le: Mapped[datetime] = mapped_column(DateTime(timezone=True), nullable=False) utilise: Mapped[bool] = mapped_column(Boolean, default=False) cible_type: Mapped[str | None] = mapped_column(String(40)) cible_id: Mapped[uuid.UUID | None] = mapped_column(nullable=True)