function cmd::group::_logs_impl() {
  local name="$1" limit="$2" since="$3" fw="$4" wg="$5"
  local peers_list=()
  mapfile -t peers_list < <(group::peers "$name")
  [[ -z "${peers_list[0]:-}" ]] && \
    log::wg_warning "Group '${name}' has no peers" && return 0
 
  load_command logs

  log::section "Logs: group ${name}"; echo ""
  for peer in "${peers_list[@]}"; do
    [[ -z "$peer" ]] && continue
    local filter_ip; filter_ip=$(peers::get_ip "$peer")
    local fw_out="" wg_out=""
    [[ "$wg" != "true" ]] && fw_out=$(cmd::logs::show_fw_events \
      "$filter_ip" "$peer" "" "$limit" "$(ctx::net)" \
      "1" "$since" "" "" "desc" "false" 2>/dev/null)
    [[ "$fw" != "true" ]] && wg_out=$(cmd::logs::show_wg_events \
      "$filter_ip" "$peer" "" "$limit" \
      "1" "$since" "" "desc" "false" 2>/dev/null)
    [[ -z "$fw_out" && -z "$wg_out" ]] && continue
    printf "  \033[1m%s\033[0m\n" "$peer"
    [[ -n "$fw_out" ]] && printf "%s\n" "$fw_out"
    [[ -n "$wg_out" ]] && printf "%s\n" "$wg_out"
    echo ""
  done
}