revolt_database/models/ratelimit_events/
model.rs1use std::fmt;
2
3use revolt_result::Result;
4use ulid::Ulid;
5
6use crate::Database;
7
8auto_derived!(
9 pub struct RatelimitEvent {
11 #[serde(rename = "_id")]
13 pub id: String,
14 pub target_id: String,
16 pub event_type: RatelimitEventType,
18 }
19
20 pub enum RatelimitEventType {
22 DiscriminatorChange,
23 }
24);
25
26impl fmt::Display for RatelimitEventType {
27 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
28 fmt::Debug::fmt(self, f)
29 }
30}
31
32#[allow(clippy::disallowed_methods)]
33impl RatelimitEvent {
34 pub async fn create(
36 db: &Database,
37 target_id: String,
38 event_type: RatelimitEventType,
39 ) -> Result<()> {
40 db.insert_ratelimit_event(&RatelimitEvent {
41 id: Ulid::new().to_string(),
42 target_id,
43 event_type,
44 })
45 .await
46 }
47}