// Code generated by ent, DO NOT EDIT.

package channelmonitorhistory

import (
	"time"

	"entgo.io/ent/dialect/sql"
	"entgo.io/ent/dialect/sql/sqlgraph"
	"github.com/Wei-Shaw/sub2api/ent/predicate"
)

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

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

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

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

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

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

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

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

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

// MonitorID applies equality check predicate on the "monitor_id" field. It's identical to MonitorIDEQ.
func MonitorID(v int64) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldEQ(FieldMonitorID, v))
}

// Model applies equality check predicate on the "model" field. It's identical to ModelEQ.
func Model(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldEQ(FieldModel, v))
}

// LatencyMs applies equality check predicate on the "latency_ms" field. It's identical to LatencyMsEQ.
func LatencyMs(v int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldEQ(FieldLatencyMs, v))
}

// PingLatencyMs applies equality check predicate on the "ping_latency_ms" field. It's identical to PingLatencyMsEQ.
func PingLatencyMs(v int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldEQ(FieldPingLatencyMs, v))
}

// Message applies equality check predicate on the "message" field. It's identical to MessageEQ.
func Message(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldEQ(FieldMessage, v))
}

// CheckedAt applies equality check predicate on the "checked_at" field. It's identical to CheckedAtEQ.
func CheckedAt(v time.Time) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldEQ(FieldCheckedAt, v))
}

// MonitorIDEQ applies the EQ predicate on the "monitor_id" field.
func MonitorIDEQ(v int64) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldEQ(FieldMonitorID, v))
}

// MonitorIDNEQ applies the NEQ predicate on the "monitor_id" field.
func MonitorIDNEQ(v int64) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldNEQ(FieldMonitorID, v))
}

// MonitorIDIn applies the In predicate on the "monitor_id" field.
func MonitorIDIn(vs ...int64) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldIn(FieldMonitorID, vs...))
}

// MonitorIDNotIn applies the NotIn predicate on the "monitor_id" field.
func MonitorIDNotIn(vs ...int64) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldNotIn(FieldMonitorID, vs...))
}

// ModelEQ applies the EQ predicate on the "model" field.
func ModelEQ(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldEQ(FieldModel, v))
}

// ModelNEQ applies the NEQ predicate on the "model" field.
func ModelNEQ(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldNEQ(FieldModel, v))
}

// ModelIn applies the In predicate on the "model" field.
func ModelIn(vs ...string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldIn(FieldModel, vs...))
}

// ModelNotIn applies the NotIn predicate on the "model" field.
func ModelNotIn(vs ...string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldNotIn(FieldModel, vs...))
}

// ModelGT applies the GT predicate on the "model" field.
func ModelGT(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldGT(FieldModel, v))
}

// ModelGTE applies the GTE predicate on the "model" field.
func ModelGTE(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldGTE(FieldModel, v))
}

// ModelLT applies the LT predicate on the "model" field.
func ModelLT(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldLT(FieldModel, v))
}

// ModelLTE applies the LTE predicate on the "model" field.
func ModelLTE(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldLTE(FieldModel, v))
}

// ModelContains applies the Contains predicate on the "model" field.
func ModelContains(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldContains(FieldModel, v))
}

// ModelHasPrefix applies the HasPrefix predicate on the "model" field.
func ModelHasPrefix(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldHasPrefix(FieldModel, v))
}

// ModelHasSuffix applies the HasSuffix predicate on the "model" field.
func ModelHasSuffix(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldHasSuffix(FieldModel, v))
}

// ModelEqualFold applies the EqualFold predicate on the "model" field.
func ModelEqualFold(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldEqualFold(FieldModel, v))
}

// ModelContainsFold applies the ContainsFold predicate on the "model" field.
func ModelContainsFold(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldContainsFold(FieldModel, v))
}

// StatusEQ applies the EQ predicate on the "status" field.
func StatusEQ(v Status) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldEQ(FieldStatus, v))
}

// StatusNEQ applies the NEQ predicate on the "status" field.
func StatusNEQ(v Status) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldNEQ(FieldStatus, v))
}

