diff --git a/src/model/planned_event.rs b/src/model/planned_event.rs index 6ecef00..2db5692 100644 --- a/src/model/planned_event.rs +++ b/src/model/planned_event.rs @@ -240,11 +240,29 @@ INNER JOIN trip_details ON planned_event.trip_details_id = trip_details.id", .unwrap(); //Okay, as planned_event can only be created with proper DB backing } - pub async fn delete(&self, db: &SqlitePool) { + pub async fn delete(&self, db: &SqlitePool) -> Result<(), String> { + if Registration::all_rower(db, self.trip_details_id) + .await + .len() + > 0 + { + return Err( + "Event kann nicht gelöscht werden, weil mind. 1 Ruderer angemeldet ist.".into(), + ); + } + if Registration::all_cox(db, self.trip_details_id).await.len() > 0 { + return Err( + "Event kann nicht gelöscht werden, weil mind. 1 Steuerperson angemeldet ist." + .into(), + ); + } + sqlx::query!("DELETE FROM planned_event WHERE id = ?", self.id) .execute(db) .await .unwrap(); //Okay, as PlannedEvent can only be created with proper DB backing + + Ok(()) } pub async fn get_ics_feed(db: &SqlitePool) -> String {