diff options
| author | Daniel Hader <[email protected]> | 2026-05-12 20:18:58 -0500 |
|---|---|---|
| committer | Daniel Hader <[email protected]> | 2026-05-12 20:18:58 -0500 |
| commit | f23c5dbb3b725dc481cc79d5d4096232963250dd (patch) | |
| tree | 50921167b7d034955619c58fc1d3a18cc13b0f48 /src | |
| parent | 970638e3c895ba518c7a70f56f385c9dcdce8b5d (diff) | |
submission model
Diffstat (limited to 'src')
| -rw-r--r-- | src/database.rs | 2 | ||||
| -rw-r--r-- | src/database/sql/initialize.sql | 4 | ||||
| -rw-r--r-- | src/database/submission.rs | 31 |
3 files changed, 35 insertions, 2 deletions
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 } +} |
