// Code generated by ent, DO NOT EDIT.

package tokenoutput

import (
	"time"

	"entgo.io/ent/dialect/sql"
	"entgo.io/ent/dialect/sql/sqlgraph"
	"github.com/google/uuid"
	"github.com/lightsparkdev/spark/common/keys"
	"github.com/lightsparkdev/spark/so/ent/predicate"
	"github.com/lightsparkdev/spark/so/ent/schema/schematype"
)

// ID filters vertices based on their ID field.
func ID(id uuid.UUID) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldID, id))
}

// IDEQ applies the EQ predicate on the ID field.
func IDEQ(id uuid.UUID) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldID, id))
}

// IDNEQ applies the NEQ predicate on the ID field.
func IDNEQ(id uuid.UUID) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNEQ(FieldID, id))
}

// IDIn applies the In predicate on the ID field.
func IDIn(ids ...uuid.UUID) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIn(FieldID, ids...))
}

// IDNotIn applies the NotIn predicate on the ID field.
func IDNotIn(ids ...uuid.UUID) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotIn(FieldID, ids...))
}

// IDGT applies the GT predicate on the ID field.
func IDGT(id uuid.UUID) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGT(FieldID, id))
}

// IDGTE applies the GTE predicate on the ID field.
func IDGTE(id uuid.UUID) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGTE(FieldID, id))
}

// IDLT applies the LT predicate on the ID field.
func IDLT(id uuid.UUID) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLT(FieldID, id))
}

// IDLTE applies the LTE predicate on the ID field.
func IDLTE(id uuid.UUID) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLTE(FieldID, id))
}

// CreateTime applies equality check predicate on the "create_time" field. It's identical to CreateTimeEQ.
func CreateTime(v time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldCreateTime, v))
}

// UpdateTime applies equality check predicate on the "update_time" field. It's identical to UpdateTimeEQ.
func UpdateTime(v time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldUpdateTime, v))
}

// OwnerPublicKey applies equality check predicate on the "owner_public_key" field. It's identical to OwnerPublicKeyEQ.
func OwnerPublicKey(v keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldOwnerPublicKey, v))
}

// WithdrawBondSats applies equality check predicate on the "withdraw_bond_sats" field. It's identical to WithdrawBondSatsEQ.
func WithdrawBondSats(v uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldWithdrawBondSats, v))
}

// WithdrawRelativeBlockLocktime applies equality check predicate on the "withdraw_relative_block_locktime" field. It's identical to WithdrawRelativeBlockLocktimeEQ.
func WithdrawRelativeBlockLocktime(v uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldWithdrawRelativeBlockLocktime, v))
}

// WithdrawRevocationCommitment applies equality check predicate on the "withdraw_revocation_commitment" field. It's identical to WithdrawRevocationCommitmentEQ.
func WithdrawRevocationCommitment(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldWithdrawRevocationCommitment, v))
}

// TokenPublicKey applies equality check predicate on the "token_public_key" field. It's identical to TokenPublicKeyEQ.
func TokenPublicKey(v keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldTokenPublicKey, v))
}

// TokenAmount applies equality check predicate on the "token_amount" field. It's identical to TokenAmountEQ.
func TokenAmount(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldTokenAmount, v))
}

// CreatedTransactionOutputVout applies equality check predicate on the "created_transaction_output_vout" field. It's identical to CreatedTransactionOutputVoutEQ.
func CreatedTransactionOutputVout(v int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldCreatedTransactionOutputVout, v))
}

// SpentOwnershipSignature applies equality check predicate on the "spent_ownership_signature" field. It's identical to SpentOwnershipSignatureEQ.
func SpentOwnershipSignature(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldSpentOwnershipSignature, v))
}

// SpentOperatorSpecificOwnershipSignature applies equality check predicate on the "spent_operator_specific_ownership_signature" field. It's identical to SpentOperatorSpecificOwnershipSignatureEQ.
func SpentOperatorSpecificOwnershipSignature(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldSpentOperatorSpecificOwnershipSignature, v))
}

// SpentTransactionInputVout applies equality check predicate on the "spent_transaction_input_vout" field. It's identical to SpentTransactionInputVoutEQ.
func SpentTransactionInputVout(v int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldSpentTransactionInputVout, v))
}

// SpentRevocationSecret applies equality check predicate on the "spent_revocation_secret" field. It's identical to SpentRevocationSecretEQ.
func SpentRevocationSecret(v keys.Private) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldSpentRevocationSecret, v))
}

// ConfirmedWithdrawBlockHash applies equality check predicate on the "confirmed_withdraw_block_hash" field. It's identical to ConfirmedWithdrawBlockHashEQ.
func ConfirmedWithdrawBlockHash(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldConfirmedWithdrawBlockHash, v))
}

// TokenIdentifier applies equality check predicate on the "token_identifier" field. It's identical to TokenIdentifierEQ.
func TokenIdentifier(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldTokenIdentifier, v))
}

// TokenCreateID applies equality check predicate on the "token_create_id" field. It's identical to TokenCreateIDEQ.
func TokenCreateID(v uuid.UUID) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldTokenCreateID, v))
}

// CreateTimeEQ applies the EQ predicate on the "create_time" field.
func CreateTimeEQ(v time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldCreateTime, v))
}

