use chrono::NaiveDate; use serde::Serialize; use sqlx::SqlitePool; #[derive(Serialize)] pub struct PlannedEvent { id: i64, name: String, planned_amount_cox: i64, allow_guests: bool, trip_details_id: i64, planned_starting_time: String, max_people: i64, day: String, notes: Option, } impl PlannedEvent { pub async fn get_for_day(db: &SqlitePool, day: NaiveDate) -> Vec { let day = format!("{}", day); sqlx::query_as!( PlannedEvent, " SELECT planned_event.id, name, planned_amount_cox, allow_guests, trip_details_id, planned_starting_time, max_people, day, notes FROM planned_event INNER JOIN trip_details ON planned_event.trip_details_id = trip_details.id WHERE day=? ", day ) .fetch_all(db) .await .unwrap() //TODO: fixme } pub async fn new( db: &SqlitePool, name: String, planned_amount_cox: i32, allow_guests: bool, trip_details_id: i64, ) { sqlx::query!( "INSERT INTO planned_event(name, planned_amount_cox, allow_guests, trip_details_id) VALUES(?, ?, ?, ?)", name, planned_amount_cox, allow_guests, trip_details_id ) .execute(db) .await .unwrap(); //TODO: fixme } pub async fn delete(db: &SqlitePool, id: i64) { sqlx::query!("DELETE FROM planned_event WHERE id = ?", id) .execute(db) .await .unwrap(); //TODO: fixme } }