#compdef pytr

# AUTOMATICALLY GENERATED by `shtab`


_shtab_pytr_commands() {
  local _commands=(
    "completion:Print shell tab completion"
    "details:Get details for an ISIN"
    "dl_docs:Download all pdf documents from the timeline and sort them into folders. Also export account transactions (account_transactions.csv) and JSON files with all events (events_with_documents.json and other_events.json)"
    "export_transactions:Read data from the TR timeline and export transactions into a file, e.g. as csv into account_transactions.csv."
    "get_price_alarms:Get current price alarms"
    "help:Print help message"
    "login:Check if credentials file exists. If not create it and ask for input. Try to login. Ask for device reset if needed"
    "portfolio:Show current portfolio"
    "set_price_alarms:Set new price alarms"
  )
  _describe 'pytr commands' _commands
}

_shtab_pytr_options=(
  "(- : *)"{-h,--help}"[show this help message and exit]"
  {-V,--version}"[Print version information and quit (default\: False)]"
  {-v,--verbosity}"[Set verbosity level (default\: info) (default\: info)]:verbosity:(warning info debug)"
  "--debug-logfile[Dump debug logs to a file (default\: None)]:debug_logfile:"
  "--debug-log-filter[Filter debug log types (default\: None)]:debug_log_filter:"
)

# guard to ensure default positional specs are added only once per session
_shtab_pytr_defaults_added=0

_shtab_pytr_completion_options=(
  "(- : *)"{-h,--help}"[show this help message and exit]"
  ":print shell completion script (default\: bash):(bash zsh tcsh)"
  ":print shell completion script (default\: bash):(bash zsh tcsh)"
)

# guard to ensure default positional specs are added only once per session
_shtab_pytr_completion_defaults_added=0

_shtab_pytr_details_options=(
  "(- : *)"{-h,--help}"[show this help message and exit]"
  {-n,--phone_no}"[TradeRepublic phone number (international format) (default\: None)]:phone_no:"
  {-p,--pin}"[TradeRepublic pin (default\: None)]:pin:"
  "--waf-token[AWS WAF token value or the method to obtain it. Values\: \"playwright\", \"awswaf\" or a token string, e.g. an aws-waf-token cookie captured from a browser session. (default\: playwright)]:waf_token:"
  "--store_credentials[Store credentials (Phone number, pin, cookies) for next usage (default\: False)]"
  ":ISIN of intrument:"
)

# guard to ensure default positional specs are added only once per session
_shtab_pytr_details_defaults_added=0

_shtab_pytr_dl_docs_options=(
  "(- : *)"{-h,--help}"[show this help message and exit]"
  {-n,--phone_no}"[TradeRepublic phone number (international format) (default\: None)]:phone_no:"
  {-p,--pin}"[TradeRepublic pin (default\: None)]:pin:"
  "--waf-token[AWS WAF token value or the method to obtain it. Values\: \"playwright\", \"awswaf\" or a token string, e.g. an aws-waf-token cookie captured from a browser session. (default\: playwright)]:waf_token:"
  "--store_credentials[Store credentials (Phone number, pin, cookies) for next usage (default\: False)]"
  {-l,--lang}"[Two letter language code or \"auto\" for system language. (default\: auto)]:lang:(auto cs da de en es fr it nl pl pt ru zh)"
  {--date-with-time,--no-date-with-time}"[Whether to include the timestamp in the date column. (default\: True)]:date_with_time:"
  {--decimal-localization,--no-decimal-localization}"[Whether to localize decimal numbers. (default\: False)]:decimal_localization:"
  {-s,--sort}"[Chronologically sort exported csv transactions (default\: False)]"
  "--format[available variables\:	iso_date, time, title, subtitle, doc_num, id (default\: \{iso_date\} \{time\} \{title\})]:format:"
  "--last_days[Include data from the last N days (0 \= include all days, -1 \= no update) (default\: 0)]:last_days:"
  "--days_until[Include data up to N days ago (0 \= include all days) (default\: 0)]:days_until:"
  "--workers[Number of workers for parallel downloading (default\: 8)]:workers:"
  "--universal[Platform independent file names (default\: False)]"
  {--store-event-database,--no-store-event-database}"[Write and maintain an event database file (all_events.json) (default\: True)]:store_event_database:"
  {--scan-for-duplicates,--no-scan-for-duplicates}"[Scan for duplicate events (default\: False)]:scan_for_duplicates:"
  {--dump-raw-data,--no-dump-raw-data}"[Dump more raw data in json format (default\: False)]:dump_raw_data:"
  {--export-transactions,--no-export-transactions}"[Export transactions into a file, e.g. as csv into account_transactions.csv (default\: True)]:export_transactions:"
  "--export-format[The output file format for the transaction export (default\: csv)]:export_format:(json csv)"
  "--flat[Do not sort documents into folders and keep their original filenames (default\: False)]"
  ":Output directory:"
)

