from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy import String, ForeignKey, Enum as SAEnum import enum from backend.models.base import Base, TimestampMixin class CibleType(str, enum.Enum): ip = "ip" domaine = "domaine" subnet = "subnet" class Cible(Base, TimestampMixin): __tablename__ = "cibles" id: Mapped[int] = mapped_column(primary_key=True, index=True) audit_id: Mapped[int] = mapped_column(ForeignKey("audits.id"), nullable=False, index=True) type: Mapped[CibleType] = mapped_column(SAEnum(CibleType), nullable=False) valeur: Mapped[str] = mapped_column(String(255), nullable=False) validee: Mapped[bool] = mapped_column(default=False, nullable=False) audit: Mapped["Audit"] = relationship("Audit", back_populates="cibles")