// StatusIn applies the In predicate on the "status" field.
func StatusIn(vs ...Status) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldIn(FieldStatus, vs...))
}

// StatusNotIn applies the NotIn predicate on the "status" field.
func StatusNotIn(vs ...Status) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldNotIn(FieldStatus, vs...))
}

// LatencyMsEQ applies the EQ predicate on the "latency_ms" field.
func LatencyMsEQ(v int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldEQ(FieldLatencyMs, v))
}

// LatencyMsNEQ applies the NEQ predicate on the "latency_ms" field.
func LatencyMsNEQ(v int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldNEQ(FieldLatencyMs, v))
}

// LatencyMsIn applies the In predicate on the "latency_ms" field.
func LatencyMsIn(vs ...int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldIn(FieldLatencyMs, vs...))
}

// LatencyMsNotIn applies the NotIn predicate on the "latency_ms" field.
func LatencyMsNotIn(vs ...int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldNotIn(FieldLatencyMs, vs...))
}

// LatencyMsGT applies the GT predicate on the "latency_ms" field.
func LatencyMsGT(v int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldGT(FieldLatencyMs, v))
}

// LatencyMsGTE applies the GTE predicate on the "latency_ms" field.
func LatencyMsGTE(v int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldGTE(FieldLatencyMs, v))
}

// LatencyMsLT applies the LT predicate on the "latency_ms" field.
func LatencyMsLT(v int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldLT(FieldLatencyMs, v))
}

// LatencyMsLTE applies the LTE predicate on the "latency_ms" field.
func LatencyMsLTE(v int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldLTE(FieldLatencyMs, v))
}

// LatencyMsIsNil applies the IsNil predicate on the "latency_ms" field.
func LatencyMsIsNil() predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldIsNull(FieldLatencyMs))
}

// LatencyMsNotNil applies the NotNil predicate on the "latency_ms" field.
func LatencyMsNotNil() predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldNotNull(FieldLatencyMs))
}

// PingLatencyMsEQ applies the EQ predicate on the "ping_latency_ms" field.
func PingLatencyMsEQ(v int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldEQ(FieldPingLatencyMs, v))
}

// PingLatencyMsNEQ applies the NEQ predicate on the "ping_latency_ms" field.
func PingLatencyMsNEQ(v int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldNEQ(FieldPingLatencyMs, v))
}

// PingLatencyMsIn applies the In predicate on the "ping_latency_ms" field.
func PingLatencyMsIn(vs ...int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldIn(FieldPingLatencyMs, vs...))
}

// PingLatencyMsNotIn applies the NotIn predicate on the "ping_latency_ms" field.
func PingLatencyMsNotIn(vs ...int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldNotIn(FieldPingLatencyMs, vs...))
}

// PingLatencyMsGT applies the GT predicate on the "ping_latency_ms" field.
func PingLatencyMsGT(v int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldGT(FieldPingLatencyMs, v))
}

// PingLatencyMsGTE applies the GTE predicate on the "ping_latency_ms" field.
func PingLatencyMsGTE(v int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldGTE(FieldPingLatencyMs, v))
}

// PingLatencyMsLT applies the LT predicate on the "ping_latency_ms" field.
func PingLatencyMsLT(v int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldLT(FieldPingLatencyMs, v))
}

// PingLatencyMsLTE applies the LTE predicate on the "ping_latency_ms" field.
func PingLatencyMsLTE(v int) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldLTE(FieldPingLatencyMs, v))
}

// PingLatencyMsIsNil applies the IsNil predicate on the "ping_latency_ms" field.
func PingLatencyMsIsNil() predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldIsNull(FieldPingLatencyMs))
}

// PingLatencyMsNotNil applies the NotNil predicate on the "ping_latency_ms" field.
func PingLatencyMsNotNil() predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldNotNull(FieldPingLatencyMs))
}

// MessageEQ applies the EQ predicate on the "message" field.
func MessageEQ(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldEQ(FieldMessage, v))
}