// CreateTimeNEQ applies the NEQ predicate on the "create_time" field.
func CreateTimeNEQ(v time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNEQ(FieldCreateTime, v))
}

// CreateTimeIn applies the In predicate on the "create_time" field.
func CreateTimeIn(vs ...time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIn(FieldCreateTime, vs...))
}

// CreateTimeNotIn applies the NotIn predicate on the "create_time" field.
func CreateTimeNotIn(vs ...time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotIn(FieldCreateTime, vs...))
}

// CreateTimeGT applies the GT predicate on the "create_time" field.
func CreateTimeGT(v time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGT(FieldCreateTime, v))
}

// CreateTimeGTE applies the GTE predicate on the "create_time" field.
func CreateTimeGTE(v time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGTE(FieldCreateTime, v))
}

// CreateTimeLT applies the LT predicate on the "create_time" field.
func CreateTimeLT(v time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLT(FieldCreateTime, v))
}

// CreateTimeLTE applies the LTE predicate on the "create_time" field.
func CreateTimeLTE(v time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLTE(FieldCreateTime, v))
}

// UpdateTimeEQ applies the EQ predicate on the "update_time" field.
func UpdateTimeEQ(v time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldUpdateTime, v))
}

// UpdateTimeNEQ applies the NEQ predicate on the "update_time" field.
func UpdateTimeNEQ(v time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNEQ(FieldUpdateTime, v))
}

// UpdateTimeIn applies the In predicate on the "update_time" field.
func UpdateTimeIn(vs ...time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIn(FieldUpdateTime, vs...))
}

// UpdateTimeNotIn applies the NotIn predicate on the "update_time" field.
func UpdateTimeNotIn(vs ...time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotIn(FieldUpdateTime, vs...))
}

// UpdateTimeGT applies the GT predicate on the "update_time" field.
func UpdateTimeGT(v time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGT(FieldUpdateTime, v))
}

// UpdateTimeGTE applies the GTE predicate on the "update_time" field.
func UpdateTimeGTE(v time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGTE(FieldUpdateTime, v))
}

// UpdateTimeLT applies the LT predicate on the "update_time" field.
func UpdateTimeLT(v time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLT(FieldUpdateTime, v))
}

// UpdateTimeLTE applies the LTE predicate on the "update_time" field.
func UpdateTimeLTE(v time.Time) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLTE(FieldUpdateTime, v))
}

// StatusEQ applies the EQ predicate on the "status" field.
func StatusEQ(v schematype.TokenOutputStatus) predicate.TokenOutput {
	vc := v
	return predicate.TokenOutput(sql.FieldEQ(FieldStatus, vc))
}

// StatusNEQ applies the NEQ predicate on the "status" field.
func StatusNEQ(v schematype.TokenOutputStatus) predicate.TokenOutput {
	vc := v
	return predicate.TokenOutput(sql.FieldNEQ(FieldStatus, vc))
}

// StatusIn applies the In predicate on the "status" field.
func StatusIn(vs ...schematype.TokenOutputStatus) predicate.TokenOutput {
	v := make([]any, len(vs))
	for i := range v {
		v[i] = vs[i]
	}
	return predicate.TokenOutput(sql.FieldIn(FieldStatus, v...))
}

// StatusNotIn applies the NotIn predicate on the "status" field.
func StatusNotIn(vs ...schematype.TokenOutputStatus) predicate.TokenOutput {
	v := make([]any, len(vs))
	for i := range v {
		v[i] = vs[i]
	}
	return predicate.TokenOutput(sql.FieldNotIn(FieldStatus, v...))
}

// OwnerPublicKeyEQ applies the EQ predicate on the "owner_public_key" field.
func OwnerPublicKeyEQ(v keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldOwnerPublicKey, v))
}

// OwnerPublicKeyNEQ applies the NEQ predicate on the "owner_public_key" field.
func OwnerPublicKeyNEQ(v keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNEQ(FieldOwnerPublicKey, v))
}

// OwnerPublicKeyIn applies the In predicate on the "owner_public_key" field.
func OwnerPublicKeyIn(vs ...keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIn(FieldOwnerPublicKey, vs...))
}

// OwnerPublicKeyNotIn applies the NotIn predicate on the "owner_public_key" field.
func OwnerPublicKeyNotIn(vs ...keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotIn(FieldOwnerPublicKey, vs...))
}

// OwnerPublicKeyGT applies the GT predicate on the "owner_public_key" field.
func OwnerPublicKeyGT(v keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGT(FieldOwnerPublicKey, v))
}

// OwnerPublicKeyGTE applies the GTE predicate on the "owner_public_key" field.
func OwnerPublicKeyGTE(v keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGTE(FieldOwnerPublicKey, v))
}

// OwnerPublicKeyLT applies the LT predicate on the "owner_public_key" field.
func OwnerPublicKeyLT(v keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLT(FieldOwnerPublicKey, v))
}

// OwnerPublicKeyLTE applies the LTE predicate on the "owner_public_key" field.
func OwnerPublicKeyLTE(v keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLTE(FieldOwnerPublicKey, v))
}

// WithdrawBondSatsEQ applies the EQ predicate on the "withdraw_bond_sats" field.
func WithdrawBondSatsEQ(v uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldWithdrawBondSats, v))
}

// WithdrawBondSatsNEQ applies the NEQ predicate on the "withdraw_bond_sats" field.
func WithdrawBondSatsNEQ(v uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNEQ(FieldWithdrawBondSats, v))
}

