// Code generated by ent, DO NOT EDIT.

package nodeversion

import (
	"registry-backend/ent/predicate"
	"registry-backend/ent/schema"
	"time"

	"entgo.io/ent/dialect/sql"
	"entgo.io/ent/dialect/sql/sqlgraph"
	"github.com/google/uuid"
)

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

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

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

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

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

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

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

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

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

// NodeID applies equality check predicate on the "node_id" field. It's identical to NodeIDEQ.
func NodeID(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldEQ(FieldNodeID, v))
}

// Version applies equality check predicate on the "version" field. It's identical to VersionEQ.
func Version(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldEQ(FieldVersion, v))
}

// Changelog applies equality check predicate on the "changelog" field. It's identical to ChangelogEQ.
func Changelog(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldEQ(FieldChangelog, v))
}

// Deprecated applies equality check predicate on the "deprecated" field. It's identical to DeprecatedEQ.
func Deprecated(v bool) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldEQ(FieldDeprecated, v))
}

// StatusReason applies equality check predicate on the "status_reason" field. It's identical to StatusReasonEQ.
func StatusReason(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldEQ(FieldStatusReason, v))
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// NodeIDEQ applies the EQ predicate on the "node_id" field.
func NodeIDEQ(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldEQ(FieldNodeID, v))
}

// NodeIDNEQ applies the NEQ predicate on the "node_id" field.
func NodeIDNEQ(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldNEQ(FieldNodeID, v))
}

// NodeIDIn applies the In predicate on the "node_id" field.
func NodeIDIn(vs ...string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldIn(FieldNodeID, vs...))
}

// NodeIDNotIn applies the NotIn predicate on the "node_id" field.
func NodeIDNotIn(vs ...string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldNotIn(FieldNodeID, vs...))
}

// NodeIDGT applies the GT predicate on the "node_id" field.
func NodeIDGT(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldGT(FieldNodeID, v))
}

// NodeIDGTE applies the GTE predicate on the "node_id" field.
func NodeIDGTE(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldGTE(FieldNodeID, v))
}

// NodeIDLT applies the LT predicate on the "node_id" field.
func NodeIDLT(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldLT(FieldNodeID, v))
}

// NodeIDLTE applies the LTE predicate on the "node_id" field.
func NodeIDLTE(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldLTE(FieldNodeID, v))
}

// NodeIDContains applies the Contains predicate on the "node_id" field.
func NodeIDContains(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldContains(FieldNodeID, v))
}

// NodeIDHasPrefix applies the HasPrefix predicate on the "node_id" field.
func NodeIDHasPrefix(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldHasPrefix(FieldNodeID, v))
}

// NodeIDHasSuffix applies the HasSuffix predicate on the "node_id" field.
func NodeIDHasSuffix(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldHasSuffix(FieldNodeID, v))
}

// NodeIDEqualFold applies the EqualFold predicate on the "node_id" field.
func NodeIDEqualFold(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldEqualFold(FieldNodeID, v))
}

// NodeIDContainsFold applies the ContainsFold predicate on the "node_id" field.
func NodeIDContainsFold(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldContainsFold(FieldNodeID, v))
}

// VersionEQ applies the EQ predicate on the "version" field.
func VersionEQ(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldEQ(FieldVersion, v))
}

// VersionNEQ applies the NEQ predicate on the "version" field.
func VersionNEQ(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldNEQ(FieldVersion, v))
}

// VersionIn applies the In predicate on the "version" field.
func VersionIn(vs ...string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldIn(FieldVersion, vs...))
}

// VersionNotIn applies the NotIn predicate on the "version" field.
func VersionNotIn(vs ...string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldNotIn(FieldVersion, vs...))
}

// VersionGT applies the GT predicate on the "version" field.
func VersionGT(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldGT(FieldVersion, v))
}

// VersionGTE applies the GTE predicate on the "version" field.
func VersionGTE(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldGTE(FieldVersion, v))
}

// VersionLT applies the LT predicate on the "version" field.
func VersionLT(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldLT(FieldVersion, v))
}

// VersionLTE applies the LTE predicate on the "version" field.
func VersionLTE(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldLTE(FieldVersion, v))
}

// VersionContains applies the Contains predicate on the "version" field.
func VersionContains(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldContains(FieldVersion, v))
}

// VersionHasPrefix applies the HasPrefix predicate on the "version" field.
func VersionHasPrefix(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldHasPrefix(FieldVersion, v))
}

// VersionHasSuffix applies the HasSuffix predicate on the "version" field.
func VersionHasSuffix(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldHasSuffix(FieldVersion, v))
}

// VersionEqualFold applies the EqualFold predicate on the "version" field.
func VersionEqualFold(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldEqualFold(FieldVersion, v))
}

// VersionContainsFold applies the ContainsFold predicate on the "version" field.
func VersionContainsFold(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldContainsFold(FieldVersion, v))
}

// ChangelogEQ applies the EQ predicate on the "changelog" field.
func ChangelogEQ(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldEQ(FieldChangelog, v))
}

// ChangelogNEQ applies the NEQ predicate on the "changelog" field.
func ChangelogNEQ(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldNEQ(FieldChangelog, v))
}

// ChangelogIn applies the In predicate on the "changelog" field.
func ChangelogIn(vs ...string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldIn(FieldChangelog, vs...))
}

// ChangelogNotIn applies the NotIn predicate on the "changelog" field.
func ChangelogNotIn(vs ...string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldNotIn(FieldChangelog, vs...))
}

// ChangelogGT applies the GT predicate on the "changelog" field.
func ChangelogGT(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldGT(FieldChangelog, v))
}

