"""Zdegenerowane phashe — wartości, które NIE identyfikują sceny. Audyt 2026-07-27: 73 wartości phasha występowały przy ≥10 scenach każda, łącznie przy 4375 scenach. Rekordzistka miała **892 sceny o 892 różnych tytułach i 1886 różnych performerach** — to placeholder, czarna klatka albo intro, nie odcisk sceny. Dlaczego to musi być tabela, a nie zwykłe skasowanie wierszy: sam `DELETE` nic nie załatwia, bo przy kolejnych ingestach ta sama zaślepka wraca. Trzeba PAMIĘTAĆ, że dana wartość jest bezużyteczna, i już nigdy po niej nie matchować. Do tej pory obroniła nas bramka `dur_prox` w `scene_resolver` (te 892 sceny nadal istnieją osobno, więc nic się nie skleiło), ale to zabezpieczenie drugiej linii: wystarczy, żeby dwie niepowiązane sceny miały tę samą zaślepkę i zbliżoną długość. """ from __future__ import annotations from datetime import datetime from sqlalchemy import DateTime, Integer, String, func from sqlalchemy.orm import Mapped, mapped_column from app.models.base import Base class PhashBlacklist(Base): __tablename__ = "phash_blacklist" value: Mapped[str] = mapped_column(String(128), primary_key=True) scene_count: Mapped[int] = mapped_column(Integer, nullable=False) detected_at: Mapped[datetime] = mapped_column( DateTime(timezone=True), server_default=func.now(), nullable=False )