use crate::AppState;
use axum::{Router, routing};
use fts_core::ports::MarketRepository;
use serde::Deserialize;
pub mod delete;
pub mod get;
pub mod history;
pub mod list;
pub mod outcomes;
pub mod post;
pub mod put;
#[derive(Deserialize)]
pub struct AuthParams<T: Default> {
#[serde(default)]
pub portfolio: T,
}
pub fn router<T: MarketRepository>() -> Router<AppState<T>> {
Router::new()
.route("/", routing::get(list::list_auths).post(post::post_auth))
.route(
"/{auth_id}",
routing::get(get::get_auth)
.put(put::put_auth)
.delete(delete::delete_auth),
)
.route("/{auth_id}/history", routing::get(history::get_history))
.route("/{auth_id}/outcomes", routing::get(outcomes::get_outcomes))
}