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::missions::Mission, user::User},
};
#[derive(Debug, Default, Clone)]
pub struct MissionRecord {
#[derive(Debug, Default, Clone, FromRow)]
pub struct MissionRecord<'a> {
pub id: i64,
pub user_id: i64,
pub mission_id: i64,
pub author_id: i64,
pub user_id: ForeignKey<'a, User>,
pub mission_id: ForeignKey<'a, Mission>,
pub author_id: ForeignKey<'a, User>,
pub created_at: i64,
}
impl MissionRecord {
impl TableMeta<'_> for MissionRecord<'_> {
type PrimaryKey = i64;
const TABLE: &'static str = "records_missions";
}
impl MissionRecord<'_> {
pub async fn insert_new(&self, pool: &CurrPool) -> Result<Self> {
let session = sqlx::query_as!(
MissionRecord,
@@ -20,9 +29,9 @@ impl MissionRecord {
VALUES ($1, $2, $3, $4)
RETURNING *
"#,
self.user_id,
self.mission_id,
self.author_id,
*self.user_id,
*self.mission_id,
*self.author_id,
self.created_at,
)
.fetch_one(pool)