use std::time::Duration;
use crate::{onechatsocial_result::Result, RatelimitEvent, RatelimitEventType};
mod mongodb;
mod reference;
#[async_trait]
pub trait AbstractRatelimitEvents: Sync + Send {
async fn insert_ratelimit_event(&self, event: &RatelimitEvent) -> Result<()>;
async fn has_ratelimited(
&self,
target_id: &str,
event_type: RatelimitEventType,
period: Duration,
count: usize,
) -> Result<bool>;
}