aboutsummaryrefslogtreecommitdiff
path: root/src/db/models.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/db/models.rs')
-rw-r--r--src/db/models.rs19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/db/models.rs b/src/db/models.rs
index 603887e..33fa34e 100644
--- a/src/db/models.rs
+++ b/src/db/models.rs
@@ -4,6 +4,7 @@ use anyhow::{
};
use chrono::naive::NaiveDateTime;
use diesel::{
+ associations::HasTable,
prelude::*,
Identifiable,
Insertable,
@@ -21,6 +22,7 @@ use crate::db::schema::*;
#[diesel(table_name = memes)]
pub struct Meme {
pub id: i32,
+ pub guild: i64,
pub title: String,
pub content: Option<String>,
pub image_id: Option<i32>,
@@ -55,6 +57,7 @@ impl Meme {
#[diesel(table_name = memes)]
pub struct NewMeme {
pub title: String,
+ pub guild: i64,
pub content: Option<String>,
pub image_id: Option<i32>,
pub audio_id: Option<i32>,
@@ -250,6 +253,7 @@ pub struct NewAuditRecord {
#[diesel(table_name = tombstones)]
pub struct Tombstone {
pub id: i32,
+ pub guild: i64,
pub deleted: NaiveDateTime,
pub deleted_by: i64,
pub metadata_id: i32,
@@ -260,6 +264,7 @@ pub struct Tombstone {
#[diesel(table_name = tombstones)]
pub struct NewTombstone {
pub deleted_by: i64,
+ pub guild: i64,
pub metadata_id: i32,
pub meme_id: i32,
}
@@ -269,6 +274,7 @@ pub struct NewTombstone {
pub struct InvocationRecord {
pub id: i32,
pub user_id: i64,
+ pub guild: i64,
pub message_id: i64,
pub meme_id: i32,
pub time: NaiveDateTime,
@@ -279,6 +285,7 @@ pub struct InvocationRecord {
#[diesel(table_name = invocation_records)]
pub struct NewInvocationRecord {
pub user_id: i64,
+ pub guild: i64,
pub message_id: i64,
pub meme_id: i32,
pub random: bool,
@@ -288,6 +295,7 @@ impl InvocationRecord {
pub async fn create(
conn: &mut AsyncPgConnection,
user_id: u64,
+ guild_id: u64,
message_id: u64,
meme_id: i32,
random: bool,
@@ -296,6 +304,7 @@ impl InvocationRecord {
.values(&NewInvocationRecord {
user_id: user_id as i64,
message_id: message_id as i64,
+ guild: guild_id as i64,
meme_id,
random,
})
@@ -304,16 +313,22 @@ impl InvocationRecord {
.map_err(Error::from)
}
- pub async fn last(conn: &mut AsyncPgConnection) -> Result<Self> {
+ pub async fn last(conn: &mut AsyncPgConnection, guild_id: u64) -> Result<Self> {
invocation_records::table
+ .filter(invocation_records::guild.eq(guild_id as i64))
.order(invocation_records::time.desc())
.first(conn)
.await
.map_err(Error::from)
}
- pub async fn last_n(conn: &mut AsyncPgConnection, n: usize) -> Result<Vec<Self>> {
+ pub async fn last_n(
+ conn: &mut AsyncPgConnection,
+ n: usize,
+ guild_id: u64,
+ ) -> Result<Vec<Self>> {
invocation_records::table
+ .filter(invocation_records::guild.eq(guild_id as i64))
.order(invocation_records::time.desc())
.limit(n as i64)
.load(conn)