// MessageNEQ applies the NEQ predicate on the "message" field.
func MessageNEQ(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldNEQ(FieldMessage, v))
}

// MessageIn applies the In predicate on the "message" field.
func MessageIn(vs ...string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldIn(FieldMessage, vs...))
}

// MessageNotIn applies the NotIn predicate on the "message" field.
func MessageNotIn(vs ...string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldNotIn(FieldMessage, vs...))
}

// MessageGT applies the GT predicate on the "message" field.
func MessageGT(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldGT(FieldMessage, v))
}

// MessageGTE applies the GTE predicate on the "message" field.
func MessageGTE(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldGTE(FieldMessage, v))
}

// MessageLT applies the LT predicate on the "message" field.
func MessageLT(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldLT(FieldMessage, v))
}

// MessageLTE applies the LTE predicate on the "message" field.
func MessageLTE(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldLTE(FieldMessage, v))
}

// MessageContains applies the Contains predicate on the "message" field.
func MessageContains(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldContains(FieldMessage, v))
}

// MessageHasPrefix applies the HasPrefix predicate on the "message" field.
func MessageHasPrefix(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldHasPrefix(FieldMessage, v))
}

// MessageHasSuffix applies the HasSuffix predicate on the "message" field.
func MessageHasSuffix(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldHasSuffix(FieldMessage, v))
}

// MessageIsNil applies the IsNil predicate on the "message" field.
func MessageIsNil() predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldIsNull(FieldMessage))
}

// MessageNotNil applies the NotNil predicate on the "message" field.
func MessageNotNil() predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldNotNull(FieldMessage))
}

// MessageEqualFold applies the EqualFold predicate on the "message" field.
func MessageEqualFold(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldEqualFold(FieldMessage, v))
}

// MessageContainsFold applies the ContainsFold predicate on the "message" field.
func MessageContainsFold(v string) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldContainsFold(FieldMessage, v))
}

// CheckedAtEQ applies the EQ predicate on the "checked_at" field.
func CheckedAtEQ(v time.Time) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldEQ(FieldCheckedAt, v))
}

// CheckedAtNEQ applies the NEQ predicate on the "checked_at" field.
func CheckedAtNEQ(v time.Time) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldNEQ(FieldCheckedAt, v))
}

// CheckedAtIn applies the In predicate on the "checked_at" field.
func CheckedAtIn(vs ...time.Time) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldIn(FieldCheckedAt, vs...))
}

// CheckedAtNotIn applies the NotIn predicate on the "checked_at" field.
func CheckedAtNotIn(vs ...time.Time) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldNotIn(FieldCheckedAt, vs...))
}

// CheckedAtGT applies the GT predicate on the "checked_at" field.
func CheckedAtGT(v time.Time) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldGT(FieldCheckedAt, v))
}

// CheckedAtGTE applies the GTE predicate on the "checked_at" field.
func CheckedAtGTE(v time.Time) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldGTE(FieldCheckedAt, v))
}

// CheckedAtLT applies the LT predicate on the "checked_at" field.
func CheckedAtLT(v time.Time) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldLT(FieldCheckedAt, v))
}

// CheckedAtLTE applies the LTE predicate on the "checked_at" field.
func CheckedAtLTE(v time.Time) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.FieldLTE(FieldCheckedAt, v))
}

// HasMonitor applies the HasEdge predicate on the "monitor" edge.
func HasMonitor() predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(func(s *sql.Selector) {
		step := sqlgraph.NewStep(
			sqlgraph.From(Table, FieldID),
			sqlgraph.Edge(sqlgraph.M2O, true, MonitorTable, MonitorColumn),
		)
		sqlgraph.HasNeighbors(s, step)
	})
}

// HasMonitorWith applies the HasEdge predicate on the "monitor" edge with a given conditions (other predicates).
func HasMonitorWith(preds ...predicate.ChannelMonitor) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(func(s *sql.Selector) {
		step := newMonitorStep()
		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.ChannelMonitorHistory) predicate.ChannelMonitorHistory {
	return predicate.ChannelMonitorHistory(sql.AndPredicates(predicates...))
}

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

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