diff --git a/src/worker/stockage_manager.rs b/src/worker/stockage_manager.rs index 882bd49..9677c05 100644 --- a/src/worker/stockage_manager.rs +++ b/src/worker/stockage_manager.rs @@ -68,16 +68,30 @@ impl StockageManager { let dist = Uniform::from(0.0..1.0); let town_ids = Self::get_town_ids(pool)?; + eprintln!("[StockageManager] Prüfe {} Städte auf neue Lager", town_ids.len()); + let mut stocks_added = 0; for town_id in town_ids { - // Wahrscheinlichkeit analog: round(dist * 2160) <= 1 - let roll: f64 = dist.sample(&mut rng) * 2160.0_f64; + // Wahrscheinlichkeit: round(dist * 216) <= 1 + // Das bedeutet: 2/217 ≈ 0.92% pro Stadt pro Durchlauf + // Pro Tag (1440 Durchläufe): ~73% Chance pro Stadt + // Erhöht von 2/2161 (0.0926%) auf 2/217 (0.92%) = 10x höher + let roll: f64 = dist.sample(&mut rng) * 216.0_f64; let chance = roll.round(); if chance <= 1.0 { - Self::add_stock_for_town(pool, broker, town_id)?; + eprintln!("[StockageManager] Erstelle Lager für Stadt {}", town_id); + if let Err(err) = Self::add_stock_for_town(pool, broker, town_id) { + eprintln!("[StockageManager] Fehler beim Erstellen von Lager für Stadt {}: {}", town_id, err); + } else { + stocks_added += 1; + } } } + if stocks_added > 0 { + eprintln!("[StockageManager] {} neue Lager erstellt", stocks_added); + } + Ok(()) } @@ -109,7 +123,10 @@ impl StockageManager { .map_err(|e| DbError::new(format!("[StockageManager] DB-Verbindung fehlgeschlagen: {e}")))?; conn.prepare("add_stock", QUERY_INSERT_STOCK)?; - conn.execute("add_stock", &[&town_id])?; + let rows = conn.execute("add_stock", &[&town_id])?; + + let inserted_count = rows.len(); + eprintln!("[StockageManager] Lager für Stadt {} erstellt: {} Einträge", town_id, inserted_count); // Benachrichtige alle User in der Region let users = Self::get_region_users(&mut conn, town_id)?;