use std::sync::Arc;

use axum::{
    routing::{get, post, put},
    Router,
};

use crate::models::error::ApiResult;
use crate::AppState;

pub fn router() -> Router<Arc<AppState>> {
    Router::new()
        .route("/", get(get_license_info))
        .route("/activate", post(activate_license))
        .route("/check-in", post(check_in))
        .route("/subdomain", put(update_subdomain))
        .route("/custom-domain", put(update_custom_domain))
}

async fn get_license_info() -> ApiResult<impl axum::response::IntoResponse> {
    todo!()
}

async fn activate_license() -> ApiResult<impl axum::response::IntoResponse> {
    todo!()
}

async fn check_in() -> ApiResult<impl axum::response::IntoResponse> {
    todo!()
}

async fn update_subdomain() -> ApiResult<impl axum::response::IntoResponse> {
    todo!()
}

async fn update_custom_domain() -> ApiResult<impl axum::response::IntoResponse> {
    todo!()
}
