You've already forked AstralRinth
forked from didirus/AstralRinth
* Initial work for modpacks and project types * Code cleanup, fix some issues * Username route getting, remove pointless tests * Base validator types + fixes * Fix strange IML generation * Multiple hash requests for version files * Fix docker build (hopefully) * Legacy routes * Finish validator architecture * Update rust version in dockerfile * Added caching and fixed typo (#203) * Added caching and fixed typo * Fixed clippy error * Removed log for cache * Add final validators, fix how loaders are handled and add icons to tags * Fix search module * Fix parts of legacy API not working Co-authored-by: Redblueflame <contact@redblueflame.com>
41 lines
933 B
Rust
41 lines
933 B
Rust
use super::ids::Base62Id;
|
|
use crate::models::ids::UserId;
|
|
use chrono::{DateTime, Utc};
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
#[derive(Copy, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(from = "Base62Id")]
|
|
#[serde(into = "Base62Id")]
|
|
pub struct ReportId(pub u64);
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
pub struct Report {
|
|
pub id: ReportId,
|
|
pub report_type: String,
|
|
pub item_id: String,
|
|
pub item_type: ItemType,
|
|
pub reporter: UserId,
|
|
pub body: String,
|
|
pub created: DateTime<Utc>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone)]
|
|
#[serde(rename_all = "kebab-case")]
|
|
pub enum ItemType {
|
|
Project,
|
|
Version,
|
|
User,
|
|
Unknown,
|
|
}
|
|
|
|
impl ItemType {
|
|
pub fn as_str(&self) -> &'static str {
|
|
match self {
|
|
ItemType::Project => "project",
|
|
ItemType::Version => "version",
|
|
ItemType::User => "user",
|
|
ItemType::Unknown => "unknown",
|
|
}
|
|
}
|
|
}
|