use crate::error::AppError;
use crate::model::responses::{
CreateWatchlistResponse, StatusResponse, WatchlistMarketsResponse, WatchlistsResponse,
};
use async_trait::async_trait;
#[async_trait]
pub trait WatchlistService: Send + Sync {
async fn get_watchlists(&self) -> Result<WatchlistsResponse, AppError>;
async fn create_watchlist(
&self,
name: &str,
epics: Option<&[String]>,
) -> Result<CreateWatchlistResponse, AppError>;
async fn get_watchlist(&self, watchlist_id: &str)
-> Result<WatchlistMarketsResponse, AppError>;
async fn delete_watchlist(&self, watchlist_id: &str) -> Result<StatusResponse, AppError>;
async fn add_to_watchlist(
&self,
watchlist_id: &str,
epic: &str,
) -> Result<StatusResponse, AppError>;
async fn remove_from_watchlist(
&self,
watchlist_id: &str,
epic: &str,
) -> Result<StatusResponse, AppError>;
}