# guard to ensure default positional specs are added only once per session
_shtab_pytr_dl_docs_defaults_added=0

_shtab_pytr_export_transactions_options=(
  "(- : *)"{-h,--help}"[show this help message and exit]"
  {-n,--phone_no}"[TradeRepublic phone number (international format) (default\: None)]:phone_no:"
  {-p,--pin}"[TradeRepublic pin (default\: None)]:pin:"
  "--waf-token[AWS WAF token value or the method to obtain it. Values\: \"playwright\", \"awswaf\" or a token string, e.g. an aws-waf-token cookie captured from a browser session. (default\: playwright)]:waf_token:"
  "--store_credentials[Store credentials (Phone number, pin, cookies) for next usage (default\: False)]"
  {-l,--lang}"[Two letter language code or \"auto\" for system language. (default\: auto)]:lang:(auto cs da de en es fr it nl pl pt ru zh)"
  {--date-with-time,--no-date-with-time}"[Whether to include the timestamp in the date column. (default\: True)]:date_with_time:"
  {--decimal-localization,--no-decimal-localization}"[Whether to localize decimal numbers. (default\: False)]:decimal_localization:"
  {-s,--sort}"[Chronologically sort exported csv transactions (default\: False)]"
  "--last_days[Include data from the last N days (0 \= include all days, -1 \= no update) (default\: 0)]:last_days:"
  "--days_until[Include data up to N days ago (0 \= include all days) (default\: 0)]:days_until:"
  {--store-event-database,--no-store-event-database}"[Write and maintain an event database file (all_events.json) (default\: True)]:store_event_database:"
  {--scan-for-duplicates,--no-scan-for-duplicates}"[Scan for duplicate events (default\: False)]:scan_for_duplicates:"
  {--dump-raw-data,--no-dump-raw-data}"[Dump more raw data in json format (default\: False)]:dump_raw_data:"
  {--export-format,--format}"[The output file format for the transaction export (default\: csv)]:export_format:(json csv)"
  "--outputdir[Output directory (default\: .)]:outputdir:"
  ":Output file path (optional) (default\: None):"
)

# guard to ensure default positional specs are added only once per session
_shtab_pytr_export_transactions_defaults_added=0

_shtab_pytr_get_price_alarms_options=(
  "(- : *)"{-h,--help}"[show this help message and exit]"
  {-n,--phone_no}"[TradeRepublic phone number (international format) (default\: None)]:phone_no:"
  {-p,--pin}"[TradeRepublic pin (default\: None)]:pin:"
  "--waf-token[AWS WAF token value or the method to obtain it. Values\: \"playwright\", \"awswaf\" or a token string, e.g. an aws-waf-token cookie captured from a browser session. (default\: playwright)]:waf_token:"
  "--store_credentials[Store credentials (Phone number, pin, cookies) for next usage (default\: False)]"
  "--outputfile[Output file path (default\: -)]:outputfile:"
  "(*)::Input data in the form of \<ISIN1\> \<ISIN2\> ... (default\: \[\]):"
)

# guard to ensure default positional specs are added only once per session
_shtab_pytr_get_price_alarms_defaults_added=0

_shtab_pytr_help_options=(
  
)

# guard to ensure default positional specs are added only once per session
_shtab_pytr_help_defaults_added=0

_shtab_pytr_login_options=(
  "(- : *)"{-h,--help}"[show this help message and exit]"
  {-n,--phone_no}"[TradeRepublic phone number (international format) (default\: None)]:phone_no:"
  {-p,--pin}"[TradeRepublic pin (default\: None)]:pin:"
  "--waf-token[AWS WAF token value or the method to obtain it. Values\: \"playwright\", \"awswaf\" or a token string, e.g. an aws-waf-token cookie captured from a browser session. (default\: playwright)]:waf_token:"
  "--store_credentials[Store credentials (Phone number, pin, cookies) for next usage (default\: False)]"
)

# guard to ensure default positional specs are added only once per session
_shtab_pytr_login_defaults_added=0