// WithdrawBondSatsIn applies the In predicate on the "withdraw_bond_sats" field.
func WithdrawBondSatsIn(vs ...uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIn(FieldWithdrawBondSats, vs...))
}

// WithdrawBondSatsNotIn applies the NotIn predicate on the "withdraw_bond_sats" field.
func WithdrawBondSatsNotIn(vs ...uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotIn(FieldWithdrawBondSats, vs...))
}

// WithdrawBondSatsGT applies the GT predicate on the "withdraw_bond_sats" field.
func WithdrawBondSatsGT(v uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGT(FieldWithdrawBondSats, v))
}

// WithdrawBondSatsGTE applies the GTE predicate on the "withdraw_bond_sats" field.
func WithdrawBondSatsGTE(v uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGTE(FieldWithdrawBondSats, v))
}

// WithdrawBondSatsLT applies the LT predicate on the "withdraw_bond_sats" field.
func WithdrawBondSatsLT(v uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLT(FieldWithdrawBondSats, v))
}

// WithdrawBondSatsLTE applies the LTE predicate on the "withdraw_bond_sats" field.
func WithdrawBondSatsLTE(v uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLTE(FieldWithdrawBondSats, v))
}

// WithdrawRelativeBlockLocktimeEQ applies the EQ predicate on the "withdraw_relative_block_locktime" field.
func WithdrawRelativeBlockLocktimeEQ(v uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldWithdrawRelativeBlockLocktime, v))
}

// WithdrawRelativeBlockLocktimeNEQ applies the NEQ predicate on the "withdraw_relative_block_locktime" field.
func WithdrawRelativeBlockLocktimeNEQ(v uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNEQ(FieldWithdrawRelativeBlockLocktime, v))
}

// WithdrawRelativeBlockLocktimeIn applies the In predicate on the "withdraw_relative_block_locktime" field.
func WithdrawRelativeBlockLocktimeIn(vs ...uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIn(FieldWithdrawRelativeBlockLocktime, vs...))
}

// WithdrawRelativeBlockLocktimeNotIn applies the NotIn predicate on the "withdraw_relative_block_locktime" field.
func WithdrawRelativeBlockLocktimeNotIn(vs ...uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotIn(FieldWithdrawRelativeBlockLocktime, vs...))
}

// WithdrawRelativeBlockLocktimeGT applies the GT predicate on the "withdraw_relative_block_locktime" field.
func WithdrawRelativeBlockLocktimeGT(v uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGT(FieldWithdrawRelativeBlockLocktime, v))
}

// WithdrawRelativeBlockLocktimeGTE applies the GTE predicate on the "withdraw_relative_block_locktime" field.
func WithdrawRelativeBlockLocktimeGTE(v uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGTE(FieldWithdrawRelativeBlockLocktime, v))
}

// WithdrawRelativeBlockLocktimeLT applies the LT predicate on the "withdraw_relative_block_locktime" field.
func WithdrawRelativeBlockLocktimeLT(v uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLT(FieldWithdrawRelativeBlockLocktime, v))
}

// WithdrawRelativeBlockLocktimeLTE applies the LTE predicate on the "withdraw_relative_block_locktime" field.
func WithdrawRelativeBlockLocktimeLTE(v uint64) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLTE(FieldWithdrawRelativeBlockLocktime, v))
}

// WithdrawRevocationCommitmentEQ applies the EQ predicate on the "withdraw_revocation_commitment" field.
func WithdrawRevocationCommitmentEQ(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldWithdrawRevocationCommitment, v))
}

// WithdrawRevocationCommitmentNEQ applies the NEQ predicate on the "withdraw_revocation_commitment" field.
func WithdrawRevocationCommitmentNEQ(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNEQ(FieldWithdrawRevocationCommitment, v))
}

// WithdrawRevocationCommitmentIn applies the In predicate on the "withdraw_revocation_commitment" field.
func WithdrawRevocationCommitmentIn(vs ...[]byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIn(FieldWithdrawRevocationCommitment, vs...))
}

// WithdrawRevocationCommitmentNotIn applies the NotIn predicate on the "withdraw_revocation_commitment" field.
func WithdrawRevocationCommitmentNotIn(vs ...[]byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotIn(FieldWithdrawRevocationCommitment, vs...))
}

// WithdrawRevocationCommitmentGT applies the GT predicate on the "withdraw_revocation_commitment" field.
func WithdrawRevocationCommitmentGT(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGT(FieldWithdrawRevocationCommitment, v))
}

// WithdrawRevocationCommitmentGTE applies the GTE predicate on the "withdraw_revocation_commitment" field.
func WithdrawRevocationCommitmentGTE(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGTE(FieldWithdrawRevocationCommitment, v))
}

// WithdrawRevocationCommitmentLT applies the LT predicate on the "withdraw_revocation_commitment" field.
func WithdrawRevocationCommitmentLT(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLT(FieldWithdrawRevocationCommitment, v))
}

// WithdrawRevocationCommitmentLTE applies the LTE predicate on the "withdraw_revocation_commitment" field.
func WithdrawRevocationCommitmentLTE(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLTE(FieldWithdrawRevocationCommitment, v))
}

// TokenPublicKeyEQ applies the EQ predicate on the "token_public_key" field.
func TokenPublicKeyEQ(v keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldTokenPublicKey, v))
}

