// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.

package tangled

// schema: org.tangled.temp.focus.nextItem

import (
	"context"

	"github.com/bluesky-social/indigo/lex/util"
)

const (
	TempFocusNextItemNSID = "org.tangled.temp.focus.nextItem"
)

// TempFocusNextItem_Input is the input argument to a org.tangled.temp.focus.nextItem call.
type TempFocusNextItem_Input struct {
	// currentId: ID of the notification just addressed, to be marked read.
	CurrentId int64 `json:"currentId" cborgen:"currentId"`
}

// TempFocusNextItem_Output is the output of a org.tangled.temp.focus.nextItem call.
type TempFocusNextItem_Output struct {
	// issueAt: AT-URI of the issue to navigate to, if the item is an issue.
	IssueAt *string `json:"issueAt,omitempty" cborgen:"issueAt,omitempty"`
	// notificationId: ID of the next notification to address. Absent when focus mode has ended.
	NotificationId *int64 `json:"notificationId,omitempty" cborgen:"notificationId,omitempty"`
	// pullAt: AT-URI of the pull to navigate to, if the item is a pull.
	PullAt *string `json:"pullAt,omitempty" cborgen:"pullAt,omitempty"`
	// repoDid: DID of the repository the next item belongs to. Absent when focus mode has ended.
	RepoDid *string `json:"repoDid,omitempty" cborgen:"repoDid,omitempty"`
}

// TempFocusNextItem calls the XRPC method "org.tangled.temp.focus.nextItem".
func TempFocusNextItem(ctx context.Context, c util.LexClient, input *TempFocusNextItem_Input) (*TempFocusNextItem_Output, error) {
	var out TempFocusNextItem_Output
	if err := c.LexDo(ctx, util.Procedure, "application/json", "org.tangled.temp.focus.nextItem", nil, input, &out); err != nil {
		return nil, err
	}

	return &out, nil
}