// ChangelogGTE applies the GTE predicate on the "changelog" field.
func ChangelogGTE(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldGTE(FieldChangelog, v))
}

// ChangelogLT applies the LT predicate on the "changelog" field.
func ChangelogLT(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldLT(FieldChangelog, v))
}

// ChangelogLTE applies the LTE predicate on the "changelog" field.
func ChangelogLTE(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldLTE(FieldChangelog, v))
}

// ChangelogContains applies the Contains predicate on the "changelog" field.
func ChangelogContains(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldContains(FieldChangelog, v))
}

// ChangelogHasPrefix applies the HasPrefix predicate on the "changelog" field.
func ChangelogHasPrefix(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldHasPrefix(FieldChangelog, v))
}

// ChangelogHasSuffix applies the HasSuffix predicate on the "changelog" field.
func ChangelogHasSuffix(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldHasSuffix(FieldChangelog, v))
}

// ChangelogIsNil applies the IsNil predicate on the "changelog" field.
func ChangelogIsNil() predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldIsNull(FieldChangelog))
}

// ChangelogNotNil applies the NotNil predicate on the "changelog" field.
func ChangelogNotNil() predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldNotNull(FieldChangelog))
}

// ChangelogEqualFold applies the EqualFold predicate on the "changelog" field.
func ChangelogEqualFold(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldEqualFold(FieldChangelog, v))
}

// ChangelogContainsFold applies the ContainsFold predicate on the "changelog" field.
func ChangelogContainsFold(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldContainsFold(FieldChangelog, v))
}

// DeprecatedEQ applies the EQ predicate on the "deprecated" field.
func DeprecatedEQ(v bool) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldEQ(FieldDeprecated, v))
}

// DeprecatedNEQ applies the NEQ predicate on the "deprecated" field.
func DeprecatedNEQ(v bool) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldNEQ(FieldDeprecated, v))
}

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

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

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

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

// StatusReasonEQ applies the EQ predicate on the "status_reason" field.
func StatusReasonEQ(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldEQ(FieldStatusReason, v))
}

// StatusReasonNEQ applies the NEQ predicate on the "status_reason" field.
func StatusReasonNEQ(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldNEQ(FieldStatusReason, v))
}

// StatusReasonIn applies the In predicate on the "status_reason" field.
func StatusReasonIn(vs ...string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldIn(FieldStatusReason, vs...))
}

// StatusReasonNotIn applies the NotIn predicate on the "status_reason" field.
func StatusReasonNotIn(vs ...string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldNotIn(FieldStatusReason, vs...))
}

// StatusReasonGT applies the GT predicate on the "status_reason" field.
func StatusReasonGT(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldGT(FieldStatusReason, v))
}

// StatusReasonGTE applies the GTE predicate on the "status_reason" field.
func StatusReasonGTE(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldGTE(FieldStatusReason, v))
}

// StatusReasonLT applies the LT predicate on the "status_reason" field.
func StatusReasonLT(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldLT(FieldStatusReason, v))
}

// StatusReasonLTE applies the LTE predicate on the "status_reason" field.
func StatusReasonLTE(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldLTE(FieldStatusReason, v))
}

// StatusReasonContains applies the Contains predicate on the "status_reason" field.
func StatusReasonContains(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldContains(FieldStatusReason, v))
}

// StatusReasonHasPrefix applies the HasPrefix predicate on the "status_reason" field.
func StatusReasonHasPrefix(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldHasPrefix(FieldStatusReason, v))
}

// StatusReasonHasSuffix applies the HasSuffix predicate on the "status_reason" field.
func StatusReasonHasSuffix(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldHasSuffix(FieldStatusReason, v))
}

// StatusReasonEqualFold applies the EqualFold predicate on the "status_reason" field.
func StatusReasonEqualFold(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldEqualFold(FieldStatusReason, v))
}

// StatusReasonContainsFold applies the ContainsFold predicate on the "status_reason" field.
func StatusReasonContainsFold(v string) predicate.NodeVersion {
	return predicate.NodeVersion(sql.FieldContainsFold(FieldStatusReason, v))
}

// HasNode applies the HasEdge predicate on the "node" edge.
func HasNode() predicate.NodeVersion {
	return predicate.NodeVersion(func(s *sql.Selector) {
		step := sqlgraph.NewStep(
			sqlgraph.From(Table, FieldID),
			sqlgraph.Edge(sqlgraph.M2O, true, NodeTable, NodeColumn),
		)
		sqlgraph.HasNeighbors(s, step)
	})
}

// HasNodeWith applies the HasEdge predicate on the "node" edge with a given conditions (other predicates).
func HasNodeWith(preds ...predicate.Node) predicate.NodeVersion {
	return predicate.NodeVersion(func(s *sql.Selector) {
		step := newNodeStep()
		sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
			for _, p := range preds {
				p(s)
			}
		})
	})
}

// HasStorageFile applies the HasEdge predicate on the "storage_file" edge.
func HasStorageFile() predicate.NodeVersion {
	return predicate.NodeVersion(func(s *sql.Selector) {
		step := sqlgraph.NewStep(
			sqlgraph.From(Table, FieldID),
			sqlgraph.Edge(sqlgraph.M2O, false, StorageFileTable, StorageFileColumn),
		)
		sqlgraph.HasNeighbors(s, step)
	})
}

// HasStorageFileWith applies the HasEdge predicate on the "storage_file" edge with a given conditions (other predicates).
func HasStorageFileWith(preds ...predicate.StorageFile) predicate.NodeVersion {
	return predicate.NodeVersion(func(s *sql.Selector) {
		step := newStorageFileStep()
		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.NodeVersion) predicate.NodeVersion {
	return predicate.NodeVersion(sql.AndPredicates(predicates...))
}

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

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