// TokenPublicKeyNEQ applies the NEQ predicate on the "token_public_key" field.
func TokenPublicKeyNEQ(v keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNEQ(FieldTokenPublicKey, v))
}

// TokenPublicKeyIn applies the In predicate on the "token_public_key" field.
func TokenPublicKeyIn(vs ...keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIn(FieldTokenPublicKey, vs...))
}

// TokenPublicKeyNotIn applies the NotIn predicate on the "token_public_key" field.
func TokenPublicKeyNotIn(vs ...keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotIn(FieldTokenPublicKey, vs...))
}

// TokenPublicKeyGT applies the GT predicate on the "token_public_key" field.
func TokenPublicKeyGT(v keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGT(FieldTokenPublicKey, v))
}

// TokenPublicKeyGTE applies the GTE predicate on the "token_public_key" field.
func TokenPublicKeyGTE(v keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGTE(FieldTokenPublicKey, v))
}

// TokenPublicKeyLT applies the LT predicate on the "token_public_key" field.
func TokenPublicKeyLT(v keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLT(FieldTokenPublicKey, v))
}

// TokenPublicKeyLTE applies the LTE predicate on the "token_public_key" field.
func TokenPublicKeyLTE(v keys.Public) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLTE(FieldTokenPublicKey, v))
}

// TokenPublicKeyIsNil applies the IsNil predicate on the "token_public_key" field.
func TokenPublicKeyIsNil() predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIsNull(FieldTokenPublicKey))
}

// TokenPublicKeyNotNil applies the NotNil predicate on the "token_public_key" field.
func TokenPublicKeyNotNil() predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotNull(FieldTokenPublicKey))
}

// TokenAmountEQ applies the EQ predicate on the "token_amount" field.
func TokenAmountEQ(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldTokenAmount, v))
}

// TokenAmountNEQ applies the NEQ predicate on the "token_amount" field.
func TokenAmountNEQ(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNEQ(FieldTokenAmount, v))
}

// TokenAmountIn applies the In predicate on the "token_amount" field.
func TokenAmountIn(vs ...[]byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIn(FieldTokenAmount, vs...))
}

// TokenAmountNotIn applies the NotIn predicate on the "token_amount" field.
func TokenAmountNotIn(vs ...[]byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotIn(FieldTokenAmount, vs...))
}

// TokenAmountGT applies the GT predicate on the "token_amount" field.
func TokenAmountGT(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGT(FieldTokenAmount, v))
}

// TokenAmountGTE applies the GTE predicate on the "token_amount" field.
func TokenAmountGTE(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGTE(FieldTokenAmount, v))
}

// TokenAmountLT applies the LT predicate on the "token_amount" field.
func TokenAmountLT(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLT(FieldTokenAmount, v))
}

// TokenAmountLTE applies the LTE predicate on the "token_amount" field.
func TokenAmountLTE(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLTE(FieldTokenAmount, v))
}

// CreatedTransactionOutputVoutEQ applies the EQ predicate on the "created_transaction_output_vout" field.
func CreatedTransactionOutputVoutEQ(v int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldCreatedTransactionOutputVout, v))
}

// CreatedTransactionOutputVoutNEQ applies the NEQ predicate on the "created_transaction_output_vout" field.
func CreatedTransactionOutputVoutNEQ(v int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNEQ(FieldCreatedTransactionOutputVout, v))
}

// CreatedTransactionOutputVoutIn applies the In predicate on the "created_transaction_output_vout" field.
func CreatedTransactionOutputVoutIn(vs ...int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIn(FieldCreatedTransactionOutputVout, vs...))
}

// CreatedTransactionOutputVoutNotIn applies the NotIn predicate on the "created_transaction_output_vout" field.
func CreatedTransactionOutputVoutNotIn(vs ...int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotIn(FieldCreatedTransactionOutputVout, vs...))
}

// CreatedTransactionOutputVoutGT applies the GT predicate on the "created_transaction_output_vout" field.
func CreatedTransactionOutputVoutGT(v int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGT(FieldCreatedTransactionOutputVout, v))
}

// CreatedTransactionOutputVoutGTE applies the GTE predicate on the "created_transaction_output_vout" field.
func CreatedTransactionOutputVoutGTE(v int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGTE(FieldCreatedTransactionOutputVout, v))
}

// CreatedTransactionOutputVoutLT applies the LT predicate on the "created_transaction_output_vout" field.
func CreatedTransactionOutputVoutLT(v int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLT(FieldCreatedTransactionOutputVout, v))
}

// CreatedTransactionOutputVoutLTE applies the LTE predicate on the "created_transaction_output_vout" field.
func CreatedTransactionOutputVoutLTE(v int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLTE(FieldCreatedTransactionOutputVout, v))
}

// SpentOwnershipSignatureEQ applies the EQ predicate on the "spent_ownership_signature" field.
func SpentOwnershipSignatureEQ(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldSpentOwnershipSignature, v))
}

// SpentOwnershipSignatureNEQ applies the NEQ predicate on the "spent_ownership_signature" field.
func SpentOwnershipSignatureNEQ(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNEQ(FieldSpentOwnershipSignature, v))
}

// SpentOwnershipSignatureIn applies the In predicate on the "spent_ownership_signature" field.
func SpentOwnershipSignatureIn(vs ...[]byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIn(FieldSpentOwnershipSignature, vs...))
}

