From f23c5dbb3b725dc481cc79d5d4096232963250dd Mon Sep 17 00:00:00 2001 From: Daniel Hader Date: Tue, 12 May 2026 20:18:58 -0500 Subject: submission model --- src/database.rs | 2 ++ src/database/sql/initialize.sql | 4 ++-- src/database/submission.rs | 31 +++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 src/database/submission.rs (limited to 'src') diff --git a/src/database.rs b/src/database.rs index 3c8afe6..b09d6e2 100644 --- a/src/database.rs +++ b/src/database.rs @@ -1,6 +1,8 @@ mod database; pub use database::Database; +pub mod submission; pub mod problem; pub mod user; + diff --git a/src/database/sql/initialize.sql b/src/database/sql/initialize.sql index 065bac9..510c427 100644 --- a/src/database/sql/initialize.sql +++ b/src/database/sql/initialize.sql @@ -13,9 +13,9 @@ CREATE TABLE IF NOT EXISTS user ( CREATE TABLE IF NOT EXISTS submission ( id INTEGER PRIMARY KEY, - problem_id INTEGER NOT NULL, user_id INTEGER NOT NULL, - language TEXT NOT NULL, + problem_id INTEGER NOT NULL, code TEXT NOT NULL, + language TEXT NOT NULL, validated INTEGER NOT NULL ); diff --git a/src/database/submission.rs b/src/database/submission.rs new file mode 100644 index 0000000..2ec1287 --- /dev/null +++ b/src/database/submission.rs @@ -0,0 +1,31 @@ +use serde::Serialize; + +#[derive(Serialize)] +pub struct Submission { + id: i64, + user_id: i64, + problem_id: i64, + code: String, + language: String, + validated: bool, +} + +impl Submission { + pub(super) fn new( + id: i64, + user_id: i64, + problem_id: i64, + code: String, + language: String, + validated: bool, + ) -> Self { + Self { id, user_id, problem_id, code, language, validated } + } + + pub fn id(&self) -> i64 { self.id } + pub fn user_id(&self) -> i64 { self.user_id } + pub fn problem_id(&self) -> i64 { self.problem_id } + pub fn code(&self) -> &str { &self.code } + pub fn language(&self) -> &str { &self.language } + pub fn validated(&self) -> bool { self.validated } +} -- cgit v1.2.3