use nostr::EventId;
pub mod error;
pub mod types;
pub mod validation;
use self::error::WelcomeError;
use self::types::*;
pub const DEFAULT_PENDING_WELCOMES_LIMIT: usize = 1000;
pub const MAX_PENDING_WELCOMES_LIMIT: usize = 10000;
bounded_pagination! {
default_limit: DEFAULT_PENDING_WELCOMES_LIMIT,
max_limit: MAX_PENDING_WELCOMES_LIMIT,
error_type: WelcomeError,
validate_fn: validate_pending_welcomes_limit
}
pub trait WelcomeStorage {
fn save_welcome(&self, welcome: Welcome) -> Result<(), WelcomeError>;
fn find_welcome_by_event_id(&self, event_id: &EventId)
-> Result<Option<Welcome>, WelcomeError>;
fn pending_welcomes(
&self,
pagination: Option<Pagination>,
) -> Result<Vec<Welcome>, WelcomeError>;
fn save_processed_welcome(
&self,
processed_welcome: ProcessedWelcome,
) -> Result<(), WelcomeError>;
fn find_processed_welcome_by_event_id(
&self,
event_id: &EventId,
) -> Result<Option<ProcessedWelcome>, WelcomeError>;
}