// SpentOwnershipSignatureNotIn applies the NotIn predicate on the "spent_ownership_signature" field.
func SpentOwnershipSignatureNotIn(vs ...[]byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotIn(FieldSpentOwnershipSignature, vs...))
}

// SpentOwnershipSignatureGT applies the GT predicate on the "spent_ownership_signature" field.
func SpentOwnershipSignatureGT(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGT(FieldSpentOwnershipSignature, v))
}

// SpentOwnershipSignatureGTE applies the GTE predicate on the "spent_ownership_signature" field.
func SpentOwnershipSignatureGTE(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGTE(FieldSpentOwnershipSignature, v))
}

// SpentOwnershipSignatureLT applies the LT predicate on the "spent_ownership_signature" field.
func SpentOwnershipSignatureLT(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLT(FieldSpentOwnershipSignature, v))
}

// SpentOwnershipSignatureLTE applies the LTE predicate on the "spent_ownership_signature" field.
func SpentOwnershipSignatureLTE(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLTE(FieldSpentOwnershipSignature, v))
}

// SpentOwnershipSignatureIsNil applies the IsNil predicate on the "spent_ownership_signature" field.
func SpentOwnershipSignatureIsNil() predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIsNull(FieldSpentOwnershipSignature))
}

// SpentOwnershipSignatureNotNil applies the NotNil predicate on the "spent_ownership_signature" field.
func SpentOwnershipSignatureNotNil() predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotNull(FieldSpentOwnershipSignature))
}

// SpentOperatorSpecificOwnershipSignatureEQ applies the EQ predicate on the "spent_operator_specific_ownership_signature" field.
func SpentOperatorSpecificOwnershipSignatureEQ(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldSpentOperatorSpecificOwnershipSignature, v))
}

// SpentOperatorSpecificOwnershipSignatureNEQ applies the NEQ predicate on the "spent_operator_specific_ownership_signature" field.
func SpentOperatorSpecificOwnershipSignatureNEQ(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNEQ(FieldSpentOperatorSpecificOwnershipSignature, v))
}

// SpentOperatorSpecificOwnershipSignatureIn applies the In predicate on the "spent_operator_specific_ownership_signature" field.
func SpentOperatorSpecificOwnershipSignatureIn(vs ...[]byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIn(FieldSpentOperatorSpecificOwnershipSignature, vs...))
}

// SpentOperatorSpecificOwnershipSignatureNotIn applies the NotIn predicate on the "spent_operator_specific_ownership_signature" field.
func SpentOperatorSpecificOwnershipSignatureNotIn(vs ...[]byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotIn(FieldSpentOperatorSpecificOwnershipSignature, vs...))
}

// SpentOperatorSpecificOwnershipSignatureGT applies the GT predicate on the "spent_operator_specific_ownership_signature" field.
func SpentOperatorSpecificOwnershipSignatureGT(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGT(FieldSpentOperatorSpecificOwnershipSignature, v))
}

// SpentOperatorSpecificOwnershipSignatureGTE applies the GTE predicate on the "spent_operator_specific_ownership_signature" field.
func SpentOperatorSpecificOwnershipSignatureGTE(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGTE(FieldSpentOperatorSpecificOwnershipSignature, v))
}

// SpentOperatorSpecificOwnershipSignatureLT applies the LT predicate on the "spent_operator_specific_ownership_signature" field.
func SpentOperatorSpecificOwnershipSignatureLT(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLT(FieldSpentOperatorSpecificOwnershipSignature, v))
}

// SpentOperatorSpecificOwnershipSignatureLTE applies the LTE predicate on the "spent_operator_specific_ownership_signature" field.
func SpentOperatorSpecificOwnershipSignatureLTE(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLTE(FieldSpentOperatorSpecificOwnershipSignature, v))
}

// SpentOperatorSpecificOwnershipSignatureIsNil applies the IsNil predicate on the "spent_operator_specific_ownership_signature" field.
func SpentOperatorSpecificOwnershipSignatureIsNil() predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIsNull(FieldSpentOperatorSpecificOwnershipSignature))
}

// SpentOperatorSpecificOwnershipSignatureNotNil applies the NotNil predicate on the "spent_operator_specific_ownership_signature" field.
func SpentOperatorSpecificOwnershipSignatureNotNil() predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotNull(FieldSpentOperatorSpecificOwnershipSignature))
}

// SpentTransactionInputVoutEQ applies the EQ predicate on the "spent_transaction_input_vout" field.
func SpentTransactionInputVoutEQ(v int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldSpentTransactionInputVout, v))
}

// SpentTransactionInputVoutNEQ applies the NEQ predicate on the "spent_transaction_input_vout" field.
func SpentTransactionInputVoutNEQ(v int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNEQ(FieldSpentTransactionInputVout, v))
}

// SpentTransactionInputVoutIn applies the In predicate on the "spent_transaction_input_vout" field.
func SpentTransactionInputVoutIn(vs ...int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIn(FieldSpentTransactionInputVout, vs...))
}

// SpentTransactionInputVoutNotIn applies the NotIn predicate on the "spent_transaction_input_vout" field.
func SpentTransactionInputVoutNotIn(vs ...int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotIn(FieldSpentTransactionInputVout, vs...))
}

// SpentTransactionInputVoutGT applies the GT predicate on the "spent_transaction_input_vout" field.
func SpentTransactionInputVoutGT(v int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGT(FieldSpentTransactionInputVout, v))
}

