// Code generated by ent, DO NOT EDIT.

package usersignedtransaction

import (
	"time"

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

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

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

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

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

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

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

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

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

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

// Transaction applies equality check predicate on the "transaction" field. It's identical to TransactionEQ.
func Transaction(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldEQ(FieldTransaction, v))
}

// UserSignature applies equality check predicate on the "user_signature" field. It's identical to UserSignatureEQ.
func UserSignature(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldEQ(FieldUserSignature, v))
}

// SigningCommitments applies equality check predicate on the "signing_commitments" field. It's identical to SigningCommitmentsEQ.
func SigningCommitments(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldEQ(FieldSigningCommitments, v))
}

// UserSignatureCommitment applies equality check predicate on the "user_signature_commitment" field. It's identical to UserSignatureCommitmentEQ.
func UserSignatureCommitment(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldEQ(FieldUserSignatureCommitment, v))
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// TransactionEQ applies the EQ predicate on the "transaction" field.
func TransactionEQ(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldEQ(FieldTransaction, v))
}

// TransactionNEQ applies the NEQ predicate on the "transaction" field.
func TransactionNEQ(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldNEQ(FieldTransaction, v))
}

// TransactionIn applies the In predicate on the "transaction" field.
func TransactionIn(vs ...[]byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldIn(FieldTransaction, vs...))
}

// TransactionNotIn applies the NotIn predicate on the "transaction" field.
func TransactionNotIn(vs ...[]byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldNotIn(FieldTransaction, vs...))
}

// TransactionGT applies the GT predicate on the "transaction" field.
func TransactionGT(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldGT(FieldTransaction, v))
}

// TransactionGTE applies the GTE predicate on the "transaction" field.
func TransactionGTE(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldGTE(FieldTransaction, v))
}

// TransactionLT applies the LT predicate on the "transaction" field.
func TransactionLT(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldLT(FieldTransaction, v))
}

// TransactionLTE applies the LTE predicate on the "transaction" field.
func TransactionLTE(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldLTE(FieldTransaction, v))
}

// UserSignatureEQ applies the EQ predicate on the "user_signature" field.
func UserSignatureEQ(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldEQ(FieldUserSignature, v))
}

// UserSignatureNEQ applies the NEQ predicate on the "user_signature" field.
func UserSignatureNEQ(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldNEQ(FieldUserSignature, v))
}

// UserSignatureIn applies the In predicate on the "user_signature" field.
func UserSignatureIn(vs ...[]byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldIn(FieldUserSignature, vs...))
}

// UserSignatureNotIn applies the NotIn predicate on the "user_signature" field.
func UserSignatureNotIn(vs ...[]byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldNotIn(FieldUserSignature, vs...))
}

// UserSignatureGT applies the GT predicate on the "user_signature" field.
func UserSignatureGT(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldGT(FieldUserSignature, v))
}

// UserSignatureGTE applies the GTE predicate on the "user_signature" field.
func UserSignatureGTE(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldGTE(FieldUserSignature, v))
}

// UserSignatureLT applies the LT predicate on the "user_signature" field.
func UserSignatureLT(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldLT(FieldUserSignature, v))
}

// UserSignatureLTE applies the LTE predicate on the "user_signature" field.
func UserSignatureLTE(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldLTE(FieldUserSignature, v))
}

// SigningCommitmentsEQ applies the EQ predicate on the "signing_commitments" field.
func SigningCommitmentsEQ(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldEQ(FieldSigningCommitments, v))
}

// SigningCommitmentsNEQ applies the NEQ predicate on the "signing_commitments" field.
func SigningCommitmentsNEQ(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldNEQ(FieldSigningCommitments, v))
}

// SigningCommitmentsIn applies the In predicate on the "signing_commitments" field.
func SigningCommitmentsIn(vs ...[]byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldIn(FieldSigningCommitments, vs...))
}

// SigningCommitmentsNotIn applies the NotIn predicate on the "signing_commitments" field.
func SigningCommitmentsNotIn(vs ...[]byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldNotIn(FieldSigningCommitments, vs...))
}

