"""Der Spendenbaum: wer schon einmal etwas überwiesen hat. Ein Blatt je Person, ohne Betrag. Der Host trägt ein und nimmt weg. """ from datetime import datetime, timezone from .db import connect SCHEMA = """ CREATE TABLE IF NOT EXISTS spenden ( user_id INTEGER PRIMARY KEY, created_at TEXT NOT NULL ); """ def init(): with connect() as conn: conn.executescript(SCHEMA) def alle(): """Die Blätter, das neueste zuerst.""" with connect() as conn: rows = conn.execute( "SELECT s.user_id, u.name, s.created_at FROM spenden s " "JOIN users u ON u.id = s.user_id ORDER BY s.created_at DESC, s.user_id DESC" ).fetchall() return [dict(r) for r in rows] def eintragen(user_id): """Ein zweites Mal ändert nichts — ein Blatt je Person.""" with connect() as conn: conn.execute( "INSERT OR IGNORE INTO spenden (user_id, created_at) VALUES (?, ?)", (user_id, datetime.now(timezone.utc).isoformat(timespec="seconds")), ) def entfernen(user_id): with connect() as conn: return conn.execute("DELETE FROM spenden WHERE user_id = ?", (user_id,)).rowcount > 0