// SpentTransactionInputVoutGTE applies the GTE predicate on the "spent_transaction_input_vout" field.
func SpentTransactionInputVoutGTE(v int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGTE(FieldSpentTransactionInputVout, v))
}

// SpentTransactionInputVoutLT applies the LT predicate on the "spent_transaction_input_vout" field.
func SpentTransactionInputVoutLT(v int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLT(FieldSpentTransactionInputVout, v))
}

// SpentTransactionInputVoutLTE applies the LTE predicate on the "spent_transaction_input_vout" field.
func SpentTransactionInputVoutLTE(v int32) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLTE(FieldSpentTransactionInputVout, v))
}

// SpentTransactionInputVoutIsNil applies the IsNil predicate on the "spent_transaction_input_vout" field.
func SpentTransactionInputVoutIsNil() predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIsNull(FieldSpentTransactionInputVout))
}

// SpentTransactionInputVoutNotNil applies the NotNil predicate on the "spent_transaction_input_vout" field.
func SpentTransactionInputVoutNotNil() predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotNull(FieldSpentTransactionInputVout))
}

// SpentRevocationSecretEQ applies the EQ predicate on the "spent_revocation_secret" field.
func SpentRevocationSecretEQ(v keys.Private) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldSpentRevocationSecret, v))
}

// SpentRevocationSecretNEQ applies the NEQ predicate on the "spent_revocation_secret" field.
func SpentRevocationSecretNEQ(v keys.Private) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNEQ(FieldSpentRevocationSecret, v))
}

// SpentRevocationSecretIn applies the In predicate on the "spent_revocation_secret" field.
func SpentRevocationSecretIn(vs ...keys.Private) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIn(FieldSpentRevocationSecret, vs...))
}

// SpentRevocationSecretNotIn applies the NotIn predicate on the "spent_revocation_secret" field.
func SpentRevocationSecretNotIn(vs ...keys.Private) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotIn(FieldSpentRevocationSecret, vs...))
}

// SpentRevocationSecretGT applies the GT predicate on the "spent_revocation_secret" field.
func SpentRevocationSecretGT(v keys.Private) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGT(FieldSpentRevocationSecret, v))
}

// SpentRevocationSecretGTE applies the GTE predicate on the "spent_revocation_secret" field.
func SpentRevocationSecretGTE(v keys.Private) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGTE(FieldSpentRevocationSecret, v))
}

// SpentRevocationSecretLT applies the LT predicate on the "spent_revocation_secret" field.
func SpentRevocationSecretLT(v keys.Private) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLT(FieldSpentRevocationSecret, v))
}

// SpentRevocationSecretLTE applies the LTE predicate on the "spent_revocation_secret" field.
func SpentRevocationSecretLTE(v keys.Private) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLTE(FieldSpentRevocationSecret, v))
}

// SpentRevocationSecretIsNil applies the IsNil predicate on the "spent_revocation_secret" field.
func SpentRevocationSecretIsNil() predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIsNull(FieldSpentRevocationSecret))
}

// SpentRevocationSecretNotNil applies the NotNil predicate on the "spent_revocation_secret" field.
func SpentRevocationSecretNotNil() predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotNull(FieldSpentRevocationSecret))
}

// ConfirmedWithdrawBlockHashEQ applies the EQ predicate on the "confirmed_withdraw_block_hash" field.
func ConfirmedWithdrawBlockHashEQ(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldConfirmedWithdrawBlockHash, v))
}

// ConfirmedWithdrawBlockHashNEQ applies the NEQ predicate on the "confirmed_withdraw_block_hash" field.
func ConfirmedWithdrawBlockHashNEQ(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNEQ(FieldConfirmedWithdrawBlockHash, v))
}

// ConfirmedWithdrawBlockHashIn applies the In predicate on the "confirmed_withdraw_block_hash" field.
func ConfirmedWithdrawBlockHashIn(vs ...[]byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIn(FieldConfirmedWithdrawBlockHash, vs...))
}

// ConfirmedWithdrawBlockHashNotIn applies the NotIn predicate on the "confirmed_withdraw_block_hash" field.
func ConfirmedWithdrawBlockHashNotIn(vs ...[]byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotIn(FieldConfirmedWithdrawBlockHash, vs...))
}

// ConfirmedWithdrawBlockHashGT applies the GT predicate on the "confirmed_withdraw_block_hash" field.
func ConfirmedWithdrawBlockHashGT(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGT(FieldConfirmedWithdrawBlockHash, v))
}

// ConfirmedWithdrawBlockHashGTE applies the GTE predicate on the "confirmed_withdraw_block_hash" field.
func ConfirmedWithdrawBlockHashGTE(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGTE(FieldConfirmedWithdrawBlockHash, v))
}

// ConfirmedWithdrawBlockHashLT applies the LT predicate on the "confirmed_withdraw_block_hash" field.
func ConfirmedWithdrawBlockHashLT(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLT(FieldConfirmedWithdrawBlockHash, v))
}

// ConfirmedWithdrawBlockHashLTE applies the LTE predicate on the "confirmed_withdraw_block_hash" field.
func ConfirmedWithdrawBlockHashLTE(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLTE(FieldConfirmedWithdrawBlockHash, v))
}

