use clap::Args;
use crate::{DEFAULT_HOST, DEFAULT_PORT};
#[derive(Debug, Args, Clone)]
pub struct ServeArgs {
#[arg(long, env = "AMAGI_HOST", default_value = DEFAULT_HOST)]
pub host: String,
#[arg(long, env = "AMAGI_PORT", default_value_t = DEFAULT_PORT)]
pub port: u16,
#[command(flatten)]
pub runtime: ServeRuntimeArgs,
}
#[derive(Debug, Args, Clone, Default)]
pub struct ServeRuntimeArgs {
#[arg(long = "proxy-timeout-ms", env = "AMAGI_PROXY_TIMEOUT_MS")]
pub proxy_timeout_ms: Option<u64>,
#[arg(long = "proxy-max-hops", env = "AMAGI_PROXY_MAX_HOPS")]
pub proxy_max_hops: Option<u32>,
#[arg(
long = "douyin-mode",
env = "AMAGI_PLATFORM_DOUYIN_MODE",
value_parser = ["enabled", "local", "upstream", "disabled"]
)]
pub douyin_mode: Option<String>,
#[arg(long = "douyin-upstream", env = "AMAGI_PLATFORM_DOUYIN_UPSTREAM")]
pub douyin_upstream: Option<String>,
#[arg(
long = "bilibili-mode",
env = "AMAGI_PLATFORM_BILIBILI_MODE",
value_parser = ["enabled", "local", "upstream", "disabled"]
)]
pub bilibili_mode: Option<String>,
#[arg(long = "bilibili-upstream", env = "AMAGI_PLATFORM_BILIBILI_UPSTREAM")]
pub bilibili_upstream: Option<String>,
#[arg(
long = "kuaishou-mode",
env = "AMAGI_PLATFORM_KUAISHOU_MODE",
value_parser = ["enabled", "local", "upstream", "disabled"]
)]
pub kuaishou_mode: Option<String>,
#[arg(long = "kuaishou-upstream", env = "AMAGI_PLATFORM_KUAISHOU_UPSTREAM")]
pub kuaishou_upstream: Option<String>,
#[arg(
long = "xiaohongshu-mode",
env = "AMAGI_PLATFORM_XIAOHONGSHU_MODE",
value_parser = ["enabled", "local", "upstream", "disabled"]
)]
pub xiaohongshu_mode: Option<String>,
#[arg(
long = "xiaohongshu-upstream",
env = "AMAGI_PLATFORM_XIAOHONGSHU_UPSTREAM"
)]
pub xiaohongshu_upstream: Option<String>,
#[arg(
long = "twitter-mode",
env = "AMAGI_PLATFORM_TWITTER_MODE",
value_parser = ["enabled", "local", "upstream", "disabled"]
)]
pub twitter_mode: Option<String>,
#[arg(long = "twitter-upstream", env = "AMAGI_PLATFORM_TWITTER_UPSTREAM")]
pub twitter_upstream: Option<String>,
}