use async_trait::async_trait;
use fistinc_errors::RepositoryResult;
use fistinc_paging::{Paging, QueryParams};
use uuid::Uuid;
use crate::domain::entity::PasswordChangeAction;
#[async_trait]
pub trait PasswordHistoryRepository: Send + Sync {
async fn find_all_user_password_changes(
&self, user_id: Uuid,
) -> RepositoryResult<Vec<PasswordChangeAction>>;
async fn find_all_user_password_changes_paged(
&self, user_id: Uuid, params: &dyn QueryParams,
) -> RepositoryResult<Paging<PasswordChangeAction>>;
async fn save_password_change(
&self, action: &PasswordChangeAction,
) -> RepositoryResult<()>;
}