/*
* This file is part of laurelin/api
* Copyright (C) 2023 Jonni Liljamo <jonni@liljamo.com>
*
* Licensed under GPL-3.0-only.
* See LICENSE for licensing information.
*/
use chrono::NaiveDateTime;
use diesel::{Insertable, Queryable};
use serde::{Deserialize, Serialize};
use uuid::Uuid;
use crate::schema::games;
#[derive(Serialize, Queryable)]
pub(crate) struct Game {
pub id: Uuid,
pub created_at: NaiveDateTime,
pub updated_at: NaiveDateTime,
pub host_id: Uuid,
pub guest_id: Option<Uuid>,
pub state: i16,
pub ended_at: Option<NaiveDateTime>,
pub game_data_id: Uuid,
}
#[derive(Deserialize, Insertable)]
#[diesel(table_name=games)]
pub(crate) struct InsertableGame {
pub host_id: Uuid,
pub guest_id: Option<Uuid>,
pub state: i16,
pub ended_at: Option<NaiveDateTime>,
pub game_data_id: Uuid,
}