use crate::domain::dtos::token::{
PublicConnectionStringInfo, Token, UserAccountScope,
};
use async_trait::async_trait;
use mycelium_base::{
entities::{FetchManyResponseKind, FetchResponseKind},
utils::errors::MappedErrors,
};
use shaku::Interface;
use uuid::Uuid;
#[async_trait]
pub trait TokenFetching: Interface + Send + Sync {
async fn get_connection_string(
&self,
scope: UserAccountScope,
) -> Result<FetchResponseKind<Token, String>, MappedErrors>;
async fn list_connection_strings_by_account_id(
&self,
account_id: Uuid,
) -> Result<FetchManyResponseKind<PublicConnectionStringInfo>, MappedErrors>;
}