Sprint 19: Social, UX-Verbesserungen, Nerd2Noob-Hilfe

This commit is contained in:
rene 2026-04-17 23:53:50 +02:00
parent 10d30bf565
commit 89d87030a2
18 changed files with 930 additions and 74 deletions

View file

@ -675,6 +675,20 @@ def _migrate(conn_factory):
""")
logger.info("Migration: dog_shares Tabelle bereit.")
# Event-RSVP
conn.executescript("""
CREATE TABLE IF NOT EXISTS event_rsvp (
id INTEGER PRIMARY KEY AUTOINCREMENT,
event_id INTEGER NOT NULL,
user_id INTEGER NOT NULL,
status TEXT DEFAULT 'going',
created_at TEXT DEFAULT (datetime('now')),
UNIQUE(event_id, user_id)
);
CREATE INDEX IF NOT EXISTS idx_event_rsvp_event ON event_rsvp(event_id);
""")
logger.info("Migration: event_rsvp Tabelle bereit.")
# Events: user_id NOT NULL Constraint entfernen (für Scheduler-Imports ohne User)
_ev_cols = {r[1]: r[3] for r in conn.execute("PRAGMA table_info(events)").fetchall()}
if _ev_cols.get("user_id") == 1:
@ -704,3 +718,21 @@ def _migrate(conn_factory):
ON events(external_id) WHERE external_id IS NOT NULL;
""")
logger.info("Migration: events.user_id NOT NULL Constraint entfernt.")
# Service-Angebote: Sitting + Walks Matching
conn.executescript("""
CREATE TABLE IF NOT EXISTS service_offers (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
type TEXT NOT NULL, -- 'sitting' oder 'walks'
beschreibung TEXT,
preis_pro_tag REAL,
lat REAL,
lon REAL,
radius_km INTEGER DEFAULT 10,
aktiv INTEGER DEFAULT 1,
created_at TEXT DEFAULT (datetime('now'))
);
CREATE INDEX IF NOT EXISTS idx_service_offers_type ON service_offers(type, aktiv);
CREATE INDEX IF NOT EXISTS idx_service_offers_user ON service_offers(user_id, type);
""")