// Code generated by ent, DO NOT EDIT.

package tokenfreeze

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.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldEQ(FieldID, id))
}

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

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

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

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

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

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

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

// IDLTE applies the LTE predicate on the ID field.
func IDLTE(id uuid.UUID) predicate.TokenFreeze {
	return predicate.TokenFreeze(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.TokenFreeze {
	return predicate.TokenFreeze(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.TokenFreeze {
	return predicate.TokenFreeze(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.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldEQ(FieldOwnerPublicKey, v))
}

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

// IssuerSignature applies equality check predicate on the "issuer_signature" field. It's identical to IssuerSignatureEQ.
func IssuerSignature(v []byte) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldEQ(FieldIssuerSignature, v))
}

// WalletProvidedFreezeTimestamp applies equality check predicate on the "wallet_provided_freeze_timestamp" field. It's identical to WalletProvidedFreezeTimestampEQ.
func WalletProvidedFreezeTimestamp(v uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldEQ(FieldWalletProvidedFreezeTimestamp, v))
}

// WalletProvidedThawTimestamp applies equality check predicate on the "wallet_provided_thaw_timestamp" field. It's identical to WalletProvidedThawTimestampEQ.
func WalletProvidedThawTimestamp(v uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldEQ(FieldWalletProvidedThawTimestamp, v))
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// IssuerSignatureEQ applies the EQ predicate on the "issuer_signature" field.
func IssuerSignatureEQ(v []byte) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldEQ(FieldIssuerSignature, v))
}

// IssuerSignatureNEQ applies the NEQ predicate on the "issuer_signature" field.
func IssuerSignatureNEQ(v []byte) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldNEQ(FieldIssuerSignature, v))
}

// IssuerSignatureIn applies the In predicate on the "issuer_signature" field.
func IssuerSignatureIn(vs ...[]byte) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldIn(FieldIssuerSignature, vs...))
}

// IssuerSignatureNotIn applies the NotIn predicate on the "issuer_signature" field.
func IssuerSignatureNotIn(vs ...[]byte) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldNotIn(FieldIssuerSignature, vs...))
}

// IssuerSignatureGT applies the GT predicate on the "issuer_signature" field.
func IssuerSignatureGT(v []byte) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldGT(FieldIssuerSignature, v))
}

// IssuerSignatureGTE applies the GTE predicate on the "issuer_signature" field.
func IssuerSignatureGTE(v []byte) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldGTE(FieldIssuerSignature, v))
}

// IssuerSignatureLT applies the LT predicate on the "issuer_signature" field.
func IssuerSignatureLT(v []byte) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldLT(FieldIssuerSignature, v))
}

// IssuerSignatureLTE applies the LTE predicate on the "issuer_signature" field.
func IssuerSignatureLTE(v []byte) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldLTE(FieldIssuerSignature, v))
}

// WalletProvidedFreezeTimestampEQ applies the EQ predicate on the "wallet_provided_freeze_timestamp" field.
func WalletProvidedFreezeTimestampEQ(v uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldEQ(FieldWalletProvidedFreezeTimestamp, v))
}

// WalletProvidedFreezeTimestampNEQ applies the NEQ predicate on the "wallet_provided_freeze_timestamp" field.
func WalletProvidedFreezeTimestampNEQ(v uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldNEQ(FieldWalletProvidedFreezeTimestamp, v))
}

// WalletProvidedFreezeTimestampIn applies the In predicate on the "wallet_provided_freeze_timestamp" field.
func WalletProvidedFreezeTimestampIn(vs ...uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldIn(FieldWalletProvidedFreezeTimestamp, vs...))
}

// WalletProvidedFreezeTimestampNotIn applies the NotIn predicate on the "wallet_provided_freeze_timestamp" field.
func WalletProvidedFreezeTimestampNotIn(vs ...uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldNotIn(FieldWalletProvidedFreezeTimestamp, vs...))
}