// SigningCommitmentsGT applies the GT predicate on the "signing_commitments" field.
func SigningCommitmentsGT(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldGT(FieldSigningCommitments, v))
}

// SigningCommitmentsGTE applies the GTE predicate on the "signing_commitments" field.
func SigningCommitmentsGTE(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldGTE(FieldSigningCommitments, v))
}

// SigningCommitmentsLT applies the LT predicate on the "signing_commitments" field.
func SigningCommitmentsLT(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldLT(FieldSigningCommitments, v))
}

// SigningCommitmentsLTE applies the LTE predicate on the "signing_commitments" field.
func SigningCommitmentsLTE(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldLTE(FieldSigningCommitments, v))
}

// UserSignatureCommitmentEQ applies the EQ predicate on the "user_signature_commitment" field.
func UserSignatureCommitmentEQ(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldEQ(FieldUserSignatureCommitment, v))
}

// UserSignatureCommitmentNEQ applies the NEQ predicate on the "user_signature_commitment" field.
func UserSignatureCommitmentNEQ(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldNEQ(FieldUserSignatureCommitment, v))
}

// UserSignatureCommitmentIn applies the In predicate on the "user_signature_commitment" field.
func UserSignatureCommitmentIn(vs ...[]byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldIn(FieldUserSignatureCommitment, vs...))
}

// UserSignatureCommitmentNotIn applies the NotIn predicate on the "user_signature_commitment" field.
func UserSignatureCommitmentNotIn(vs ...[]byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldNotIn(FieldUserSignatureCommitment, vs...))
}

// UserSignatureCommitmentGT applies the GT predicate on the "user_signature_commitment" field.
func UserSignatureCommitmentGT(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldGT(FieldUserSignatureCommitment, v))
}

// UserSignatureCommitmentGTE applies the GTE predicate on the "user_signature_commitment" field.
func UserSignatureCommitmentGTE(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldGTE(FieldUserSignatureCommitment, v))
}

// UserSignatureCommitmentLT applies the LT predicate on the "user_signature_commitment" field.
func UserSignatureCommitmentLT(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldLT(FieldUserSignatureCommitment, v))
}

// UserSignatureCommitmentLTE applies the LTE predicate on the "user_signature_commitment" field.
func UserSignatureCommitmentLTE(v []byte) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.FieldLTE(FieldUserSignatureCommitment, v))
}

// HasTreeNode applies the HasEdge predicate on the "tree_node" edge.
func HasTreeNode() predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(func(s *sql.Selector) {
		step := sqlgraph.NewStep(
			sqlgraph.From(Table, FieldID),
			sqlgraph.Edge(sqlgraph.M2O, false, TreeNodeTable, TreeNodeColumn),
		)
		sqlgraph.HasNeighbors(s, step)
	})
}

// HasTreeNodeWith applies the HasEdge predicate on the "tree_node" edge with a given conditions (other predicates).
func HasTreeNodeWith(preds ...predicate.TreeNode) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(func(s *sql.Selector) {
		step := newTreeNodeStep()
		sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
			for _, p := range preds {
				p(s)
			}
		})
	})
}

// HasPreimageRequest applies the HasEdge predicate on the "preimage_request" edge.
func HasPreimageRequest() predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(func(s *sql.Selector) {
		step := sqlgraph.NewStep(
			sqlgraph.From(Table, FieldID),
			sqlgraph.Edge(sqlgraph.M2O, false, PreimageRequestTable, PreimageRequestColumn),
		)
		sqlgraph.HasNeighbors(s, step)
	})
}

// HasPreimageRequestWith applies the HasEdge predicate on the "preimage_request" edge with a given conditions (other predicates).
func HasPreimageRequestWith(preds ...predicate.PreimageRequest) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(func(s *sql.Selector) {
		step := newPreimageRequestStep()
		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.UserSignedTransaction) predicate.UserSignedTransaction {
	return predicate.UserSignedTransaction(sql.AndPredicates(predicates...))
}

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

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