// Code generated (@generated) by entc, DO NOT EDIT. package entv1 import ( "context" "fmt" "log" "fbc/ent/entc/integration/migrate/entv1/migrate" "fbc/ent/entc/integration/migrate/entv1/user" ) // 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 // 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 { c := config{log: log.Println} c.options(opts...) return &Client{ config: c, Schema: migrate.NewSchema(c.driver), User: NewUserClient(c), } } // Tx returns a new transactional client. func (c *Client) Tx(ctx context.Context) (*Tx, error) { if _, ok := c.driver.(*txDriver); ok { return nil, fmt.Errorf("entv1: cannot start a transaction within a transaction") } tx, err := newTx(ctx, c.driver) if err != nil { return nil, fmt.Errorf("entv1: starting a transaction: %v", err) } cfg := config{driver: tx, log: c.log, verbose: c.verbose} return &Tx{ config: cfg, User: NewUserClient(cfg), }, nil } // 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} } // Create returns a create builder for User. func (c *UserClient) Create() *UserCreate { return &UserCreate{config: c.config} } // Update returns an update builder for User. func (c *UserClient) Update() *UserUpdate { return &UserUpdate{config: c.config} } // UpdateOne returns an update builder for the given entity. func (c *UserClient) UpdateOne(u *User) *UserUpdateOne { return c.UpdateOneID(u.ID) } // UpdateOneID returns an update builder for the given id. func (c *UserClient) UpdateOneID(id int) *UserUpdateOne { return &UserUpdateOne{config: c.config, id: id} } // Delete returns a delete builder for User. func (c *UserClient) Delete() *UserDelete { return &UserDelete{config: c.config} } // 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 { return &UserDeleteOne{c.Delete().Where(user.ID(id))} } // Create returns a query builder for User. func (c *UserClient) Query() *UserQuery { return &UserQuery{config: c.config} }