diff --git a/migrations/2025-04-03-130758_message_literal_map/down.sql b/migrations/2025-04-03-130758_message_literal_map/down.sql new file mode 100644 index 0000000..cbe8189 --- /dev/null +++ b/migrations/2025-04-03-130758_message_literal_map/down.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS messages; diff --git a/migrations/2025-04-03-130758_message_literal_map/up.sql b/migrations/2025-04-03-130758_message_literal_map/up.sql new file mode 100644 index 0000000..d9b738d --- /dev/null +++ b/migrations/2025-04-03-130758_message_literal_map/up.sql @@ -0,0 +1,7 @@ +CREATE TABLE messages ( + id SERIAL PRIMARY KEY, + chat_id BIGINT NOT NULL, + message_id BIGINT NOT NULL, + token VARCHAR(255) NOT NULL, + UNIQUE (chat_id, message_id) +); diff --git a/src/db/models.rs b/src/db/models.rs index 5cb96bd..f03860b 100644 --- a/src/db/models.rs +++ b/src/db/models.rs @@ -3,10 +3,21 @@ #![allow(unused)] #![allow(clippy::all)] + use diesel::prelude::*; +#[derive(Queryable, Debug)] +#[diesel(table_name = messages)] +pub struct Message { + pub id: i32, + pub chat_id: i64, + pub message_id: i64, + pub token: String, +} + #[derive(Queryable, Debug)] #[diesel(table_name = users)] pub struct User { pub id: i64, pub is_admin: bool, } + diff --git a/src/db/schema.rs b/src/db/schema.rs index de81037..22ea5b7 100644 --- a/src/db/schema.rs +++ b/src/db/schema.rs @@ -1,8 +1,23 @@ // @generated automatically by Diesel CLI. +diesel::table! { + messages (id) { + id -> Int4, + chat_id -> Int8, + message_id -> Int8, + #[max_length = 255] + token -> Varchar, + } +} + diesel::table! { users (id) { id -> Int8, is_admin -> Bool, } } + +diesel::allow_tables_to_appear_in_same_query!( + messages, + users, +);