[34588f42] Performance: Massive Beschleunigung der Analyse durch SQLite-Synchronisierung

- Neue Tabelle JobParticipant speichert detaillierte CSV-Daten von Fotograf.de.
- process_reminder_analysis und process_statistics nutzen nun die lokale Datenbank statt Selenium-Crawling.
- Neuer 'Daten abgleichen' Button im Vorbereitungs-Tab integriert.
- Automatischer Quick-Login Link-Generator basierend auf Zugangscodes.
This commit is contained in:
2026-04-18 13:49:03 +00:00
parent e6061868e6
commit 472f392107
4 changed files with 417 additions and 255 deletions

View File

@@ -49,6 +49,22 @@ class ReleaseHistory(Base):
recipient_count = Column(Integer)
scheduled_time = Column(String, nullable=True)
class JobParticipant(Base):
__tablename__ = "job_participants"
id = Column(Integer, primary_key=True)
job_id = Column(String, index=True)
child_id = Column(String, nullable=True)
vorname_kind = Column(String, nullable=True)
nachname_kind = Column(String, nullable=True)
vorname_eltern = Column(String, nullable=True)
nachname_eltern = Column(String, nullable=True)
email_eltern = Column(String, nullable=True)
zugangscode = Column(String, index=True)
gruppe = Column(String, nullable=True)
logins = Column(Integer, default=0)
has_orders = Column(Integer, default=0) # 0 for false, 1 for true
last_synced = Column(DateTime, default=datetime.datetime.utcnow)
Base.metadata.create_all(bind=engine)
def get_db():