package token

const (
	KindMessage    = "message"
	KindThread     = "thread"
	KindDraft      = "draft"
	KindAttachment = "attachment"
	KindCursor     = "cursor"
)

type Claims struct {
	SchemaVersion  int    `json:"schemaVersion"`
	Kind           string `json:"kind"`
	WorkspaceID    string `json:"workspaceId"`
	InstallationID string `json:"installationId"`
	ConnectionID   string `json:"connectionId"`
	Generation     string `json:"generation"`
	AgentID        string `json:"agentId"`
	Action         string `json:"action"`
	Mailbox        string `json:"mailbox,omitempty"`
	UIDValidity    uint32 `json:"uidValidity,omitempty"`
	UID            uint32 `json:"uid,omitempty"`
	Revision       uint64 `json:"revision,omitempty"`
	Part           string `json:"part,omitempty"`
	Cursor         string `json:"cursor,omitempty"`
	FilterDigest   string `json:"filterDigest,omitempty"`
	Limit          int    `json:"limit,omitempty"`
	IssuedAtUnix   int64  `json:"issuedAtUnix"`
	ExpiresAtUnix  int64  `json:"expiresAtUnix"`
}

type Binding struct {
	Kind           string
	WorkspaceID    string
	InstallationID string
	ConnectionID   string
	Generation     string
	AgentID        string
	Action         string
}