// ConfirmedWithdrawBlockHashIsNil applies the IsNil predicate on the "confirmed_withdraw_block_hash" field.
func ConfirmedWithdrawBlockHashIsNil() predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIsNull(FieldConfirmedWithdrawBlockHash))
}

// ConfirmedWithdrawBlockHashNotNil applies the NotNil predicate on the "confirmed_withdraw_block_hash" field.
func ConfirmedWithdrawBlockHashNotNil() predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotNull(FieldConfirmedWithdrawBlockHash))
}

// NetworkEQ applies the EQ predicate on the "network" field.
func NetworkEQ(v schematype.Network) predicate.TokenOutput {
	vc := v
	return predicate.TokenOutput(sql.FieldEQ(FieldNetwork, vc))
}

// NetworkNEQ applies the NEQ predicate on the "network" field.
func NetworkNEQ(v schematype.Network) predicate.TokenOutput {
	vc := v
	return predicate.TokenOutput(sql.FieldNEQ(FieldNetwork, vc))
}

// NetworkIn applies the In predicate on the "network" field.
func NetworkIn(vs ...schematype.Network) predicate.TokenOutput {
	v := make([]any, len(vs))
	for i := range v {
		v[i] = vs[i]
	}
	return predicate.TokenOutput(sql.FieldIn(FieldNetwork, v...))
}

// NetworkNotIn applies the NotIn predicate on the "network" field.
func NetworkNotIn(vs ...schematype.Network) predicate.TokenOutput {
	v := make([]any, len(vs))
	for i := range v {
		v[i] = vs[i]
	}
	return predicate.TokenOutput(sql.FieldNotIn(FieldNetwork, v...))
}

// NetworkIsNil applies the IsNil predicate on the "network" field.
func NetworkIsNil() predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIsNull(FieldNetwork))
}

// NetworkNotNil applies the NotNil predicate on the "network" field.
func NetworkNotNil() predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotNull(FieldNetwork))
}

// TokenIdentifierEQ applies the EQ predicate on the "token_identifier" field.
func TokenIdentifierEQ(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldTokenIdentifier, v))
}

// TokenIdentifierNEQ applies the NEQ predicate on the "token_identifier" field.
func TokenIdentifierNEQ(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNEQ(FieldTokenIdentifier, v))
}

// TokenIdentifierIn applies the In predicate on the "token_identifier" field.
func TokenIdentifierIn(vs ...[]byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIn(FieldTokenIdentifier, vs...))
}

// TokenIdentifierNotIn applies the NotIn predicate on the "token_identifier" field.
func TokenIdentifierNotIn(vs ...[]byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotIn(FieldTokenIdentifier, vs...))
}

// TokenIdentifierGT applies the GT predicate on the "token_identifier" field.
func TokenIdentifierGT(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGT(FieldTokenIdentifier, v))
}

// TokenIdentifierGTE applies the GTE predicate on the "token_identifier" field.
func TokenIdentifierGTE(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldGTE(FieldTokenIdentifier, v))
}

// TokenIdentifierLT applies the LT predicate on the "token_identifier" field.
func TokenIdentifierLT(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLT(FieldTokenIdentifier, v))
}

// TokenIdentifierLTE applies the LTE predicate on the "token_identifier" field.
func TokenIdentifierLTE(v []byte) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldLTE(FieldTokenIdentifier, v))
}

// TokenCreateIDEQ applies the EQ predicate on the "token_create_id" field.
func TokenCreateIDEQ(v uuid.UUID) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldEQ(FieldTokenCreateID, v))
}

// TokenCreateIDNEQ applies the NEQ predicate on the "token_create_id" field.
func TokenCreateIDNEQ(v uuid.UUID) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNEQ(FieldTokenCreateID, v))
}

// TokenCreateIDIn applies the In predicate on the "token_create_id" field.
func TokenCreateIDIn(vs ...uuid.UUID) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldIn(FieldTokenCreateID, vs...))
}

// TokenCreateIDNotIn applies the NotIn predicate on the "token_create_id" field.
func TokenCreateIDNotIn(vs ...uuid.UUID) predicate.TokenOutput {
	return predicate.TokenOutput(sql.FieldNotIn(FieldTokenCreateID, vs...))
}

// HasRevocationKeyshare applies the HasEdge predicate on the "revocation_keyshare" edge.
func HasRevocationKeyshare() predicate.TokenOutput {
	return predicate.TokenOutput(func(s *sql.Selector) {
		step := sqlgraph.NewStep(
			sqlgraph.From(Table, FieldID),
			sqlgraph.Edge(sqlgraph.M2O, false, RevocationKeyshareTable, RevocationKeyshareColumn),
		)
		sqlgraph.HasNeighbors(s, step)
	})
}

// HasRevocationKeyshareWith applies the HasEdge predicate on the "revocation_keyshare" edge with a given conditions (other predicates).
func HasRevocationKeyshareWith(preds ...predicate.SigningKeyshare) predicate.TokenOutput {
	return predicate.TokenOutput(func(s *sql.Selector) {
		step := newRevocationKeyshareStep()
		sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
			for _, p := range preds {
				p(s)
			}
		})
	})
}

// HasOutputCreatedTokenTransaction applies the HasEdge predicate on the "output_created_token_transaction" edge.
func HasOutputCreatedTokenTransaction() predicate.TokenOutput {
	return predicate.TokenOutput(func(s *sql.Selector) {
		step := sqlgraph.NewStep(
			sqlgraph.From(Table, FieldID),
			sqlgraph.Edge(sqlgraph.M2O, false, OutputCreatedTokenTransactionTable, OutputCreatedTokenTransactionColumn),
		)
		sqlgraph.HasNeighbors(s, step)
	})
}

