diff --git a/src/profile/database.rs b/src/profile/database.rs index 5b0d11fe..e5801278 100644 --- a/src/profile/database.rs +++ b/src/profile/database.rs @@ -1,26 +1,38 @@ use sqlite::{Error, Transaction}; +use gtk::glib::DateTime; + pub struct Table { pub id: i64, + pub time: DateTime, + pub name: Option, } pub fn init(tx: &Transaction) -> Result { tx.execute( "CREATE TABLE IF NOT EXISTS `profile` ( - `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL + `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + `time` INTEGER NOT NULL, + `name` VARCHAR(255) )", [], ) } -pub fn add(tx: &Transaction) -> Result { - tx.execute("INSERT INTO `profile` DEFAULT VALUES", []) +pub fn add(tx: &Transaction, time: &DateTime, name: Option<&str>) -> Result { + tx.execute("INSERT INTO `profile`", (time.to_unix(), name)) } pub fn records(tx: &Transaction) -> Result, Error> { - let mut stmt = tx.prepare("SELECT `profile_id` FROM `profile`")?; - let result = stmt.query_map([], |row| Ok(Table { id: row.get(0)? }))?; + let mut stmt = tx.prepare("SELECT `id`, `time`, `name` FROM `profile`")?; + let result = stmt.query_map([], |row| { + Ok(Table { + id: row.get(0)?, + time: DateTime::from_unix_local(row.get(1)?).unwrap(), + name: row.get(2)?, + }) + })?; let mut records = Vec::new();