Send help, im stuck in life time hell

This commit is contained in:
2025-09-13 20:04:24 +03:00
parent 7d88ac6db8
commit 66704b4e2e
19 changed files with 252 additions and 66 deletions

View File

@@ -1,17 +1,26 @@
use anyhow::Result;
use sqlx::prelude::FromRow;
use crate::db::CurrPool;
use crate::db::{
CurrPool,
tables::{ForeignKey, TableMeta, assignables::awards::Award, user::User},
};
#[derive(Debug, Default, Clone)]
pub struct AwardRecord {
#[derive(Debug, Default, Clone, FromRow)]
pub struct AwardRecord<'a> {
pub id: i64,
pub user_id: i64,
pub award_id: i64,
pub author_id: i64,
pub user_id: ForeignKey<'a, User>,
pub award_id: ForeignKey<'a, Award>,
pub author_id: ForeignKey<'a, User>,
pub created_at: i64,
}
impl AwardRecord {
impl<'a> TableMeta<'a> for AwardRecord<'a> {
type PrimaryKey = i64;
const TABLE: &'static str = "records_awards";
}
impl AwardRecord<'_> {
pub async fn insert_new(&self, pool: &CurrPool) -> Result<Self> {
let session = sqlx::query_as!(
AwardRecord,
@@ -20,14 +29,16 @@ impl AwardRecord {
VALUES ($1, $2, $3, $4)
RETURNING *
"#,
self.user_id,
self.award_id,
self.author_id,
*self.user_id,
*self.award_id,
*self.author_id,
self.created_at,
)
.fetch_one(pool)
.await?;
self.author_id.extract(pool);
Ok(session)
}
pub async fn get_by_id(pool: &CurrPool, id: i64) -> anyhow::Result<Self> {