aboutsummaryrefslogtreecommitdiff
path: root/cmd/_old/tourian/ent/conversation_query.go
diff options
context:
space:
mode:
authorXe Iaso <me@xeiaso.net>2024-10-06 08:53:06 -0400
committerXe Iaso <me@xeiaso.net>2024-10-06 08:56:03 -0400
commit57c4d9757ae09700e6bd65de6e55f5cd17e6e6e2 (patch)
tree0b4b8365328c7e66ab1fb6d4b4d4bb94ac796f78 /cmd/_old/tourian/ent/conversation_query.go
parentfda09b55e316b7f162371cf52bc401fa742913e8 (diff)
downloadx-57c4d9757ae09700e6bd65de6e55f5cd17e6e6e2.tar.xz
x-57c4d9757ae09700e6bd65de6e55f5cd17e6e6e2.zip
move some old code to the _old folder to save CI time
Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'cmd/_old/tourian/ent/conversation_query.go')
-rw-r--r--cmd/_old/tourian/ent/conversation_query.go526
1 files changed, 526 insertions, 0 deletions
diff --git a/cmd/_old/tourian/ent/conversation_query.go b/cmd/_old/tourian/ent/conversation_query.go
new file mode 100644
index 0000000..3cf1f95
--- /dev/null
+++ b/cmd/_old/tourian/ent/conversation_query.go
@@ -0,0 +1,526 @@
+// Code generated by ent, DO NOT EDIT.
+
+package ent
+
+import (
+ "context"
+ "fmt"
+ "math"
+
+ "entgo.io/ent/dialect/sql"
+ "entgo.io/ent/dialect/sql/sqlgraph"
+ "entgo.io/ent/schema/field"
+ "within.website/x/cmd/tourian/ent/conversation"
+ "within.website/x/cmd/tourian/ent/predicate"
+)
+
+// ConversationQuery is the builder for querying Conversation entities.
+type ConversationQuery struct {
+ config
+ ctx *QueryContext
+ order []conversation.OrderOption
+ inters []Interceptor
+ predicates []predicate.Conversation
+ // intermediate query (i.e. traversal path).
+ sql *sql.Selector
+ path func(context.Context) (*sql.Selector, error)
+}
+
+// Where adds a new predicate for the ConversationQuery builder.
+func (cq *ConversationQuery) Where(ps ...predicate.Conversation) *ConversationQuery {
+ cq.predicates = append(cq.predicates, ps...)
+ return cq
+}
+
+// Limit the number of records to be returned by this query.
+func (cq *ConversationQuery) Limit(limit int) *ConversationQuery {
+ cq.ctx.Limit = &limit
+ return cq
+}
+
+// Offset to start from.
+func (cq *ConversationQuery) Offset(offset int) *ConversationQuery {
+ cq.ctx.Offset = &offset
+ return cq
+}
+
+// Unique configures the query builder to filter duplicate records on query.
+// By default, unique is set to true, and can be disabled using this method.
+func (cq *ConversationQuery) Unique(unique bool) *ConversationQuery {
+ cq.ctx.Unique = &unique
+ return cq
+}
+
+// Order specifies how the records should be ordered.
+func (cq *ConversationQuery) Order(o ...conversation.OrderOption) *ConversationQuery {
+ cq.order = append(cq.order, o...)
+ return cq
+}
+
+// First returns the first Conversation entity from the query.
+// Returns a *NotFoundError when no Conversation was found.
+func (cq *ConversationQuery) First(ctx context.Context) (*Conversation, error) {
+ nodes, err := cq.Limit(1).All(setContextOp(ctx, cq.ctx, "First"))
+ if err != nil {
+ return nil, err
+ }
+ if len(nodes) == 0 {
+ return nil, &NotFoundError{conversation.Label}
+ }
+ return nodes[0], nil
+}
+
+// FirstX is like First, but panics if an error occurs.
+func (cq *ConversationQuery) FirstX(ctx context.Context) *Conversation {
+ node, err := cq.First(ctx)
+ if err != nil && !IsNotFound(err) {
+ panic(err)
+ }
+ return node
+}
+
+// FirstID returns the first Conversation ID from the query.
+// Returns a *NotFoundError when no Conversation ID was found.
+func (cq *ConversationQuery) FirstID(ctx context.Context) (id string, err error) {
+ var ids []string
+ if ids, err = cq.Limit(1).IDs(setContextOp(ctx, cq.ctx, "FirstID")); err != nil {
+ return
+ }
+ if len(ids) == 0 {
+ err = &NotFoundError{conversation.Label}
+ return
+ }
+ return ids[0], nil
+}
+
+// FirstIDX is like FirstID, but panics if an error occurs.
+func (cq *ConversationQuery) FirstIDX(ctx context.Context) string {
+ id, err := cq.FirstID(ctx)
+ if err != nil && !IsNotFound(err) {
+ panic(err)
+ }
+ return id
+}
+
+// Only returns a single Conversation entity found by the query, ensuring it only returns one.
+// Returns a *NotSingularError when more than one Conversation entity is found.
+// Returns a *NotFoundError when no Conversation entities are found.
+func (cq *ConversationQuery) Only(ctx context.Context) (*Conversation, error) {
+ nodes, err := cq.Limit(2).All(setContextOp(ctx, cq.ctx, "Only"))
+ if err != nil {
+ return nil, err
+ }
+ switch len(nodes) {
+ case 1:
+ return nodes[0], nil
+ case 0:
+ return nil, &NotFoundError{conversation.Label}
+ default:
+ return nil, &NotSingularError{conversation.Label}
+ }
+}
+
+// OnlyX is like Only, but panics if an error occurs.
+func (cq *ConversationQuery) OnlyX(ctx context.Context) *Conversation {
+ node, err := cq.Only(ctx)
+ if err != nil {
+ panic(err)
+ }
+ return node
+}
+
+// OnlyID is like Only, but returns the only Conversation ID in the query.
+// Returns a *NotSingularError when more than one Conversation ID is found.
+// Returns a *NotFoundError when no entities are found.
+func (cq *ConversationQuery) OnlyID(ctx context.Context) (id string, err error) {
+ var ids []string
+ if ids, err = cq.Limit(2).IDs(setContextOp(ctx, cq.ctx, "OnlyID")); err != nil {
+ return
+ }
+ switch len(ids) {
+ case 1:
+ id = ids[0]
+ case 0:
+ err = &NotFoundError{conversation.Label}
+ default:
+ err = &NotSingularError{conversation.Label}
+ }
+ return
+}
+
+// OnlyIDX is like OnlyID, but panics if an error occurs.
+func (cq *ConversationQuery) OnlyIDX(ctx context.Context) string {
+ id, err := cq.OnlyID(ctx)
+ if err != nil {
+ panic(err)
+ }
+ return id
+}
+
+// All executes the query and returns a list of Conversations.
+func (cq *ConversationQuery) All(ctx context.Context) ([]*Conversation, error) {
+ ctx = setContextOp(ctx, cq.ctx, "All")
+ if err := cq.prepareQuery(ctx); err != nil {
+ return nil, err
+ }
+ qr := querierAll[[]*Conversation, *ConversationQuery]()
+ return withInterceptors[[]*Conversation](ctx, cq, qr, cq.inters)
+}
+
+// AllX is like All, but panics if an error occurs.
+func (cq *ConversationQuery) AllX(ctx context.Context) []*Conversation {
+ nodes, err := cq.All(ctx)
+ if err != nil {
+ panic(err)
+ }
+ return nodes
+}
+
+// IDs executes the query and returns a list of Conversation IDs.
+func (cq *ConversationQuery) IDs(ctx context.Context) (ids []string, err error) {
+ if cq.ctx.Unique == nil && cq.path != nil {
+ cq.Unique(true)
+ }
+ ctx = setContextOp(ctx, cq.ctx, "IDs")
+ if err = cq.Select(conversation.FieldID).Scan(ctx, &ids); err != nil {
+ return nil, err
+ }
+ return ids, nil
+}
+
+// IDsX is like IDs, but panics if an error occurs.
+func (cq *ConversationQuery) IDsX(ctx context.Context) []string {
+ ids, err := cq.IDs(ctx)
+ if err != nil {
+ panic(err)
+ }
+ return ids
+}
+
+// Count returns the count of the given query.
+func (cq *ConversationQuery) Count(ctx context.Context) (int, error) {
+ ctx = setContextOp(ctx, cq.ctx, "Count")
+ if err := cq.prepareQuery(ctx); err != nil {
+ return 0, err
+ }
+ return withInterceptors[int](ctx, cq, querierCount[*ConversationQuery](), cq.inters)
+}
+
+// CountX is like Count, but panics if an error occurs.
+func (cq *ConversationQuery) CountX(ctx context.Context) int {
+ count, err := cq.Count(ctx)
+ if err != nil {
+ panic(err)
+ }
+ return count
+}
+
+// Exist returns true if the query has elements in the graph.
+func (cq *ConversationQuery) Exist(ctx context.Context) (bool, error) {
+ ctx = setContextOp(ctx, cq.ctx, "Exist")
+ switch _, err := cq.FirstID(ctx); {
+ case IsNotFound(err):
+ return false, nil
+ case err != nil:
+ return false, fmt.Errorf("ent: check existence: %w", err)
+ default:
+ return true, nil
+ }
+}
+
+// ExistX is like Exist, but panics if an error occurs.
+func (cq *ConversationQuery) ExistX(ctx context.Context) bool {
+ exist, err := cq.Exist(ctx)
+ if err != nil {
+ panic(err)
+ }
+ return exist
+}
+
+// Clone returns a duplicate of the ConversationQuery builder, including all associated steps. It can be
+// used to prepare common query builders and use them differently after the clone is made.
+func (cq *ConversationQuery) Clone() *ConversationQuery {
+ if cq == nil {
+ return nil
+ }
+ return &ConversationQuery{
+ config: cq.config,
+ ctx: cq.ctx.Clone(),
+ order: append([]conversation.OrderOption{}, cq.order...),
+ inters: append([]Interceptor{}, cq.inters...),
+ predicates: append([]predicate.Conversation{}, cq.predicates...),
+ // clone intermediate query.
+ sql: cq.sql.Clone(),
+ path: cq.path,
+ }
+}
+
+// GroupBy is used to group vertices by one or more fields/columns.
+// It is often used with aggregate functions, like: count, max, mean, min, sum.
+//
+// Example:
+//
+// var v []struct {
+// PageURL string `json:"page_url,omitempty"`
+// Count int `json:"count,omitempty"`
+// }
+//
+// client.Conversation.Query().
+// GroupBy(conversation.FieldPageURL).
+// Aggregate(ent.Count()).
+// Scan(ctx, &v)
+func (cq *ConversationQuery) GroupBy(field string, fields ...string) *ConversationGroupBy {
+ cq.ctx.Fields = append([]string{field}, fields...)
+ grbuild := &ConversationGroupBy{build: cq}
+ grbuild.flds = &cq.ctx.Fields
+ grbuild.label = conversation.Label
+ grbuild.scan = grbuild.Scan
+ return grbuild
+}
+
+// Select allows the selection one or more fields/columns for the given query,
+// instead of selecting all fields in the entity.
+//
+// Example:
+//
+// var v []struct {
+// PageURL string `json:"page_url,omitempty"`
+// }
+//
+// client.Conversation.Query().
+// Select(conversation.FieldPageURL).
+// Scan(ctx, &v)
+func (cq *ConversationQuery) Select(fields ...string) *ConversationSelect {
+ cq.ctx.Fields = append(cq.ctx.Fields, fields...)
+ sbuild := &ConversationSelect{ConversationQuery: cq}
+ sbuild.label = conversation.Label
+ sbuild.flds, sbuild.scan = &cq.ctx.Fields, sbuild.Scan
+ return sbuild
+}
+
+// Aggregate returns a ConversationSelect configured with the given aggregations.
+func (cq *ConversationQuery) Aggregate(fns ...AggregateFunc) *ConversationSelect {
+ return cq.Select().Aggregate(fns...)
+}
+
+func (cq *ConversationQuery) prepareQuery(ctx context.Context) error {
+ for _, inter := range cq.inters {
+ if inter == nil {
+ return fmt.Errorf("ent: uninitialized interceptor (forgotten import ent/runtime?)")
+ }
+ if trv, ok := inter.(Traverser); ok {
+ if err := trv.Traverse(ctx, cq); err != nil {
+ return err
+ }
+ }
+ }
+ for _, f := range cq.ctx.Fields {
+ if !conversation.ValidColumn(f) {
+ return &ValidationError{Name: f, err: fmt.Errorf("ent: invalid field %q for query", f)}
+ }
+ }
+ if cq.path != nil {
+ prev, err := cq.path(ctx)
+ if err != nil {
+ return err
+ }
+ cq.sql = prev
+ }
+ return nil
+}
+
+func (cq *ConversationQuery) sqlAll(ctx context.Context, hooks ...queryHook) ([]*Conversation, error) {
+ var (
+ nodes = []*Conversation{}
+ _spec = cq.querySpec()
+ )
+ _spec.ScanValues = func(columns []string) ([]any, error) {
+ return (*Conversation).scanValues(nil, columns)
+ }
+ _spec.Assign = func(columns []string, values []any) error {
+ node := &Conversation{config: cq.config}
+ nodes = append(nodes, node)
+ return node.assignValues(columns, values)
+ }
+ for i := range hooks {
+ hooks[i](ctx, _spec)
+ }
+ if err := sqlgraph.QueryNodes(ctx, cq.driver, _spec); err != nil {
+ return nil, err
+ }
+ if len(nodes) == 0 {
+ return nodes, nil
+ }
+ return nodes, nil
+}
+
+func (cq *ConversationQuery) sqlCount(ctx context.Context) (int, error) {
+ _spec := cq.querySpec()
+ _spec.Node.Columns = cq.ctx.Fields
+ if len(cq.ctx.Fields) > 0 {
+ _spec.Unique = cq.ctx.Unique != nil && *cq.ctx.Unique
+ }
+ return sqlgraph.CountNodes(ctx, cq.driver, _spec)
+}
+
+func (cq *ConversationQuery) querySpec() *sqlgraph.QuerySpec {
+ _spec := sqlgraph.NewQuerySpec(conversation.Table, conversation.Columns, sqlgraph.NewFieldSpec(conversation.FieldID, field.TypeString))
+ _spec.From = cq.sql
+ if unique := cq.ctx.Unique; unique != nil {
+ _spec.Unique = *unique
+ } else if cq.path != nil {
+ _spec.Unique = true
+ }
+ if fields := cq.ctx.Fields; len(fields) > 0 {
+ _spec.Node.Columns = make([]string, 0, len(fields))
+ _spec.Node.Columns = append(_spec.Node.Columns, conversation.FieldID)
+ for i := range fields {
+ if fields[i] != conversation.FieldID {
+ _spec.Node.Columns = append(_spec.Node.Columns, fields[i])
+ }
+ }
+ }
+ if ps := cq.predicates; len(ps) > 0 {
+ _spec.Predicate = func(selector *sql.Selector) {
+ for i := range ps {
+ ps[i](selector)
+ }
+ }
+ }
+ if limit := cq.ctx.Limit; limit != nil {
+ _spec.Limit = *limit
+ }
+ if offset := cq.ctx.Offset; offset != nil {
+ _spec.Offset = *offset
+ }
+ if ps := cq.order; len(ps) > 0 {
+ _spec.Order = func(selector *sql.Selector) {
+ for i := range ps {
+ ps[i](selector)
+ }
+ }
+ }
+ return _spec
+}
+
+func (cq *ConversationQuery) sqlQuery(ctx context.Context) *sql.Selector {
+ builder := sql.Dialect(cq.driver.Dialect())
+ t1 := builder.Table(conversation.Table)
+ columns := cq.ctx.Fields
+ if len(columns) == 0 {
+ columns = conversation.Columns
+ }
+ selector := builder.Select(t1.Columns(columns...)...).From(t1)
+ if cq.sql != nil {
+ selector = cq.sql
+ selector.Select(selector.Columns(columns...)...)
+ }
+ if cq.ctx.Unique != nil && *cq.ctx.Unique {
+ selector.Distinct()
+ }
+ for _, p := range cq.predicates {
+ p(selector)
+ }
+ for _, p := range cq.order {
+ p(selector)
+ }
+ if offset := cq.ctx.Offset; offset != nil {
+ // limit is mandatory for offset clause. We start
+ // with default value, and override it below if needed.
+ selector.Offset(*offset).Limit(math.MaxInt32)
+ }
+ if limit := cq.ctx.Limit; limit != nil {
+ selector.Limit(*limit)
+ }
+ return selector
+}
+
+// ConversationGroupBy is the group-by builder for Conversation entities.
+type ConversationGroupBy struct {
+ selector
+ build *ConversationQuery
+}
+
+// Aggregate adds the given aggregation functions to the group-by query.
+func (cgb *ConversationGroupBy) Aggregate(fns ...AggregateFunc) *ConversationGroupBy {
+ cgb.fns = append(cgb.fns, fns...)
+ return cgb
+}
+
+// Scan applies the selector query and scans the result into the given value.
+func (cgb *ConversationGroupBy) Scan(ctx context.Context, v any) error {
+ ctx = setContextOp(ctx, cgb.build.ctx, "GroupBy")
+ if err := cgb.build.prepareQuery(ctx); err != nil {
+ return err
+ }
+ return scanWithInterceptors[*ConversationQuery, *ConversationGroupBy](ctx, cgb.build, cgb, cgb.build.inters, v)
+}
+
+func (cgb *ConversationGroupBy) sqlScan(ctx context.Context, root *ConversationQuery, v any) error {
+ selector := root.sqlQuery(ctx).Select()
+ aggregation := make([]string, 0, len(cgb.fns))
+ for _, fn := range cgb.fns {
+ aggregation = append(aggregation, fn(selector))
+ }
+ if len(selector.SelectedColumns()) == 0 {
+ columns := make([]string, 0, len(*cgb.flds)+len(cgb.fns))
+ for _, f := range *cgb.flds {
+ columns = append(columns, selector.C(f))
+ }
+ columns = append(columns, aggregation...)
+ selector.Select(columns...)
+ }
+ selector.GroupBy(selector.Columns(*cgb.flds...)...)
+ if err := selector.Err(); err != nil {
+ return err
+ }
+ rows := &sql.Rows{}
+ query, args := selector.Query()
+ if err := cgb.build.driver.Query(ctx, query, args, rows); err != nil {
+ return err
+ }
+ defer rows.Close()
+ return sql.ScanSlice(rows, v)
+}
+
+// ConversationSelect is the builder for selecting fields of Conversation entities.
+type ConversationSelect struct {
+ *ConversationQuery
+ selector
+}
+
+// Aggregate adds the given aggregation functions to the selector query.
+func (cs *ConversationSelect) Aggregate(fns ...AggregateFunc) *ConversationSelect {
+ cs.fns = append(cs.fns, fns...)
+ return cs
+}
+
+// Scan applies the selector query and scans the result into the given value.
+func (cs *ConversationSelect) Scan(ctx context.Context, v any) error {
+ ctx = setContextOp(ctx, cs.ctx, "Select")
+ if err := cs.prepareQuery(ctx); err != nil {
+ return err
+ }
+ return scanWithInterceptors[*ConversationQuery, *ConversationSelect](ctx, cs.ConversationQuery, cs, cs.inters, v)
+}
+
+func (cs *ConversationSelect) sqlScan(ctx context.Context, root *ConversationQuery, v any) error {
+ selector := root.sqlQuery(ctx)
+ aggregation := make([]string, 0, len(cs.fns))
+ for _, fn := range cs.fns {
+ aggregation = append(aggregation, fn(selector))
+ }
+ switch n := len(*cs.selector.flds); {
+ case n == 0 && len(aggregation) > 0:
+ selector.Select(aggregation...)
+ case n != 0 && len(aggregation) > 0:
+ selector.AppendSelect(aggregation...)
+ }
+ rows := &sql.Rows{}
+ query, args := selector.Query()
+ if err := cs.driver.Query(ctx, query, args, rows); err != nil {
+ return err
+ }
+ defer rows.Close()
+ return sql.ScanSlice(rows, v)
+}