// HasOutputCreatedTokenTransactionWith applies the HasEdge predicate on the "output_created_token_transaction" edge with a given conditions (other predicates).
func HasOutputCreatedTokenTransactionWith(preds ...predicate.TokenTransaction) predicate.TokenOutput {
	return predicate.TokenOutput(func(s *sql.Selector) {
		step := newOutputCreatedTokenTransactionStep()
		sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
			for _, p := range preds {
				p(s)
			}
		})
	})
}

// HasOutputSpentTokenTransaction applies the HasEdge predicate on the "output_spent_token_transaction" edge.
func HasOutputSpentTokenTransaction() predicate.TokenOutput {
	return predicate.TokenOutput(func(s *sql.Selector) {
		step := sqlgraph.NewStep(
			sqlgraph.From(Table, FieldID),
			sqlgraph.Edge(sqlgraph.M2O, false, OutputSpentTokenTransactionTable, OutputSpentTokenTransactionColumn),
		)
		sqlgraph.HasNeighbors(s, step)
	})
}

// HasOutputSpentTokenTransactionWith applies the HasEdge predicate on the "output_spent_token_transaction" edge with a given conditions (other predicates).
func HasOutputSpentTokenTransactionWith(preds ...predicate.TokenTransaction) predicate.TokenOutput {
	return predicate.TokenOutput(func(s *sql.Selector) {
		step := newOutputSpentTokenTransactionStep()
		sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
			for _, p := range preds {
				p(s)
			}
		})
	})
}

// HasOutputSpentStartedTokenTransactions applies the HasEdge predicate on the "output_spent_started_token_transactions" edge.
func HasOutputSpentStartedTokenTransactions() predicate.TokenOutput {
	return predicate.TokenOutput(func(s *sql.Selector) {
		step := sqlgraph.NewStep(
			sqlgraph.From(Table, FieldID),
			sqlgraph.Edge(sqlgraph.M2M, false, OutputSpentStartedTokenTransactionsTable, OutputSpentStartedTokenTransactionsPrimaryKey...),
		)
		sqlgraph.HasNeighbors(s, step)
	})
}

// HasOutputSpentStartedTokenTransactionsWith applies the HasEdge predicate on the "output_spent_started_token_transactions" edge with a given conditions (other predicates).
func HasOutputSpentStartedTokenTransactionsWith(preds ...predicate.TokenTransaction) predicate.TokenOutput {
	return predicate.TokenOutput(func(s *sql.Selector) {
		step := newOutputSpentStartedTokenTransactionsStep()
		sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
			for _, p := range preds {
				p(s)
			}
		})
	})
}

// HasTokenPartialRevocationSecretShares applies the HasEdge predicate on the "token_partial_revocation_secret_shares" edge.
func HasTokenPartialRevocationSecretShares() predicate.TokenOutput {
	return predicate.TokenOutput(func(s *sql.Selector) {
		step := sqlgraph.NewStep(
			sqlgraph.From(Table, FieldID),
			sqlgraph.Edge(sqlgraph.O2M, false, TokenPartialRevocationSecretSharesTable, TokenPartialRevocationSecretSharesColumn),
		)
		sqlgraph.HasNeighbors(s, step)
	})
}

// HasTokenPartialRevocationSecretSharesWith applies the HasEdge predicate on the "token_partial_revocation_secret_shares" edge with a given conditions (other predicates).
func HasTokenPartialRevocationSecretSharesWith(preds ...predicate.TokenPartialRevocationSecretShare) predicate.TokenOutput {
	return predicate.TokenOutput(func(s *sql.Selector) {
		step := newTokenPartialRevocationSecretSharesStep()
		sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
			for _, p := range preds {
				p(s)
			}
		})
	})
}

// HasTokenCreate applies the HasEdge predicate on the "token_create" edge.
func HasTokenCreate() predicate.TokenOutput {
	return predicate.TokenOutput(func(s *sql.Selector) {
		step := sqlgraph.NewStep(
			sqlgraph.From(Table, FieldID),
			sqlgraph.Edge(sqlgraph.M2O, true, TokenCreateTable, TokenCreateColumn),
		)
		sqlgraph.HasNeighbors(s, step)
	})
}

// HasTokenCreateWith applies the HasEdge predicate on the "token_create" edge with a given conditions (other predicates).
func HasTokenCreateWith(preds ...predicate.TokenCreate) predicate.TokenOutput {
	return predicate.TokenOutput(func(s *sql.Selector) {
		step := newTokenCreateStep()
		sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
			for _, p := range preds {
				p(s)
			}
		})
	})
}

// And groups predicates with the AND operator between them.
func And(predicates ...predicate.TokenOutput) predicate.TokenOutput {
	return predicate.TokenOutput(sql.AndPredicates(predicates...))
}

// Or groups predicates with the OR operator between them.
func Or(predicates ...predicate.TokenOutput) predicate.TokenOutput {
	return predicate.TokenOutput(sql.OrPredicates(predicates...))
}

// Not applies the not operator on the given predicate.
func Not(p predicate.TokenOutput) predicate.TokenOutput {
	return predicate.TokenOutput(sql.NotPredicates(p))
}
