"""Datenmodell des Plugins „dedup“. Das Plugin speichert ein Protokoll der durchgeführten Prüfungen: wer hat wann welchen Titel prüfen lassen und was wurde befunden. Die Fachdaten der geprüften Spiele liegen in den Plugin-Tabellen von „neuheiten“ und „planung“ — dedup liest diese ausschließlich lesend über die gemeinsame SQLAlchemy-Metadata und schreibt keine fremden Tabellen. """ from __future__ import annotations from datetime import datetime from sqlalchemy import JSON, DateTime, Integer, String, func from sqlalchemy.orm import Mapped, mapped_column from redaktionskern.db import Base class Pruefung(Base): """Protokolleintrag einer durchgeführten dedup-Prüfung.""" __tablename__ = "dedup_pruefungen" __table_args__ = {"extend_existing": True} id: Mapped[int] = mapped_column(primary_key=True) titel: Mapped[str] = mapped_column(String(300)) verlag: Mapped[str | None] = mapped_column(String(300)) bgg_id: Mapped[int | None] = mapped_column(Integer) #: Liste von Konflikt-Dicts ({art, beschreibung, details}) oder None. konflikte: Mapped[list | None] = mapped_column(JSON) geprueft_durch_id: Mapped[int | None] = mapped_column(Integer) geprueft_durch: Mapped[str] = mapped_column(String(100), default="") erstellt_am: Mapped[datetime] = mapped_column( DateTime, server_default=func.now() ) def __repr__(self) -> str: # pragma: no cover - Debug-Hilfe return f""