use crate::schema::gamenight; use chrono::{DateTime, Utc}; use diesel::{Insertable, PgConnection, QueryDsl, Queryable, RunQueryDsl, insert_into}; use serde::{Deserialize, Serialize}; use uuid::Uuid; use super::error::DatabaseError; #[derive(Serialize, Deserialize, Debug, Insertable, Queryable)] #[diesel(table_name = gamenight)] pub struct Gamenight { pub id: Uuid, pub name: String, pub datetime: DateTime, pub owner_id: Uuid, pub location_id: Option, } pub fn gamenights(conn: &mut PgConnection) -> Result, DatabaseError> { Ok(gamenight::table.load::(conn)?) } pub fn add_gamenight( conn: &mut PgConnection, gamenight: Gamenight, ) -> Result { Ok(insert_into(gamenight::table) .values(&gamenight) .execute(conn)?) } pub fn get_gamenight(conn: &mut PgConnection, id: Uuid) -> Result { Ok(gamenight::table.find(id).first(conn)?) }