// WalletProvidedFreezeTimestampGT applies the GT predicate on the "wallet_provided_freeze_timestamp" field.
func WalletProvidedFreezeTimestampGT(v uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldGT(FieldWalletProvidedFreezeTimestamp, v))
}

// WalletProvidedFreezeTimestampGTE applies the GTE predicate on the "wallet_provided_freeze_timestamp" field.
func WalletProvidedFreezeTimestampGTE(v uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldGTE(FieldWalletProvidedFreezeTimestamp, v))
}

// WalletProvidedFreezeTimestampLT applies the LT predicate on the "wallet_provided_freeze_timestamp" field.
func WalletProvidedFreezeTimestampLT(v uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldLT(FieldWalletProvidedFreezeTimestamp, v))
}

// WalletProvidedFreezeTimestampLTE applies the LTE predicate on the "wallet_provided_freeze_timestamp" field.
func WalletProvidedFreezeTimestampLTE(v uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldLTE(FieldWalletProvidedFreezeTimestamp, v))
}

// WalletProvidedThawTimestampEQ applies the EQ predicate on the "wallet_provided_thaw_timestamp" field.
func WalletProvidedThawTimestampEQ(v uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldEQ(FieldWalletProvidedThawTimestamp, v))
}

// WalletProvidedThawTimestampNEQ applies the NEQ predicate on the "wallet_provided_thaw_timestamp" field.
func WalletProvidedThawTimestampNEQ(v uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldNEQ(FieldWalletProvidedThawTimestamp, v))
}

// WalletProvidedThawTimestampIn applies the In predicate on the "wallet_provided_thaw_timestamp" field.
func WalletProvidedThawTimestampIn(vs ...uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldIn(FieldWalletProvidedThawTimestamp, vs...))
}

// WalletProvidedThawTimestampNotIn applies the NotIn predicate on the "wallet_provided_thaw_timestamp" field.
func WalletProvidedThawTimestampNotIn(vs ...uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldNotIn(FieldWalletProvidedThawTimestamp, vs...))
}

// WalletProvidedThawTimestampGT applies the GT predicate on the "wallet_provided_thaw_timestamp" field.
func WalletProvidedThawTimestampGT(v uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldGT(FieldWalletProvidedThawTimestamp, v))
}

// WalletProvidedThawTimestampGTE applies the GTE predicate on the "wallet_provided_thaw_timestamp" field.
func WalletProvidedThawTimestampGTE(v uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldGTE(FieldWalletProvidedThawTimestamp, v))
}

// WalletProvidedThawTimestampLT applies the LT predicate on the "wallet_provided_thaw_timestamp" field.
func WalletProvidedThawTimestampLT(v uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldLT(FieldWalletProvidedThawTimestamp, v))
}

// WalletProvidedThawTimestampLTE applies the LTE predicate on the "wallet_provided_thaw_timestamp" field.
func WalletProvidedThawTimestampLTE(v uint64) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldLTE(FieldWalletProvidedThawTimestamp, v))
}

// WalletProvidedThawTimestampIsNil applies the IsNil predicate on the "wallet_provided_thaw_timestamp" field.
func WalletProvidedThawTimestampIsNil() predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldIsNull(FieldWalletProvidedThawTimestamp))
}

// WalletProvidedThawTimestampNotNil applies the NotNil predicate on the "wallet_provided_thaw_timestamp" field.
func WalletProvidedThawTimestampNotNil() predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.FieldNotNull(FieldWalletProvidedThawTimestamp))
}

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

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

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

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

// HasTokenCreate applies the HasEdge predicate on the "token_create" edge.
func HasTokenCreate() predicate.TokenFreeze {
	return predicate.TokenFreeze(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.TokenFreeze {
	return predicate.TokenFreeze(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.TokenFreeze) predicate.TokenFreeze {
	return predicate.TokenFreeze(sql.AndPredicates(predicates...))
}

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

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