// Copyright 2019-present Facebook Inc. All rights reserved. // This source code is licensed under the Apache 2.0 license found // in the LICENSE file in the root directory of this source tree. // Code generated by entc, DO NOT EDIT. package ent import ( "context" "fmt" "log" "github.com/facebookincubator/ent/entc/integration/ent/migrate" "github.com/facebookincubator/ent/entc/integration/ent/card" "github.com/facebookincubator/ent/entc/integration/ent/comment" "github.com/facebookincubator/ent/entc/integration/ent/fieldtype" "github.com/facebookincubator/ent/entc/integration/ent/file" "github.com/facebookincubator/ent/entc/integration/ent/filetype" "github.com/facebookincubator/ent/entc/integration/ent/group" "github.com/facebookincubator/ent/entc/integration/ent/groupinfo" "github.com/facebookincubator/ent/entc/integration/ent/item" "github.com/facebookincubator/ent/entc/integration/ent/node" "github.com/facebookincubator/ent/entc/integration/ent/pet" "github.com/facebookincubator/ent/entc/integration/ent/spec" "github.com/facebookincubator/ent/entc/integration/ent/user" "github.com/facebookincubator/ent/dialect" "github.com/facebookincubator/ent/dialect/sql" "github.com/facebookincubator/ent/dialect/sql/sqlgraph" ) // Client is the client that holds all ent builders. type Client struct { config // Schema is the client for creating, migrating and dropping schema. Schema *migrate.Schema // Card is the client for interacting with the Card builders. Card *CardClient // Comment is the client for interacting with the Comment builders. Comment *CommentClient // FieldType is the client for interacting with the FieldType builders. FieldType *FieldTypeClient // File is the client for interacting with the File builders. File *FileClient // FileType is the client for interacting with the FileType builders. FileType *FileTypeClient // Group is the client for interacting with the Group builders. Group *GroupClient // GroupInfo is the client for interacting with the GroupInfo builders. GroupInfo *GroupInfoClient // Item is the client for interacting with the Item builders. Item *ItemClient // Node is the client for interacting with the Node builders. Node *NodeClient // Pet is the client for interacting with the Pet builders. Pet *PetClient // Spec is the client for interacting with the Spec builders. Spec *SpecClient // User is the client for interacting with the User builders. User *UserClient } // NewClient creates a new client configured with the given options. func NewClient(opts ...Option) *Client { cfg := config{log: log.Println, hooks: &hooks{}} cfg.options(opts...) client := &Client{config: cfg} client.init() return client } func (c *Client) init() { c.Schema = migrate.NewSchema(c.driver) c.Card = NewCardClient(c.config) c.Comment = NewCommentClient(c.config) c.FieldType = NewFieldTypeClient(c.config) c.File = NewFileClient(c.config) c.FileType = NewFileTypeClient(c.config) c.Group = NewGroupClient(c.config) c.GroupInfo = NewGroupInfoClient(c.config) c.Item = NewItemClient(c.config) c.Node = NewNodeClient(c.config) c.Pet = NewPetClient(c.config) c.Spec = NewSpecClient(c.config) c.User = NewUserClient(c.config) } // Open opens a database/sql.DB specified by the driver name and // the data source name, and returns a new client attached to it. // Optional parameters can be added for configuring the client. func Open(driverName, dataSourceName string, options ...Option) (*Client, error) { switch driverName { case dialect.MySQL, dialect.Postgres, dialect.SQLite: drv, err := sql.Open(driverName, dataSourceName) if err != nil { return nil, err } return NewClient(append(options, Driver(drv))...), nil default: return nil, fmt.Errorf("unsupported driver: %q", driverName) } } // Tx returns a new transactional client. The provided context // is used until the transaction is committed or rolled back. func (c *Client) Tx(ctx context.Context) (*Tx, error) { if _, ok := c.driver.(*txDriver); ok { return nil, fmt.Errorf("ent: cannot start a transaction within a transaction") } tx, err := newTx(ctx, c.driver) if err != nil { return nil, fmt.Errorf("ent: starting a transaction: %v", err) } cfg := config{driver: tx, log: c.log, debug: c.debug, hooks: c.hooks} return &Tx{ ctx: ctx, config: cfg, Card: NewCardClient(cfg), Comment: NewCommentClient(cfg), FieldType: NewFieldTypeClient(cfg), File: NewFileClient(cfg), FileType: NewFileTypeClient(cfg), Group: NewGroupClient(cfg), GroupInfo: NewGroupInfoClient(cfg), Item: NewItemClient(cfg), Node: NewNodeClient(cfg), Pet: NewPetClient(cfg), Spec: NewSpecClient(cfg), User: NewUserClient(cfg), }, nil } // BeginTx returns a transactional client with options. func (c *Client) BeginTx(ctx context.Context, opts *sql.TxOptions) (*Tx, error) { if _, ok := c.driver.(*txDriver); ok { return nil, fmt.Errorf("ent: cannot start a transaction within a transaction") } tx, err := c.driver.(*sql.Driver).BeginTx(ctx, opts) if err != nil { return nil, fmt.Errorf("ent: starting a transaction: %v", err) } cfg := config{driver: &txDriver{tx: tx, drv: c.driver}, log: c.log, debug: c.debug, hooks: c.hooks} return &Tx{ config: cfg, Card: NewCardClient(cfg), Comment: NewCommentClient(cfg), FieldType: NewFieldTypeClient(cfg), File: NewFileClient(cfg), FileType: NewFileTypeClient(cfg), Group: NewGroupClient(cfg), GroupInfo: NewGroupInfoClient(cfg), Item: NewItemClient(cfg), Node: NewNodeClient(cfg), Pet: NewPetClient(cfg), Spec: NewSpecClient(cfg), User: NewUserClient(cfg), }, nil } // Debug returns a new debug-client. It's used to get verbose logging on specific operations. // // client.Debug(). // Card. // Query(). // Count(ctx) // func (c *Client) Debug() *Client { if c.debug { return c } cfg := config{driver: dialect.Debug(c.driver, c.log), log: c.log, debug: true, hooks: c.hooks} client := &Client{config: cfg} client.init() return client } // Close closes the database connection and prevents new queries from starting. func (c *Client) Close() error { return c.driver.Close() } // Use adds the mutation hooks to all the entity clients. // In order to add hooks to a specific client, call: `client.Node.Use(...)`. func (c *Client) Use(hooks ...Hook) { c.Card.Use(hooks...) c.Comment.Use(hooks...) c.FieldType.Use(hooks...) c.File.Use(hooks...) c.FileType.Use(hooks...) c.Group.Use(hooks...) c.GroupInfo.Use(hooks...) c.Item.Use(hooks...) c.Node.Use(hooks...) c.Pet.Use(hooks...) c.Spec.Use(hooks...) c.User.Use(hooks...) } // CardClient is a client for the Card schema. type CardClient struct { config } // NewCardClient returns a client for the Card from the given config. func NewCardClient(c config) *CardClient { return &CardClient{config: c} } // Use adds a list of mutation hooks to the hooks stack. // A call to `Use(f, g, h)` equals to `card.Hooks(f(g(h())))`. func (c *CardClient) Use(hooks ...Hook) { c.hooks.Card = append(c.hooks.Card, hooks...) } // Create returns a create builder for Card. func (c *CardClient) Create() *CardCreate { mutation := newCardMutation(c.config, OpCreate) return &CardCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // BulkCreate returns a builder for creating a bulk of Card entities. func (c *CardClient) CreateBulk(builders ...*CardCreate) *CardCreateBulk { return &CardCreateBulk{config: c.config, builders: builders} } // Update returns an update builder for Card. func (c *CardClient) Update() *CardUpdate { mutation := newCardMutation(c.config, OpUpdate) return &CardUpdate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOne returns an update builder for the given entity. func (c *CardClient) UpdateOne(ca *Card) *CardUpdateOne { mutation := newCardMutation(c.config, OpUpdateOne, withCard(ca)) return &CardUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOneID returns an update builder for the given id. func (c *CardClient) UpdateOneID(id int) *CardUpdateOne { mutation := newCardMutation(c.config, OpUpdateOne, withCardID(id)) return &CardUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // Delete returns a delete builder for Card. func (c *CardClient) Delete() *CardDelete { mutation := newCardMutation(c.config, OpDelete) return &CardDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } // DeleteOne returns a delete builder for the given entity. func (c *CardClient) DeleteOne(ca *Card) *CardDeleteOne { return c.DeleteOneID(ca.ID) } // DeleteOneID returns a delete builder for the given id. func (c *CardClient) DeleteOneID(id int) *CardDeleteOne { builder := c.Delete().Where(card.ID(id)) builder.mutation.id = &id builder.mutation.op = OpDeleteOne return &CardDeleteOne{builder} } // Query returns a query builder for Card. func (c *CardClient) Query() *CardQuery { return &CardQuery{config: c.config} } // Get returns a Card entity by its id. func (c *CardClient) Get(ctx context.Context, id int) (*Card, error) { return c.Query().Where(card.ID(id)).Only(ctx) } // GetX is like Get, but panics if an error occurs. func (c *CardClient) GetX(ctx context.Context, id int) *Card { ca, err := c.Get(ctx, id) if err != nil { panic(err) } return ca } // QueryOwner queries the owner edge of a Card. func (c *CardClient) QueryOwner(ca *Card) *UserQuery { query := &UserQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := ca.ID step := sqlgraph.NewStep( sqlgraph.From(card.Table, card.FieldID, id), sqlgraph.To(user.Table, user.FieldID), sqlgraph.Edge(sqlgraph.O2O, true, card.OwnerTable, card.OwnerColumn), ) fromV = sqlgraph.Neighbors(ca.driver.Dialect(), step) return fromV, nil } return query } // QuerySpec queries the spec edge of a Card. func (c *CardClient) QuerySpec(ca *Card) *SpecQuery { query := &SpecQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := ca.ID step := sqlgraph.NewStep( sqlgraph.From(card.Table, card.FieldID, id), sqlgraph.To(spec.Table, spec.FieldID), sqlgraph.Edge(sqlgraph.M2M, true, card.SpecTable, card.SpecPrimaryKey...), ) fromV = sqlgraph.Neighbors(ca.driver.Dialect(), step) return fromV, nil } return query } // Hooks returns the client hooks. func (c *CardClient) Hooks() []Hook { return c.hooks.Card } // CommentClient is a client for the Comment schema. type CommentClient struct { config } // NewCommentClient returns a client for the Comment from the given config. func NewCommentClient(c config) *CommentClient { return &CommentClient{config: c} } // Use adds a list of mutation hooks to the hooks stack. // A call to `Use(f, g, h)` equals to `comment.Hooks(f(g(h())))`. func (c *CommentClient) Use(hooks ...Hook) { c.hooks.Comment = append(c.hooks.Comment, hooks...) } // Create returns a create builder for Comment. func (c *CommentClient) Create() *CommentCreate { mutation := newCommentMutation(c.config, OpCreate) return &CommentCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // BulkCreate returns a builder for creating a bulk of Comment entities. func (c *CommentClient) CreateBulk(builders ...*CommentCreate) *CommentCreateBulk { return &CommentCreateBulk{config: c.config, builders: builders} } // Update returns an update builder for Comment. func (c *CommentClient) Update() *CommentUpdate { mutation := newCommentMutation(c.config, OpUpdate) return &CommentUpdate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOne returns an update builder for the given entity. func (c *CommentClient) UpdateOne(co *Comment) *CommentUpdateOne { mutation := newCommentMutation(c.config, OpUpdateOne, withComment(co)) return &CommentUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOneID returns an update builder for the given id. func (c *CommentClient) UpdateOneID(id int) *CommentUpdateOne { mutation := newCommentMutation(c.config, OpUpdateOne, withCommentID(id)) return &CommentUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // Delete returns a delete builder for Comment. func (c *CommentClient) Delete() *CommentDelete { mutation := newCommentMutation(c.config, OpDelete) return &CommentDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } // DeleteOne returns a delete builder for the given entity. func (c *CommentClient) DeleteOne(co *Comment) *CommentDeleteOne { return c.DeleteOneID(co.ID) } // DeleteOneID returns a delete builder for the given id. func (c *CommentClient) DeleteOneID(id int) *CommentDeleteOne { builder := c.Delete().Where(comment.ID(id)) builder.mutation.id = &id builder.mutation.op = OpDeleteOne return &CommentDeleteOne{builder} } // Query returns a query builder for Comment. func (c *CommentClient) Query() *CommentQuery { return &CommentQuery{config: c.config} } // Get returns a Comment entity by its id. func (c *CommentClient) Get(ctx context.Context, id int) (*Comment, error) { return c.Query().Where(comment.ID(id)).Only(ctx) } // GetX is like Get, but panics if an error occurs. func (c *CommentClient) GetX(ctx context.Context, id int) *Comment { co, err := c.Get(ctx, id) if err != nil { panic(err) } return co } // Hooks returns the client hooks. func (c *CommentClient) Hooks() []Hook { return c.hooks.Comment } // FieldTypeClient is a client for the FieldType schema. type FieldTypeClient struct { config } // NewFieldTypeClient returns a client for the FieldType from the given config. func NewFieldTypeClient(c config) *FieldTypeClient { return &FieldTypeClient{config: c} } // Use adds a list of mutation hooks to the hooks stack. // A call to `Use(f, g, h)` equals to `fieldtype.Hooks(f(g(h())))`. func (c *FieldTypeClient) Use(hooks ...Hook) { c.hooks.FieldType = append(c.hooks.FieldType, hooks...) } // Create returns a create builder for FieldType. func (c *FieldTypeClient) Create() *FieldTypeCreate { mutation := newFieldTypeMutation(c.config, OpCreate) return &FieldTypeCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // BulkCreate returns a builder for creating a bulk of FieldType entities. func (c *FieldTypeClient) CreateBulk(builders ...*FieldTypeCreate) *FieldTypeCreateBulk { return &FieldTypeCreateBulk{config: c.config, builders: builders} } // Update returns an update builder for FieldType. func (c *FieldTypeClient) Update() *FieldTypeUpdate { mutation := newFieldTypeMutation(c.config, OpUpdate) return &FieldTypeUpdate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOne returns an update builder for the given entity. func (c *FieldTypeClient) UpdateOne(ft *FieldType) *FieldTypeUpdateOne { mutation := newFieldTypeMutation(c.config, OpUpdateOne, withFieldType(ft)) return &FieldTypeUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOneID returns an update builder for the given id. func (c *FieldTypeClient) UpdateOneID(id int) *FieldTypeUpdateOne { mutation := newFieldTypeMutation(c.config, OpUpdateOne, withFieldTypeID(id)) return &FieldTypeUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // Delete returns a delete builder for FieldType. func (c *FieldTypeClient) Delete() *FieldTypeDelete { mutation := newFieldTypeMutation(c.config, OpDelete) return &FieldTypeDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } // DeleteOne returns a delete builder for the given entity. func (c *FieldTypeClient) DeleteOne(ft *FieldType) *FieldTypeDeleteOne { return c.DeleteOneID(ft.ID) } // DeleteOneID returns a delete builder for the given id. func (c *FieldTypeClient) DeleteOneID(id int) *FieldTypeDeleteOne { builder := c.Delete().Where(fieldtype.ID(id)) builder.mutation.id = &id builder.mutation.op = OpDeleteOne return &FieldTypeDeleteOne{builder} } // Query returns a query builder for FieldType. func (c *FieldTypeClient) Query() *FieldTypeQuery { return &FieldTypeQuery{config: c.config} } // Get returns a FieldType entity by its id. func (c *FieldTypeClient) Get(ctx context.Context, id int) (*FieldType, error) { return c.Query().Where(fieldtype.ID(id)).Only(ctx) } // GetX is like Get, but panics if an error occurs. func (c *FieldTypeClient) GetX(ctx context.Context, id int) *FieldType { ft, err := c.Get(ctx, id) if err != nil { panic(err) } return ft } // Hooks returns the client hooks. func (c *FieldTypeClient) Hooks() []Hook { return c.hooks.FieldType } // FileClient is a client for the File schema. type FileClient struct { config } // NewFileClient returns a client for the File from the given config. func NewFileClient(c config) *FileClient { return &FileClient{config: c} } // Use adds a list of mutation hooks to the hooks stack. // A call to `Use(f, g, h)` equals to `file.Hooks(f(g(h())))`. func (c *FileClient) Use(hooks ...Hook) { c.hooks.File = append(c.hooks.File, hooks...) } // Create returns a create builder for File. func (c *FileClient) Create() *FileCreate { mutation := newFileMutation(c.config, OpCreate) return &FileCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // BulkCreate returns a builder for creating a bulk of File entities. func (c *FileClient) CreateBulk(builders ...*FileCreate) *FileCreateBulk { return &FileCreateBulk{config: c.config, builders: builders} } // Update returns an update builder for File. func (c *FileClient) Update() *FileUpdate { mutation := newFileMutation(c.config, OpUpdate) return &FileUpdate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOne returns an update builder for the given entity. func (c *FileClient) UpdateOne(f *File) *FileUpdateOne { mutation := newFileMutation(c.config, OpUpdateOne, withFile(f)) return &FileUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOneID returns an update builder for the given id. func (c *FileClient) UpdateOneID(id int) *FileUpdateOne { mutation := newFileMutation(c.config, OpUpdateOne, withFileID(id)) return &FileUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // Delete returns a delete builder for File. func (c *FileClient) Delete() *FileDelete { mutation := newFileMutation(c.config, OpDelete) return &FileDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } // DeleteOne returns a delete builder for the given entity. func (c *FileClient) DeleteOne(f *File) *FileDeleteOne { return c.DeleteOneID(f.ID) } // DeleteOneID returns a delete builder for the given id. func (c *FileClient) DeleteOneID(id int) *FileDeleteOne { builder := c.Delete().Where(file.ID(id)) builder.mutation.id = &id builder.mutation.op = OpDeleteOne return &FileDeleteOne{builder} } // Query returns a query builder for File. func (c *FileClient) Query() *FileQuery { return &FileQuery{config: c.config} } // Get returns a File entity by its id. func (c *FileClient) Get(ctx context.Context, id int) (*File, error) { return c.Query().Where(file.ID(id)).Only(ctx) } // GetX is like Get, but panics if an error occurs. func (c *FileClient) GetX(ctx context.Context, id int) *File { f, err := c.Get(ctx, id) if err != nil { panic(err) } return f } // QueryOwner queries the owner edge of a File. func (c *FileClient) QueryOwner(f *File) *UserQuery { query := &UserQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := f.ID step := sqlgraph.NewStep( sqlgraph.From(file.Table, file.FieldID, id), sqlgraph.To(user.Table, user.FieldID), sqlgraph.Edge(sqlgraph.M2O, true, file.OwnerTable, file.OwnerColumn), ) fromV = sqlgraph.Neighbors(f.driver.Dialect(), step) return fromV, nil } return query } // QueryType queries the type edge of a File. func (c *FileClient) QueryType(f *File) *FileTypeQuery { query := &FileTypeQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := f.ID step := sqlgraph.NewStep( sqlgraph.From(file.Table, file.FieldID, id), sqlgraph.To(filetype.Table, filetype.FieldID), sqlgraph.Edge(sqlgraph.M2O, true, file.TypeTable, file.TypeColumn), ) fromV = sqlgraph.Neighbors(f.driver.Dialect(), step) return fromV, nil } return query } // QueryField queries the field edge of a File. func (c *FileClient) QueryField(f *File) *FieldTypeQuery { query := &FieldTypeQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := f.ID step := sqlgraph.NewStep( sqlgraph.From(file.Table, file.FieldID, id), sqlgraph.To(fieldtype.Table, fieldtype.FieldID), sqlgraph.Edge(sqlgraph.O2M, false, file.FieldTable, file.FieldColumn), ) fromV = sqlgraph.Neighbors(f.driver.Dialect(), step) return fromV, nil } return query } // Hooks returns the client hooks. func (c *FileClient) Hooks() []Hook { return c.hooks.File } // FileTypeClient is a client for the FileType schema. type FileTypeClient struct { config } // NewFileTypeClient returns a client for the FileType from the given config. func NewFileTypeClient(c config) *FileTypeClient { return &FileTypeClient{config: c} } // Use adds a list of mutation hooks to the hooks stack. // A call to `Use(f, g, h)` equals to `filetype.Hooks(f(g(h())))`. func (c *FileTypeClient) Use(hooks ...Hook) { c.hooks.FileType = append(c.hooks.FileType, hooks...) } // Create returns a create builder for FileType. func (c *FileTypeClient) Create() *FileTypeCreate { mutation := newFileTypeMutation(c.config, OpCreate) return &FileTypeCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // BulkCreate returns a builder for creating a bulk of FileType entities. func (c *FileTypeClient) CreateBulk(builders ...*FileTypeCreate) *FileTypeCreateBulk { return &FileTypeCreateBulk{config: c.config, builders: builders} } // Update returns an update builder for FileType. func (c *FileTypeClient) Update() *FileTypeUpdate { mutation := newFileTypeMutation(c.config, OpUpdate) return &FileTypeUpdate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOne returns an update builder for the given entity. func (c *FileTypeClient) UpdateOne(ft *FileType) *FileTypeUpdateOne { mutation := newFileTypeMutation(c.config, OpUpdateOne, withFileType(ft)) return &FileTypeUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOneID returns an update builder for the given id. func (c *FileTypeClient) UpdateOneID(id int) *FileTypeUpdateOne { mutation := newFileTypeMutation(c.config, OpUpdateOne, withFileTypeID(id)) return &FileTypeUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // Delete returns a delete builder for FileType. func (c *FileTypeClient) Delete() *FileTypeDelete { mutation := newFileTypeMutation(c.config, OpDelete) return &FileTypeDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } // DeleteOne returns a delete builder for the given entity. func (c *FileTypeClient) DeleteOne(ft *FileType) *FileTypeDeleteOne { return c.DeleteOneID(ft.ID) } // DeleteOneID returns a delete builder for the given id. func (c *FileTypeClient) DeleteOneID(id int) *FileTypeDeleteOne { builder := c.Delete().Where(filetype.ID(id)) builder.mutation.id = &id builder.mutation.op = OpDeleteOne return &FileTypeDeleteOne{builder} } // Query returns a query builder for FileType. func (c *FileTypeClient) Query() *FileTypeQuery { return &FileTypeQuery{config: c.config} } // Get returns a FileType entity by its id. func (c *FileTypeClient) Get(ctx context.Context, id int) (*FileType, error) { return c.Query().Where(filetype.ID(id)).Only(ctx) } // GetX is like Get, but panics if an error occurs. func (c *FileTypeClient) GetX(ctx context.Context, id int) *FileType { ft, err := c.Get(ctx, id) if err != nil { panic(err) } return ft } // QueryFiles queries the files edge of a FileType. func (c *FileTypeClient) QueryFiles(ft *FileType) *FileQuery { query := &FileQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := ft.ID step := sqlgraph.NewStep( sqlgraph.From(filetype.Table, filetype.FieldID, id), sqlgraph.To(file.Table, file.FieldID), sqlgraph.Edge(sqlgraph.O2M, false, filetype.FilesTable, filetype.FilesColumn), ) fromV = sqlgraph.Neighbors(ft.driver.Dialect(), step) return fromV, nil } return query } // Hooks returns the client hooks. func (c *FileTypeClient) Hooks() []Hook { return c.hooks.FileType } // GroupClient is a client for the Group schema. type GroupClient struct { config } // NewGroupClient returns a client for the Group from the given config. func NewGroupClient(c config) *GroupClient { return &GroupClient{config: c} } // Use adds a list of mutation hooks to the hooks stack. // A call to `Use(f, g, h)` equals to `group.Hooks(f(g(h())))`. func (c *GroupClient) Use(hooks ...Hook) { c.hooks.Group = append(c.hooks.Group, hooks...) } // Create returns a create builder for Group. func (c *GroupClient) Create() *GroupCreate { mutation := newGroupMutation(c.config, OpCreate) return &GroupCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // BulkCreate returns a builder for creating a bulk of Group entities. func (c *GroupClient) CreateBulk(builders ...*GroupCreate) *GroupCreateBulk { return &GroupCreateBulk{config: c.config, builders: builders} } // Update returns an update builder for Group. func (c *GroupClient) Update() *GroupUpdate { mutation := newGroupMutation(c.config, OpUpdate) return &GroupUpdate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOne returns an update builder for the given entity. func (c *GroupClient) UpdateOne(gr *Group) *GroupUpdateOne { mutation := newGroupMutation(c.config, OpUpdateOne, withGroup(gr)) return &GroupUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOneID returns an update builder for the given id. func (c *GroupClient) UpdateOneID(id int) *GroupUpdateOne { mutation := newGroupMutation(c.config, OpUpdateOne, withGroupID(id)) return &GroupUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // Delete returns a delete builder for Group. func (c *GroupClient) Delete() *GroupDelete { mutation := newGroupMutation(c.config, OpDelete) return &GroupDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } // DeleteOne returns a delete builder for the given entity. func (c *GroupClient) DeleteOne(gr *Group) *GroupDeleteOne { return c.DeleteOneID(gr.ID) } // DeleteOneID returns a delete builder for the given id. func (c *GroupClient) DeleteOneID(id int) *GroupDeleteOne { builder := c.Delete().Where(group.ID(id)) builder.mutation.id = &id builder.mutation.op = OpDeleteOne return &GroupDeleteOne{builder} } // Query returns a query builder for Group. func (c *GroupClient) Query() *GroupQuery { return &GroupQuery{config: c.config} } // Get returns a Group entity by its id. func (c *GroupClient) Get(ctx context.Context, id int) (*Group, error) { return c.Query().Where(group.ID(id)).Only(ctx) } // GetX is like Get, but panics if an error occurs. func (c *GroupClient) GetX(ctx context.Context, id int) *Group { gr, err := c.Get(ctx, id) if err != nil { panic(err) } return gr } // QueryFiles queries the files edge of a Group. func (c *GroupClient) QueryFiles(gr *Group) *FileQuery { query := &FileQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := gr.ID step := sqlgraph.NewStep( sqlgraph.From(group.Table, group.FieldID, id), sqlgraph.To(file.Table, file.FieldID), sqlgraph.Edge(sqlgraph.O2M, false, group.FilesTable, group.FilesColumn), ) fromV = sqlgraph.Neighbors(gr.driver.Dialect(), step) return fromV, nil } return query } // QueryBlocked queries the blocked edge of a Group. func (c *GroupClient) QueryBlocked(gr *Group) *UserQuery { query := &UserQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := gr.ID step := sqlgraph.NewStep( sqlgraph.From(group.Table, group.FieldID, id), sqlgraph.To(user.Table, user.FieldID), sqlgraph.Edge(sqlgraph.O2M, false, group.BlockedTable, group.BlockedColumn), ) fromV = sqlgraph.Neighbors(gr.driver.Dialect(), step) return fromV, nil } return query } // QueryUsers queries the users edge of a Group. func (c *GroupClient) QueryUsers(gr *Group) *UserQuery { query := &UserQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := gr.ID step := sqlgraph.NewStep( sqlgraph.From(group.Table, group.FieldID, id), sqlgraph.To(user.Table, user.FieldID), sqlgraph.Edge(sqlgraph.M2M, true, group.UsersTable, group.UsersPrimaryKey...), ) fromV = sqlgraph.Neighbors(gr.driver.Dialect(), step) return fromV, nil } return query } // QueryInfo queries the info edge of a Group. func (c *GroupClient) QueryInfo(gr *Group) *GroupInfoQuery { query := &GroupInfoQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := gr.ID step := sqlgraph.NewStep( sqlgraph.From(group.Table, group.FieldID, id), sqlgraph.To(groupinfo.Table, groupinfo.FieldID), sqlgraph.Edge(sqlgraph.M2O, false, group.InfoTable, group.InfoColumn), ) fromV = sqlgraph.Neighbors(gr.driver.Dialect(), step) return fromV, nil } return query } // Hooks returns the client hooks. func (c *GroupClient) Hooks() []Hook { return c.hooks.Group } // GroupInfoClient is a client for the GroupInfo schema. type GroupInfoClient struct { config } // NewGroupInfoClient returns a client for the GroupInfo from the given config. func NewGroupInfoClient(c config) *GroupInfoClient { return &GroupInfoClient{config: c} } // Use adds a list of mutation hooks to the hooks stack. // A call to `Use(f, g, h)` equals to `groupinfo.Hooks(f(g(h())))`. func (c *GroupInfoClient) Use(hooks ...Hook) { c.hooks.GroupInfo = append(c.hooks.GroupInfo, hooks...) } // Create returns a create builder for GroupInfo. func (c *GroupInfoClient) Create() *GroupInfoCreate { mutation := newGroupInfoMutation(c.config, OpCreate) return &GroupInfoCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // BulkCreate returns a builder for creating a bulk of GroupInfo entities. func (c *GroupInfoClient) CreateBulk(builders ...*GroupInfoCreate) *GroupInfoCreateBulk { return &GroupInfoCreateBulk{config: c.config, builders: builders} } // Update returns an update builder for GroupInfo. func (c *GroupInfoClient) Update() *GroupInfoUpdate { mutation := newGroupInfoMutation(c.config, OpUpdate) return &GroupInfoUpdate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOne returns an update builder for the given entity. func (c *GroupInfoClient) UpdateOne(gi *GroupInfo) *GroupInfoUpdateOne { mutation := newGroupInfoMutation(c.config, OpUpdateOne, withGroupInfo(gi)) return &GroupInfoUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOneID returns an update builder for the given id. func (c *GroupInfoClient) UpdateOneID(id int) *GroupInfoUpdateOne { mutation := newGroupInfoMutation(c.config, OpUpdateOne, withGroupInfoID(id)) return &GroupInfoUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // Delete returns a delete builder for GroupInfo. func (c *GroupInfoClient) Delete() *GroupInfoDelete { mutation := newGroupInfoMutation(c.config, OpDelete) return &GroupInfoDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } // DeleteOne returns a delete builder for the given entity. func (c *GroupInfoClient) DeleteOne(gi *GroupInfo) *GroupInfoDeleteOne { return c.DeleteOneID(gi.ID) } // DeleteOneID returns a delete builder for the given id. func (c *GroupInfoClient) DeleteOneID(id int) *GroupInfoDeleteOne { builder := c.Delete().Where(groupinfo.ID(id)) builder.mutation.id = &id builder.mutation.op = OpDeleteOne return &GroupInfoDeleteOne{builder} } // Query returns a query builder for GroupInfo. func (c *GroupInfoClient) Query() *GroupInfoQuery { return &GroupInfoQuery{config: c.config} } // Get returns a GroupInfo entity by its id. func (c *GroupInfoClient) Get(ctx context.Context, id int) (*GroupInfo, error) { return c.Query().Where(groupinfo.ID(id)).Only(ctx) } // GetX is like Get, but panics if an error occurs. func (c *GroupInfoClient) GetX(ctx context.Context, id int) *GroupInfo { gi, err := c.Get(ctx, id) if err != nil { panic(err) } return gi } // QueryGroups queries the groups edge of a GroupInfo. func (c *GroupInfoClient) QueryGroups(gi *GroupInfo) *GroupQuery { query := &GroupQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := gi.ID step := sqlgraph.NewStep( sqlgraph.From(groupinfo.Table, groupinfo.FieldID, id), sqlgraph.To(group.Table, group.FieldID), sqlgraph.Edge(sqlgraph.O2M, true, groupinfo.GroupsTable, groupinfo.GroupsColumn), ) fromV = sqlgraph.Neighbors(gi.driver.Dialect(), step) return fromV, nil } return query } // Hooks returns the client hooks. func (c *GroupInfoClient) Hooks() []Hook { return c.hooks.GroupInfo } // ItemClient is a client for the Item schema. type ItemClient struct { config } // NewItemClient returns a client for the Item from the given config. func NewItemClient(c config) *ItemClient { return &ItemClient{config: c} } // Use adds a list of mutation hooks to the hooks stack. // A call to `Use(f, g, h)` equals to `item.Hooks(f(g(h())))`. func (c *ItemClient) Use(hooks ...Hook) { c.hooks.Item = append(c.hooks.Item, hooks...) } // Create returns a create builder for Item. func (c *ItemClient) Create() *ItemCreate { mutation := newItemMutation(c.config, OpCreate) return &ItemCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // BulkCreate returns a builder for creating a bulk of Item entities. func (c *ItemClient) CreateBulk(builders ...*ItemCreate) *ItemCreateBulk { return &ItemCreateBulk{config: c.config, builders: builders} } // Update returns an update builder for Item. func (c *ItemClient) Update() *ItemUpdate { mutation := newItemMutation(c.config, OpUpdate) return &ItemUpdate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOne returns an update builder for the given entity. func (c *ItemClient) UpdateOne(i *Item) *ItemUpdateOne { mutation := newItemMutation(c.config, OpUpdateOne, withItem(i)) return &ItemUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOneID returns an update builder for the given id. func (c *ItemClient) UpdateOneID(id int) *ItemUpdateOne { mutation := newItemMutation(c.config, OpUpdateOne, withItemID(id)) return &ItemUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // Delete returns a delete builder for Item. func (c *ItemClient) Delete() *ItemDelete { mutation := newItemMutation(c.config, OpDelete) return &ItemDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } // DeleteOne returns a delete builder for the given entity. func (c *ItemClient) DeleteOne(i *Item) *ItemDeleteOne { return c.DeleteOneID(i.ID) } // DeleteOneID returns a delete builder for the given id. func (c *ItemClient) DeleteOneID(id int) *ItemDeleteOne { builder := c.Delete().Where(item.ID(id)) builder.mutation.id = &id builder.mutation.op = OpDeleteOne return &ItemDeleteOne{builder} } // Query returns a query builder for Item. func (c *ItemClient) Query() *ItemQuery { return &ItemQuery{config: c.config} } // Get returns a Item entity by its id. func (c *ItemClient) Get(ctx context.Context, id int) (*Item, error) { return c.Query().Where(item.ID(id)).Only(ctx) } // GetX is like Get, but panics if an error occurs. func (c *ItemClient) GetX(ctx context.Context, id int) *Item { i, err := c.Get(ctx, id) if err != nil { panic(err) } return i } // Hooks returns the client hooks. func (c *ItemClient) Hooks() []Hook { return c.hooks.Item } // NodeClient is a client for the Node schema. type NodeClient struct { config } // NewNodeClient returns a client for the Node from the given config. func NewNodeClient(c config) *NodeClient { return &NodeClient{config: c} } // Use adds a list of mutation hooks to the hooks stack. // A call to `Use(f, g, h)` equals to `node.Hooks(f(g(h())))`. func (c *NodeClient) Use(hooks ...Hook) { c.hooks.Node = append(c.hooks.Node, hooks...) } // Create returns a create builder for Node. func (c *NodeClient) Create() *NodeCreate { mutation := newNodeMutation(c.config, OpCreate) return &NodeCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // BulkCreate returns a builder for creating a bulk of Node entities. func (c *NodeClient) CreateBulk(builders ...*NodeCreate) *NodeCreateBulk { return &NodeCreateBulk{config: c.config, builders: builders} } // Update returns an update builder for Node. func (c *NodeClient) Update() *NodeUpdate { mutation := newNodeMutation(c.config, OpUpdate) return &NodeUpdate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOne returns an update builder for the given entity. func (c *NodeClient) UpdateOne(n *Node) *NodeUpdateOne { mutation := newNodeMutation(c.config, OpUpdateOne, withNode(n)) return &NodeUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOneID returns an update builder for the given id. func (c *NodeClient) UpdateOneID(id int) *NodeUpdateOne { mutation := newNodeMutation(c.config, OpUpdateOne, withNodeID(id)) return &NodeUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // Delete returns a delete builder for Node. func (c *NodeClient) Delete() *NodeDelete { mutation := newNodeMutation(c.config, OpDelete) return &NodeDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } // DeleteOne returns a delete builder for the given entity. func (c *NodeClient) DeleteOne(n *Node) *NodeDeleteOne { return c.DeleteOneID(n.ID) } // DeleteOneID returns a delete builder for the given id. func (c *NodeClient) DeleteOneID(id int) *NodeDeleteOne { builder := c.Delete().Where(node.ID(id)) builder.mutation.id = &id builder.mutation.op = OpDeleteOne return &NodeDeleteOne{builder} } // Query returns a query builder for Node. func (c *NodeClient) Query() *NodeQuery { return &NodeQuery{config: c.config} } // Get returns a Node entity by its id. func (c *NodeClient) Get(ctx context.Context, id int) (*Node, error) { return c.Query().Where(node.ID(id)).Only(ctx) } // GetX is like Get, but panics if an error occurs. func (c *NodeClient) GetX(ctx context.Context, id int) *Node { n, err := c.Get(ctx, id) if err != nil { panic(err) } return n } // QueryPrev queries the prev edge of a Node. func (c *NodeClient) QueryPrev(n *Node) *NodeQuery { query := &NodeQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := n.ID step := sqlgraph.NewStep( sqlgraph.From(node.Table, node.FieldID, id), sqlgraph.To(node.Table, node.FieldID), sqlgraph.Edge(sqlgraph.O2O, true, node.PrevTable, node.PrevColumn), ) fromV = sqlgraph.Neighbors(n.driver.Dialect(), step) return fromV, nil } return query } // QueryNext queries the next edge of a Node. func (c *NodeClient) QueryNext(n *Node) *NodeQuery { query := &NodeQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := n.ID step := sqlgraph.NewStep( sqlgraph.From(node.Table, node.FieldID, id), sqlgraph.To(node.Table, node.FieldID), sqlgraph.Edge(sqlgraph.O2O, false, node.NextTable, node.NextColumn), ) fromV = sqlgraph.Neighbors(n.driver.Dialect(), step) return fromV, nil } return query } // Hooks returns the client hooks. func (c *NodeClient) Hooks() []Hook { return c.hooks.Node } // PetClient is a client for the Pet schema. type PetClient struct { config } // NewPetClient returns a client for the Pet from the given config. func NewPetClient(c config) *PetClient { return &PetClient{config: c} } // Use adds a list of mutation hooks to the hooks stack. // A call to `Use(f, g, h)` equals to `pet.Hooks(f(g(h())))`. func (c *PetClient) Use(hooks ...Hook) { c.hooks.Pet = append(c.hooks.Pet, hooks...) } // Create returns a create builder for Pet. func (c *PetClient) Create() *PetCreate { mutation := newPetMutation(c.config, OpCreate) return &PetCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // BulkCreate returns a builder for creating a bulk of Pet entities. func (c *PetClient) CreateBulk(builders ...*PetCreate) *PetCreateBulk { return &PetCreateBulk{config: c.config, builders: builders} } // Update returns an update builder for Pet. func (c *PetClient) Update() *PetUpdate { mutation := newPetMutation(c.config, OpUpdate) return &PetUpdate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOne returns an update builder for the given entity. func (c *PetClient) UpdateOne(pe *Pet) *PetUpdateOne { mutation := newPetMutation(c.config, OpUpdateOne, withPet(pe)) return &PetUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOneID returns an update builder for the given id. func (c *PetClient) UpdateOneID(id int) *PetUpdateOne { mutation := newPetMutation(c.config, OpUpdateOne, withPetID(id)) return &PetUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // Delete returns a delete builder for Pet. func (c *PetClient) Delete() *PetDelete { mutation := newPetMutation(c.config, OpDelete) return &PetDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } // DeleteOne returns a delete builder for the given entity. func (c *PetClient) DeleteOne(pe *Pet) *PetDeleteOne { return c.DeleteOneID(pe.ID) } // DeleteOneID returns a delete builder for the given id. func (c *PetClient) DeleteOneID(id int) *PetDeleteOne { builder := c.Delete().Where(pet.ID(id)) builder.mutation.id = &id builder.mutation.op = OpDeleteOne return &PetDeleteOne{builder} } // Query returns a query builder for Pet. func (c *PetClient) Query() *PetQuery { return &PetQuery{config: c.config} } // Get returns a Pet entity by its id. func (c *PetClient) Get(ctx context.Context, id int) (*Pet, error) { return c.Query().Where(pet.ID(id)).Only(ctx) } // GetX is like Get, but panics if an error occurs. func (c *PetClient) GetX(ctx context.Context, id int) *Pet { pe, err := c.Get(ctx, id) if err != nil { panic(err) } return pe } // QueryTeam queries the team edge of a Pet. func (c *PetClient) QueryTeam(pe *Pet) *UserQuery { query := &UserQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := pe.ID step := sqlgraph.NewStep( sqlgraph.From(pet.Table, pet.FieldID, id), sqlgraph.To(user.Table, user.FieldID), sqlgraph.Edge(sqlgraph.O2O, true, pet.TeamTable, pet.TeamColumn), ) fromV = sqlgraph.Neighbors(pe.driver.Dialect(), step) return fromV, nil } return query } // QueryOwner queries the owner edge of a Pet. func (c *PetClient) QueryOwner(pe *Pet) *UserQuery { query := &UserQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := pe.ID step := sqlgraph.NewStep( sqlgraph.From(pet.Table, pet.FieldID, id), sqlgraph.To(user.Table, user.FieldID), sqlgraph.Edge(sqlgraph.M2O, true, pet.OwnerTable, pet.OwnerColumn), ) fromV = sqlgraph.Neighbors(pe.driver.Dialect(), step) return fromV, nil } return query } // Hooks returns the client hooks. func (c *PetClient) Hooks() []Hook { return c.hooks.Pet } // SpecClient is a client for the Spec schema. type SpecClient struct { config } // NewSpecClient returns a client for the Spec from the given config. func NewSpecClient(c config) *SpecClient { return &SpecClient{config: c} } // Use adds a list of mutation hooks to the hooks stack. // A call to `Use(f, g, h)` equals to `spec.Hooks(f(g(h())))`. func (c *SpecClient) Use(hooks ...Hook) { c.hooks.Spec = append(c.hooks.Spec, hooks...) } // Create returns a create builder for Spec. func (c *SpecClient) Create() *SpecCreate { mutation := newSpecMutation(c.config, OpCreate) return &SpecCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // BulkCreate returns a builder for creating a bulk of Spec entities. func (c *SpecClient) CreateBulk(builders ...*SpecCreate) *SpecCreateBulk { return &SpecCreateBulk{config: c.config, builders: builders} } // Update returns an update builder for Spec. func (c *SpecClient) Update() *SpecUpdate { mutation := newSpecMutation(c.config, OpUpdate) return &SpecUpdate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOne returns an update builder for the given entity. func (c *SpecClient) UpdateOne(s *Spec) *SpecUpdateOne { mutation := newSpecMutation(c.config, OpUpdateOne, withSpec(s)) return &SpecUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOneID returns an update builder for the given id. func (c *SpecClient) UpdateOneID(id int) *SpecUpdateOne { mutation := newSpecMutation(c.config, OpUpdateOne, withSpecID(id)) return &SpecUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // Delete returns a delete builder for Spec. func (c *SpecClient) Delete() *SpecDelete { mutation := newSpecMutation(c.config, OpDelete) return &SpecDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } // DeleteOne returns a delete builder for the given entity. func (c *SpecClient) DeleteOne(s *Spec) *SpecDeleteOne { return c.DeleteOneID(s.ID) } // DeleteOneID returns a delete builder for the given id. func (c *SpecClient) DeleteOneID(id int) *SpecDeleteOne { builder := c.Delete().Where(spec.ID(id)) builder.mutation.id = &id builder.mutation.op = OpDeleteOne return &SpecDeleteOne{builder} } // Query returns a query builder for Spec. func (c *SpecClient) Query() *SpecQuery { return &SpecQuery{config: c.config} } // Get returns a Spec entity by its id. func (c *SpecClient) Get(ctx context.Context, id int) (*Spec, error) { return c.Query().Where(spec.ID(id)).Only(ctx) } // GetX is like Get, but panics if an error occurs. func (c *SpecClient) GetX(ctx context.Context, id int) *Spec { s, err := c.Get(ctx, id) if err != nil { panic(err) } return s } // QueryCard queries the card edge of a Spec. func (c *SpecClient) QueryCard(s *Spec) *CardQuery { query := &CardQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := s.ID step := sqlgraph.NewStep( sqlgraph.From(spec.Table, spec.FieldID, id), sqlgraph.To(card.Table, card.FieldID), sqlgraph.Edge(sqlgraph.M2M, false, spec.CardTable, spec.CardPrimaryKey...), ) fromV = sqlgraph.Neighbors(s.driver.Dialect(), step) return fromV, nil } return query } // Hooks returns the client hooks. func (c *SpecClient) Hooks() []Hook { return c.hooks.Spec } // UserClient is a client for the User schema. type UserClient struct { config } // NewUserClient returns a client for the User from the given config. func NewUserClient(c config) *UserClient { return &UserClient{config: c} } // Use adds a list of mutation hooks to the hooks stack. // A call to `Use(f, g, h)` equals to `user.Hooks(f(g(h())))`. func (c *UserClient) Use(hooks ...Hook) { c.hooks.User = append(c.hooks.User, hooks...) } // Create returns a create builder for User. func (c *UserClient) Create() *UserCreate { mutation := newUserMutation(c.config, OpCreate) return &UserCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // BulkCreate returns a builder for creating a bulk of User entities. func (c *UserClient) CreateBulk(builders ...*UserCreate) *UserCreateBulk { return &UserCreateBulk{config: c.config, builders: builders} } // Update returns an update builder for User. func (c *UserClient) Update() *UserUpdate { mutation := newUserMutation(c.config, OpUpdate) return &UserUpdate{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOne returns an update builder for the given entity. func (c *UserClient) UpdateOne(u *User) *UserUpdateOne { mutation := newUserMutation(c.config, OpUpdateOne, withUser(u)) return &UserUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // UpdateOneID returns an update builder for the given id. func (c *UserClient) UpdateOneID(id int) *UserUpdateOne { mutation := newUserMutation(c.config, OpUpdateOne, withUserID(id)) return &UserUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} } // Delete returns a delete builder for User. func (c *UserClient) Delete() *UserDelete { mutation := newUserMutation(c.config, OpDelete) return &UserDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } // DeleteOne returns a delete builder for the given entity. func (c *UserClient) DeleteOne(u *User) *UserDeleteOne { return c.DeleteOneID(u.ID) } // DeleteOneID returns a delete builder for the given id. func (c *UserClient) DeleteOneID(id int) *UserDeleteOne { builder := c.Delete().Where(user.ID(id)) builder.mutation.id = &id builder.mutation.op = OpDeleteOne return &UserDeleteOne{builder} } // Query returns a query builder for User. func (c *UserClient) Query() *UserQuery { return &UserQuery{config: c.config} } // Get returns a User entity by its id. func (c *UserClient) Get(ctx context.Context, id int) (*User, error) { return c.Query().Where(user.ID(id)).Only(ctx) } // GetX is like Get, but panics if an error occurs. func (c *UserClient) GetX(ctx context.Context, id int) *User { u, err := c.Get(ctx, id) if err != nil { panic(err) } return u } // QueryCard queries the card edge of a User. func (c *UserClient) QueryCard(u *User) *CardQuery { query := &CardQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := u.ID step := sqlgraph.NewStep( sqlgraph.From(user.Table, user.FieldID, id), sqlgraph.To(card.Table, card.FieldID), sqlgraph.Edge(sqlgraph.O2O, false, user.CardTable, user.CardColumn), ) fromV = sqlgraph.Neighbors(u.driver.Dialect(), step) return fromV, nil } return query } // QueryPets queries the pets edge of a User. func (c *UserClient) QueryPets(u *User) *PetQuery { query := &PetQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := u.ID step := sqlgraph.NewStep( sqlgraph.From(user.Table, user.FieldID, id), sqlgraph.To(pet.Table, pet.FieldID), sqlgraph.Edge(sqlgraph.O2M, false, user.PetsTable, user.PetsColumn), ) fromV = sqlgraph.Neighbors(u.driver.Dialect(), step) return fromV, nil } return query } // QueryFiles queries the files edge of a User. func (c *UserClient) QueryFiles(u *User) *FileQuery { query := &FileQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := u.ID step := sqlgraph.NewStep( sqlgraph.From(user.Table, user.FieldID, id), sqlgraph.To(file.Table, file.FieldID), sqlgraph.Edge(sqlgraph.O2M, false, user.FilesTable, user.FilesColumn), ) fromV = sqlgraph.Neighbors(u.driver.Dialect(), step) return fromV, nil } return query } // QueryGroups queries the groups edge of a User. func (c *UserClient) QueryGroups(u *User) *GroupQuery { query := &GroupQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := u.ID step := sqlgraph.NewStep( sqlgraph.From(user.Table, user.FieldID, id), sqlgraph.To(group.Table, group.FieldID), sqlgraph.Edge(sqlgraph.M2M, false, user.GroupsTable, user.GroupsPrimaryKey...), ) fromV = sqlgraph.Neighbors(u.driver.Dialect(), step) return fromV, nil } return query } // QueryFriends queries the friends edge of a User. func (c *UserClient) QueryFriends(u *User) *UserQuery { query := &UserQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := u.ID step := sqlgraph.NewStep( sqlgraph.From(user.Table, user.FieldID, id), sqlgraph.To(user.Table, user.FieldID), sqlgraph.Edge(sqlgraph.M2M, false, user.FriendsTable, user.FriendsPrimaryKey...), ) fromV = sqlgraph.Neighbors(u.driver.Dialect(), step) return fromV, nil } return query } // QueryFollowers queries the followers edge of a User. func (c *UserClient) QueryFollowers(u *User) *UserQuery { query := &UserQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := u.ID step := sqlgraph.NewStep( sqlgraph.From(user.Table, user.FieldID, id), sqlgraph.To(user.Table, user.FieldID), sqlgraph.Edge(sqlgraph.M2M, true, user.FollowersTable, user.FollowersPrimaryKey...), ) fromV = sqlgraph.Neighbors(u.driver.Dialect(), step) return fromV, nil } return query } // QueryFollowing queries the following edge of a User. func (c *UserClient) QueryFollowing(u *User) *UserQuery { query := &UserQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := u.ID step := sqlgraph.NewStep( sqlgraph.From(user.Table, user.FieldID, id), sqlgraph.To(user.Table, user.FieldID), sqlgraph.Edge(sqlgraph.M2M, false, user.FollowingTable, user.FollowingPrimaryKey...), ) fromV = sqlgraph.Neighbors(u.driver.Dialect(), step) return fromV, nil } return query } // QueryTeam queries the team edge of a User. func (c *UserClient) QueryTeam(u *User) *PetQuery { query := &PetQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := u.ID step := sqlgraph.NewStep( sqlgraph.From(user.Table, user.FieldID, id), sqlgraph.To(pet.Table, pet.FieldID), sqlgraph.Edge(sqlgraph.O2O, false, user.TeamTable, user.TeamColumn), ) fromV = sqlgraph.Neighbors(u.driver.Dialect(), step) return fromV, nil } return query } // QuerySpouse queries the spouse edge of a User. func (c *UserClient) QuerySpouse(u *User) *UserQuery { query := &UserQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := u.ID step := sqlgraph.NewStep( sqlgraph.From(user.Table, user.FieldID, id), sqlgraph.To(user.Table, user.FieldID), sqlgraph.Edge(sqlgraph.O2O, false, user.SpouseTable, user.SpouseColumn), ) fromV = sqlgraph.Neighbors(u.driver.Dialect(), step) return fromV, nil } return query } // QueryChildren queries the children edge of a User. func (c *UserClient) QueryChildren(u *User) *UserQuery { query := &UserQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := u.ID step := sqlgraph.NewStep( sqlgraph.From(user.Table, user.FieldID, id), sqlgraph.To(user.Table, user.FieldID), sqlgraph.Edge(sqlgraph.O2M, true, user.ChildrenTable, user.ChildrenColumn), ) fromV = sqlgraph.Neighbors(u.driver.Dialect(), step) return fromV, nil } return query } // QueryParent queries the parent edge of a User. func (c *UserClient) QueryParent(u *User) *UserQuery { query := &UserQuery{config: c.config} query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) { id := u.ID step := sqlgraph.NewStep( sqlgraph.From(user.Table, user.FieldID, id), sqlgraph.To(user.Table, user.FieldID), sqlgraph.Edge(sqlgraph.M2O, false, user.ParentTable, user.ParentColumn), ) fromV = sqlgraph.Neighbors(u.driver.Dialect(), step) return fromV, nil } return query } // Hooks returns the client hooks. func (c *UserClient) Hooks() []Hook { return c.hooks.User }