# shellcheck shell=dash

___x_cmd_price_calc(){
    local provider=""
    local model=""
    local input_token=0
    local input_cache_token=0
    local output_token=0
    local currency_unit="USD"
    while [ "$#" -gt 0 ]; do
        case "$1" in
            --provider) provider="$2"
                        [ -n "$provider" ] || N=price M="Provide provider name" log:ret:64
                        shift 2 ;;
            --model)    model="$2"
                        [ -n "$model" ] || N=price M="Provide model name" log:ret:64
                        shift 2 ;;
            --input-token)
                        input_token="$2"
                        [ -n "$input_token" ] || N=price M="Provide input token num" log:ret:64
                        shift 2 ;;
            --input-cache-token)
                        input_cache_token="$2"
                        [ -n "$input_cache_token" ] || N=price M="Provide input cache token num" log:ret:64
                        shift 2 ;;
            --output-token)
                        output_token="$2"
                        [ -n "$output_token" ] || N=price M="Provide output token num" log:ret:64
                        shift 2 ;;
            --currency-unit)
                        currency_unit="$2"
                        [ -n "$currency_unit" ] || N=price M="Provide currency unit value, [CNY|USD|EUR]" log:ret:64
                        shift 2 ;;
            -h|--help)  ___x_cmd help -m price calc; return ;;
            --*)        N=price M="Unknown option $1" log:ret:64 ;;
            *)          break ;;
        esac
    done

    [ -n "$model" ] || N=price M="Provide model name" log:ret:64
    [ -n "$provider" ] || {
        # N=price M="Provide provider name" log:ret:64
        provider="openrouter"
        price:debug "No provider specified, use default provider[$provider]"
    }

    local x_=""; local datafile=""; local ratefile=""
    ___x_cmd_price_which_ "$provider"   || return; datafile="$x_"
    ___x_cmd_price_which_ "usd-rate"    || return; ratefile="$x_"

    {
        ___x_cmd_cmds_cat "$datafile"
        printf "\n"
        ___x_cmd_cmds_cat "$ratefile"
    } | ___x_cmd cawk -E model,provider,input_token,input_cache_token,output_token,currency_unit \
        -m j/json,j/jiter \
        -f "$___X_CMD_ROOT_MOD/price/lib/awk/llmp.awk" \
        -f "$___X_CMD_ROOT_MOD/price/lib/awk/calc.awk"
}