_shtab_pytr_portfolio_options=(
  "(- : *)"{-h,--help}"[show this help message and exit]"
  {-n,--phone_no}"[TradeRepublic phone number (international format) (default\: None)]:phone_no:"
  {-p,--pin}"[TradeRepublic pin (default\: None)]:pin:"
  "--waf-token[AWS WAF token value or the method to obtain it. Values\: \"playwright\", \"awswaf\" or a token string, e.g. an aws-waf-token cookie captured from a browser session. (default\: playwright)]:waf_token:"
  "--store_credentials[Store credentials (Phone number, pin, cookies) for next usage (default\: False)]"
  {-l,--lang}"[Two letter language code or \"auto\" for system language. (default\: auto)]:lang:(auto cs da de en es fr it nl pl pt ru zh)"
  {--decimal-localization,--no-decimal-localization}"[Whether to localize decimal numbers. (default\: False)]:decimal_localization:"
  {--include-watchlist,--no-include-watchlist}"[Include watchlist. (default\: False)]:include_watchlist:"
  {-o,--output}"[Output path of CSV file (default\: None)]:output:"
  "--sort-by-column[Sort results by column. (default\: None)]:sort_by_column:(quantity name netvalue price avgcost isin)"
  {--sort-ascending,--no-sort-ascending}"[Whether to sort in ascending order. (default\: False)]:sort_ascending:"
)

# guard to ensure default positional specs are added only once per session
_shtab_pytr_portfolio_defaults_added=0

_shtab_pytr_set_price_alarms_options=(
  "(- : *)"{-h,--help}"[show this help message and exit]"
  {-n,--phone_no}"[TradeRepublic phone number (international format) (default\: None)]:phone_no:"
  {-p,--pin}"[TradeRepublic pin (default\: None)]:pin:"
  "--waf-token[AWS WAF token value or the method to obtain it. Values\: \"playwright\", \"awswaf\" or a token string, e.g. an aws-waf-token cookie captured from a browser session. (default\: playwright)]:waf_token:"
  "--store_credentials[Store credentials (Phone number, pin, cookies) for next usage (default\: False)]"
  {--remove-current-alarms,--no-remove-current-alarms}"[Whether to remove current alarms. (default\: True)]:remove_current_alarms:"
  "--inputfile[Input file path (default\: -)]:inputfile:"
  "(*)::Input data in the form of \<ISIN\> \<alarm1\> \<alarm2\> ... (default\: \[\]):"
)

# guard to ensure default positional specs are added only once per session
_shtab_pytr_set_price_alarms_defaults_added=0


_shtab_pytr() {
  local context state line curcontext="$curcontext" one_or_more='(*)' remainder='(-)*' default='*::: :->pytr'

  # Add default positional/remainder specs only if none exist, and only once per session
  if (( ! _shtab_pytr_defaults_added )); then
    if (( ${_shtab_pytr_options[(I)${(q)one_or_more}*]} +          ${_shtab_pytr_options[(I)${(q)remainder}*]} +          ${_shtab_pytr_options[(I)${(q)default}]} == 0 )); then
      _shtab_pytr_options+=(': :_shtab_pytr_commands' '*::: :->pytr')
    fi
    _shtab_pytr_defaults_added=1
  fi
  _arguments -C -s $_shtab_pytr_options

  case $state in
    pytr)
      words=($line[1] "${words[@]}")
      (( CURRENT += 1 ))
      curcontext="${curcontext%:*:*}:_shtab_pytr-$line[1]:"
      case $line[1] in
        completion) _arguments -C -s $_shtab_pytr_completion_options ;;
        details) _arguments -C -s $_shtab_pytr_details_options ;;
        dl_docs) _arguments -C -s $_shtab_pytr_dl_docs_options ;;
        export_transactions) _arguments -C -s $_shtab_pytr_export_transactions_options ;;
        get_price_alarms) _arguments -C -s $_shtab_pytr_get_price_alarms_options ;;
        help) _arguments -C -s $_shtab_pytr_help_options ;;
        login) _arguments -C -s $_shtab_pytr_login_options ;;
        portfolio) _arguments -C -s $_shtab_pytr_portfolio_options ;;
        set_price_alarms) _arguments -C -s $_shtab_pytr_set_price_alarms_options ;;
      esac
  esac
}



typeset -A opt_args

if [[ $zsh_eval_context[-1] == eval ]]; then
  # eval/source/. command, register function for later
  compdef _shtab_pytr -N pytr
else
  # autoload from fpath, call function directly
  _shtab_pytr "$@"
fi

