// Code generated by ent, DO NOT EDIT. package ent import ( "context" "errors" "fmt" "time" "entgo.io/ent/dialect" "entgo.io/ent/dialect/sql" "entgo.io/ent/dialect/sql/sqlgraph" "entgo.io/ent/schema/field" "github.com/google/uuid" "github.com/lysand-org/versia-go/ent/image" "github.com/lysand-org/versia-go/ent/instancemetadata" "github.com/lysand-org/versia-go/ent/note" "github.com/lysand-org/versia-go/ent/user" "github.com/lysand-org/versia-go/pkg/versia" ) // UserCreate is the builder for creating a User entity. type UserCreate struct { config mutation *UserMutation hooks []Hook conflict []sql.ConflictOption } // SetIsRemote sets the "isRemote" field. func (uc *UserCreate) SetIsRemote(b bool) *UserCreate { uc.mutation.SetIsRemote(b) return uc } // SetURI sets the "uri" field. func (uc *UserCreate) SetURI(s string) *UserCreate { uc.mutation.SetURI(s) return uc } // SetExtensions sets the "extensions" field. func (uc *UserCreate) SetExtensions(v versia.Extensions) *UserCreate { uc.mutation.SetExtensions(v) return uc } // SetCreatedAt sets the "created_at" field. func (uc *UserCreate) SetCreatedAt(t time.Time) *UserCreate { uc.mutation.SetCreatedAt(t) return uc } // SetNillableCreatedAt sets the "created_at" field if the given value is not nil. func (uc *UserCreate) SetNillableCreatedAt(t *time.Time) *UserCreate { if t != nil { uc.SetCreatedAt(*t) } return uc } // SetUpdatedAt sets the "updated_at" field. func (uc *UserCreate) SetUpdatedAt(t time.Time) *UserCreate { uc.mutation.SetUpdatedAt(t) return uc } // SetNillableUpdatedAt sets the "updated_at" field if the given value is not nil. func (uc *UserCreate) SetNillableUpdatedAt(t *time.Time) *UserCreate { if t != nil { uc.SetUpdatedAt(*t) } return uc } // SetUsername sets the "username" field. func (uc *UserCreate) SetUsername(s string) *UserCreate { uc.mutation.SetUsername(s) return uc } // SetPasswordHash sets the "passwordHash" field. func (uc *UserCreate) SetPasswordHash(b []byte) *UserCreate { uc.mutation.SetPasswordHash(b) return uc } // SetDisplayName sets the "displayName" field. func (uc *UserCreate) SetDisplayName(s string) *UserCreate { uc.mutation.SetDisplayName(s) return uc } // SetNillableDisplayName sets the "displayName" field if the given value is not nil. func (uc *UserCreate) SetNillableDisplayName(s *string) *UserCreate { if s != nil { uc.SetDisplayName(*s) } return uc } // SetBiography sets the "biography" field. func (uc *UserCreate) SetBiography(s string) *UserCreate { uc.mutation.SetBiography(s) return uc } // SetNillableBiography sets the "biography" field if the given value is not nil. func (uc *UserCreate) SetNillableBiography(s *string) *UserCreate { if s != nil { uc.SetBiography(*s) } return uc } // SetPublicKey sets the "publicKey" field. func (uc *UserCreate) SetPublicKey(b []byte) *UserCreate { uc.mutation.SetPublicKey(b) return uc } // SetPublicKeyActor sets the "publicKeyActor" field. func (uc *UserCreate) SetPublicKeyActor(s string) *UserCreate { uc.mutation.SetPublicKeyActor(s) return uc } // SetPublicKeyAlgorithm sets the "publicKeyAlgorithm" field. func (uc *UserCreate) SetPublicKeyAlgorithm(s string) *UserCreate { uc.mutation.SetPublicKeyAlgorithm(s) return uc } // SetPrivateKey sets the "privateKey" field. func (uc *UserCreate) SetPrivateKey(b []byte) *UserCreate { uc.mutation.SetPrivateKey(b) return uc } // SetIndexable sets the "indexable" field. func (uc *UserCreate) SetIndexable(b bool) *UserCreate { uc.mutation.SetIndexable(b) return uc } // SetNillableIndexable sets the "indexable" field if the given value is not nil. func (uc *UserCreate) SetNillableIndexable(b *bool) *UserCreate { if b != nil { uc.SetIndexable(*b) } return uc } // SetPrivacyLevel sets the "privacyLevel" field. func (uc *UserCreate) SetPrivacyLevel(ul user.PrivacyLevel) *UserCreate { uc.mutation.SetPrivacyLevel(ul) return uc } // SetNillablePrivacyLevel sets the "privacyLevel" field if the given value is not nil. func (uc *UserCreate) SetNillablePrivacyLevel(ul *user.PrivacyLevel) *UserCreate { if ul != nil { uc.SetPrivacyLevel(*ul) } return uc } // SetFields sets the "fields" field. func (uc *UserCreate) SetFields(vf []versia.UserField) *UserCreate { uc.mutation.SetFields(vf) return uc } // SetInbox sets the "inbox" field. func (uc *UserCreate) SetInbox(s string) *UserCreate { uc.mutation.SetInbox(s) return uc } // SetFeatured sets the "featured" field. func (uc *UserCreate) SetFeatured(s string) *UserCreate { uc.mutation.SetFeatured(s) return uc } // SetFollowers sets the "followers" field. func (uc *UserCreate) SetFollowers(s string) *UserCreate { uc.mutation.SetFollowers(s) return uc } // SetFollowing sets the "following" field. func (uc *UserCreate) SetFollowing(s string) *UserCreate { uc.mutation.SetFollowing(s) return uc } // SetOutbox sets the "outbox" field. func (uc *UserCreate) SetOutbox(s string) *UserCreate { uc.mutation.SetOutbox(s) return uc } // SetID sets the "id" field. func (uc *UserCreate) SetID(u uuid.UUID) *UserCreate { uc.mutation.SetID(u) return uc } // SetNillableID sets the "id" field if the given value is not nil. func (uc *UserCreate) SetNillableID(u *uuid.UUID) *UserCreate { if u != nil { uc.SetID(*u) } return uc } // SetAvatarImageID sets the "avatarImage" edge to the Image entity by ID. func (uc *UserCreate) SetAvatarImageID(id int) *UserCreate { uc.mutation.SetAvatarImageID(id) return uc } // SetNillableAvatarImageID sets the "avatarImage" edge to the Image entity by ID if the given value is not nil. func (uc *UserCreate) SetNillableAvatarImageID(id *int) *UserCreate { if id != nil { uc = uc.SetAvatarImageID(*id) } return uc } // SetAvatarImage sets the "avatarImage" edge to the Image entity. func (uc *UserCreate) SetAvatarImage(i *Image) *UserCreate { return uc.SetAvatarImageID(i.ID) } // SetHeaderImageID sets the "headerImage" edge to the Image entity by ID. func (uc *UserCreate) SetHeaderImageID(id int) *UserCreate { uc.mutation.SetHeaderImageID(id) return uc } // SetNillableHeaderImageID sets the "headerImage" edge to the Image entity by ID if the given value is not nil. func (uc *UserCreate) SetNillableHeaderImageID(id *int) *UserCreate { if id != nil { uc = uc.SetHeaderImageID(*id) } return uc } // SetHeaderImage sets the "headerImage" edge to the Image entity. func (uc *UserCreate) SetHeaderImage(i *Image) *UserCreate { return uc.SetHeaderImageID(i.ID) } // AddAuthoredNoteIDs adds the "authoredNotes" edge to the Note entity by IDs. func (uc *UserCreate) AddAuthoredNoteIDs(ids ...uuid.UUID) *UserCreate { uc.mutation.AddAuthoredNoteIDs(ids...) return uc } // AddAuthoredNotes adds the "authoredNotes" edges to the Note entity. func (uc *UserCreate) AddAuthoredNotes(n ...*Note) *UserCreate { ids := make([]uuid.UUID, len(n)) for i := range n { ids[i] = n[i].ID } return uc.AddAuthoredNoteIDs(ids...) } // AddMentionedNoteIDs adds the "mentionedNotes" edge to the Note entity by IDs. func (uc *UserCreate) AddMentionedNoteIDs(ids ...uuid.UUID) *UserCreate { uc.mutation.AddMentionedNoteIDs(ids...) return uc } // AddMentionedNotes adds the "mentionedNotes" edges to the Note entity. func (uc *UserCreate) AddMentionedNotes(n ...*Note) *UserCreate { ids := make([]uuid.UUID, len(n)) for i := range n { ids[i] = n[i].ID } return uc.AddMentionedNoteIDs(ids...) } // AddServerIDs adds the "servers" edge to the InstanceMetadata entity by IDs. func (uc *UserCreate) AddServerIDs(ids ...uuid.UUID) *UserCreate { uc.mutation.AddServerIDs(ids...) return uc } // AddServers adds the "servers" edges to the InstanceMetadata entity. func (uc *UserCreate) AddServers(i ...*InstanceMetadata) *UserCreate { ids := make([]uuid.UUID, len(i)) for j := range i { ids[j] = i[j].ID } return uc.AddServerIDs(ids...) } // AddModeratedServerIDs adds the "moderatedServers" edge to the InstanceMetadata entity by IDs. func (uc *UserCreate) AddModeratedServerIDs(ids ...uuid.UUID) *UserCreate { uc.mutation.AddModeratedServerIDs(ids...) return uc } // AddModeratedServers adds the "moderatedServers" edges to the InstanceMetadata entity. func (uc *UserCreate) AddModeratedServers(i ...*InstanceMetadata) *UserCreate { ids := make([]uuid.UUID, len(i)) for j := range i { ids[j] = i[j].ID } return uc.AddModeratedServerIDs(ids...) } // AddAdministeredServerIDs adds the "administeredServers" edge to the InstanceMetadata entity by IDs. func (uc *UserCreate) AddAdministeredServerIDs(ids ...uuid.UUID) *UserCreate { uc.mutation.AddAdministeredServerIDs(ids...) return uc } // AddAdministeredServers adds the "administeredServers" edges to the InstanceMetadata entity. func (uc *UserCreate) AddAdministeredServers(i ...*InstanceMetadata) *UserCreate { ids := make([]uuid.UUID, len(i)) for j := range i { ids[j] = i[j].ID } return uc.AddAdministeredServerIDs(ids...) } // Mutation returns the UserMutation object of the builder. func (uc *UserCreate) Mutation() *UserMutation { return uc.mutation } // Save creates the User in the database. func (uc *UserCreate) Save(ctx context.Context) (*User, error) { uc.defaults() return withHooks(ctx, uc.sqlSave, uc.mutation, uc.hooks) } // SaveX calls Save and panics if Save returns an error. func (uc *UserCreate) SaveX(ctx context.Context) *User { v, err := uc.Save(ctx) if err != nil { panic(err) } return v } // Exec executes the query. func (uc *UserCreate) Exec(ctx context.Context) error { _, err := uc.Save(ctx) return err } // ExecX is like Exec, but panics if an error occurs. func (uc *UserCreate) ExecX(ctx context.Context) { if err := uc.Exec(ctx); err != nil { panic(err) } } // defaults sets the default values of the builder before save. func (uc *UserCreate) defaults() { if _, ok := uc.mutation.Extensions(); !ok { v := user.DefaultExtensions uc.mutation.SetExtensions(v) } if _, ok := uc.mutation.CreatedAt(); !ok { v := user.DefaultCreatedAt() uc.mutation.SetCreatedAt(v) } if _, ok := uc.mutation.UpdatedAt(); !ok { v := user.DefaultUpdatedAt() uc.mutation.SetUpdatedAt(v) } if _, ok := uc.mutation.Indexable(); !ok { v := user.DefaultIndexable uc.mutation.SetIndexable(v) } if _, ok := uc.mutation.PrivacyLevel(); !ok { v := user.DefaultPrivacyLevel uc.mutation.SetPrivacyLevel(v) } if _, ok := uc.mutation.GetFields(); !ok { v := user.DefaultFields uc.mutation.SetFields(v) } if _, ok := uc.mutation.ID(); !ok { v := user.DefaultID() uc.mutation.SetID(v) } } // check runs all checks and user-defined validators on the builder. func (uc *UserCreate) check() error { if _, ok := uc.mutation.IsRemote(); !ok { return &ValidationError{Name: "isRemote", err: errors.New(`ent: missing required field "User.isRemote"`)} } if _, ok := uc.mutation.URI(); !ok { return &ValidationError{Name: "uri", err: errors.New(`ent: missing required field "User.uri"`)} } if v, ok := uc.mutation.URI(); ok { if err := user.URIValidator(v); err != nil { return &ValidationError{Name: "uri", err: fmt.Errorf(`ent: validator failed for field "User.uri": %w`, err)} } } if _, ok := uc.mutation.Extensions(); !ok { return &ValidationError{Name: "extensions", err: errors.New(`ent: missing required field "User.extensions"`)} } if _, ok := uc.mutation.CreatedAt(); !ok { return &ValidationError{Name: "created_at", err: errors.New(`ent: missing required field "User.created_at"`)} } if _, ok := uc.mutation.UpdatedAt(); !ok { return &ValidationError{Name: "updated_at", err: errors.New(`ent: missing required field "User.updated_at"`)} } if _, ok := uc.mutation.Username(); !ok { return &ValidationError{Name: "username", err: errors.New(`ent: missing required field "User.username"`)} } if v, ok := uc.mutation.Username(); ok { if err := user.UsernameValidator(v); err != nil { return &ValidationError{Name: "username", err: fmt.Errorf(`ent: validator failed for field "User.username": %w`, err)} } } if v, ok := uc.mutation.DisplayName(); ok { if err := user.DisplayNameValidator(v); err != nil { return &ValidationError{Name: "displayName", err: fmt.Errorf(`ent: validator failed for field "User.displayName": %w`, err)} } } if _, ok := uc.mutation.PublicKey(); !ok { return &ValidationError{Name: "publicKey", err: errors.New(`ent: missing required field "User.publicKey"`)} } if _, ok := uc.mutation.PublicKeyActor(); !ok { return &ValidationError{Name: "publicKeyActor", err: errors.New(`ent: missing required field "User.publicKeyActor"`)} } if _, ok := uc.mutation.PublicKeyAlgorithm(); !ok { return &ValidationError{Name: "publicKeyAlgorithm", err: errors.New(`ent: missing required field "User.publicKeyAlgorithm"`)} } if _, ok := uc.mutation.Indexable(); !ok { return &ValidationError{Name: "indexable", err: errors.New(`ent: missing required field "User.indexable"`)} } if _, ok := uc.mutation.PrivacyLevel(); !ok { return &ValidationError{Name: "privacyLevel", err: errors.New(`ent: missing required field "User.privacyLevel"`)} } if v, ok := uc.mutation.PrivacyLevel(); ok { if err := user.PrivacyLevelValidator(v); err != nil { return &ValidationError{Name: "privacyLevel", err: fmt.Errorf(`ent: validator failed for field "User.privacyLevel": %w`, err)} } } if _, ok := uc.mutation.GetFields(); !ok { return &ValidationError{Name: "fields", err: errors.New(`ent: missing required field "User.fields"`)} } if _, ok := uc.mutation.Inbox(); !ok { return &ValidationError{Name: "inbox", err: errors.New(`ent: missing required field "User.inbox"`)} } if v, ok := uc.mutation.Inbox(); ok { if err := user.InboxValidator(v); err != nil { return &ValidationError{Name: "inbox", err: fmt.Errorf(`ent: validator failed for field "User.inbox": %w`, err)} } } if _, ok := uc.mutation.Featured(); !ok { return &ValidationError{Name: "featured", err: errors.New(`ent: missing required field "User.featured"`)} } if v, ok := uc.mutation.Featured(); ok { if err := user.FeaturedValidator(v); err != nil { return &ValidationError{Name: "featured", err: fmt.Errorf(`ent: validator failed for field "User.featured": %w`, err)} } } if _, ok := uc.mutation.Followers(); !ok { return &ValidationError{Name: "followers", err: errors.New(`ent: missing required field "User.followers"`)} } if v, ok := uc.mutation.Followers(); ok { if err := user.FollowersValidator(v); err != nil { return &ValidationError{Name: "followers", err: fmt.Errorf(`ent: validator failed for field "User.followers": %w`, err)} } } if _, ok := uc.mutation.Following(); !ok { return &ValidationError{Name: "following", err: errors.New(`ent: missing required field "User.following"`)} } if v, ok := uc.mutation.Following(); ok { if err := user.FollowingValidator(v); err != nil { return &ValidationError{Name: "following", err: fmt.Errorf(`ent: validator failed for field "User.following": %w`, err)} } } if _, ok := uc.mutation.Outbox(); !ok { return &ValidationError{Name: "outbox", err: errors.New(`ent: missing required field "User.outbox"`)} } if v, ok := uc.mutation.Outbox(); ok { if err := user.OutboxValidator(v); err != nil { return &ValidationError{Name: "outbox", err: fmt.Errorf(`ent: validator failed for field "User.outbox": %w`, err)} } } return nil } func (uc *UserCreate) sqlSave(ctx context.Context) (*User, error) { if err := uc.check(); err != nil { return nil, err } _node, _spec := uc.createSpec() if err := sqlgraph.CreateNode(ctx, uc.driver, _spec); err != nil { if sqlgraph.IsConstraintError(err) { err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } if _spec.ID.Value != nil { if id, ok := _spec.ID.Value.(*uuid.UUID); ok { _node.ID = *id } else if err := _node.ID.Scan(_spec.ID.Value); err != nil { return nil, err } } uc.mutation.id = &_node.ID uc.mutation.done = true return _node, nil } func (uc *UserCreate) createSpec() (*User, *sqlgraph.CreateSpec) { var ( _node = &User{config: uc.config} _spec = sqlgraph.NewCreateSpec(user.Table, sqlgraph.NewFieldSpec(user.FieldID, field.TypeUUID)) ) _spec.OnConflict = uc.conflict if id, ok := uc.mutation.ID(); ok { _node.ID = id _spec.ID.Value = &id } if value, ok := uc.mutation.IsRemote(); ok { _spec.SetField(user.FieldIsRemote, field.TypeBool, value) _node.IsRemote = value } if value, ok := uc.mutation.URI(); ok { _spec.SetField(user.FieldURI, field.TypeString, value) _node.URI = value } if value, ok := uc.mutation.Extensions(); ok { _spec.SetField(user.FieldExtensions, field.TypeJSON, value) _node.Extensions = value } if value, ok := uc.mutation.CreatedAt(); ok { _spec.SetField(user.FieldCreatedAt, field.TypeTime, value) _node.CreatedAt = value } if value, ok := uc.mutation.UpdatedAt(); ok { _spec.SetField(user.FieldUpdatedAt, field.TypeTime, value) _node.UpdatedAt = value } if value, ok := uc.mutation.Username(); ok { _spec.SetField(user.FieldUsername, field.TypeString, value) _node.Username = value } if value, ok := uc.mutation.PasswordHash(); ok { _spec.SetField(user.FieldPasswordHash, field.TypeBytes, value) _node.PasswordHash = &value } if value, ok := uc.mutation.DisplayName(); ok { _spec.SetField(user.FieldDisplayName, field.TypeString, value) _node.DisplayName = &value } if value, ok := uc.mutation.Biography(); ok { _spec.SetField(user.FieldBiography, field.TypeString, value) _node.Biography = &value } if value, ok := uc.mutation.PublicKey(); ok { _spec.SetField(user.FieldPublicKey, field.TypeBytes, value) _node.PublicKey = value } if value, ok := uc.mutation.PublicKeyActor(); ok { _spec.SetField(user.FieldPublicKeyActor, field.TypeString, value) _node.PublicKeyActor = value } if value, ok := uc.mutation.PublicKeyAlgorithm(); ok { _spec.SetField(user.FieldPublicKeyAlgorithm, field.TypeString, value) _node.PublicKeyAlgorithm = value } if value, ok := uc.mutation.PrivateKey(); ok { _spec.SetField(user.FieldPrivateKey, field.TypeBytes, value) _node.PrivateKey = value } if value, ok := uc.mutation.Indexable(); ok { _spec.SetField(user.FieldIndexable, field.TypeBool, value) _node.Indexable = value } if value, ok := uc.mutation.PrivacyLevel(); ok { _spec.SetField(user.FieldPrivacyLevel, field.TypeEnum, value) _node.PrivacyLevel = value } if value, ok := uc.mutation.GetFields(); ok { _spec.SetField(user.FieldFields, field.TypeJSON, value) _node.Fields = value } if value, ok := uc.mutation.Inbox(); ok { _spec.SetField(user.FieldInbox, field.TypeString, value) _node.Inbox = value } if value, ok := uc.mutation.Featured(); ok { _spec.SetField(user.FieldFeatured, field.TypeString, value) _node.Featured = value } if value, ok := uc.mutation.Followers(); ok { _spec.SetField(user.FieldFollowers, field.TypeString, value) _node.Followers = value } if value, ok := uc.mutation.Following(); ok { _spec.SetField(user.FieldFollowing, field.TypeString, value) _node.Following = value } if value, ok := uc.mutation.Outbox(); ok { _spec.SetField(user.FieldOutbox, field.TypeString, value) _node.Outbox = value } if nodes := uc.mutation.AvatarImageIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: false, Table: user.AvatarImageTable, Columns: []string{user.AvatarImageColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(image.FieldID, field.TypeInt), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _node.user_avatar_image = &nodes[0] _spec.Edges = append(_spec.Edges, edge) } if nodes := uc.mutation.HeaderImageIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: false, Table: user.HeaderImageTable, Columns: []string{user.HeaderImageColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(image.FieldID, field.TypeInt), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _node.user_header_image = &nodes[0] _spec.Edges = append(_spec.Edges, edge) } if nodes := uc.mutation.AuthoredNotesIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: user.AuthoredNotesTable, Columns: []string{user.AuthoredNotesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(note.FieldID, field.TypeUUID), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges = append(_spec.Edges, edge) } if nodes := uc.mutation.MentionedNotesIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: user.MentionedNotesTable, Columns: user.MentionedNotesPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(note.FieldID, field.TypeUUID), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges = append(_spec.Edges, edge) } if nodes := uc.mutation.ServersIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: user.ServersTable, Columns: user.ServersPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(instancemetadata.FieldID, field.TypeUUID), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges = append(_spec.Edges, edge) } if nodes := uc.mutation.ModeratedServersIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: user.ModeratedServersTable, Columns: user.ModeratedServersPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(instancemetadata.FieldID, field.TypeUUID), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges = append(_spec.Edges, edge) } if nodes := uc.mutation.AdministeredServersIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: user.AdministeredServersTable, Columns: user.AdministeredServersPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(instancemetadata.FieldID, field.TypeUUID), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges = append(_spec.Edges, edge) } return _node, _spec } // OnConflict allows configuring the `ON CONFLICT` / `ON DUPLICATE KEY` clause // of the `INSERT` statement. For example: // // client.User.Create(). // SetIsRemote(v). // OnConflict( // // Update the row with the new values // // the was proposed for insertion. // sql.ResolveWithNewValues(), // ). // // Override some of the fields with custom // // update values. // Update(func(u *ent.UserUpsert) { // SetIsRemote(v+v). // }). // Exec(ctx) func (uc *UserCreate) OnConflict(opts ...sql.ConflictOption) *UserUpsertOne { uc.conflict = opts return &UserUpsertOne{ create: uc, } } // OnConflictColumns calls `OnConflict` and configures the columns // as conflict target. Using this option is equivalent to using: // // client.User.Create(). // OnConflict(sql.ConflictColumns(columns...)). // Exec(ctx) func (uc *UserCreate) OnConflictColumns(columns ...string) *UserUpsertOne { uc.conflict = append(uc.conflict, sql.ConflictColumns(columns...)) return &UserUpsertOne{ create: uc, } } type ( // UserUpsertOne is the builder for "upsert"-ing // one User node. UserUpsertOne struct { create *UserCreate } // UserUpsert is the "OnConflict" setter. UserUpsert struct { *sql.UpdateSet } ) // SetIsRemote sets the "isRemote" field. func (u *UserUpsert) SetIsRemote(v bool) *UserUpsert { u.Set(user.FieldIsRemote, v) return u } // UpdateIsRemote sets the "isRemote" field to the value that was provided on create. func (u *UserUpsert) UpdateIsRemote() *UserUpsert { u.SetExcluded(user.FieldIsRemote) return u } // SetURI sets the "uri" field. func (u *UserUpsert) SetURI(v string) *UserUpsert { u.Set(user.FieldURI, v) return u } // UpdateURI sets the "uri" field to the value that was provided on create. func (u *UserUpsert) UpdateURI() *UserUpsert { u.SetExcluded(user.FieldURI) return u } // SetExtensions sets the "extensions" field. func (u *UserUpsert) SetExtensions(v versia.Extensions) *UserUpsert { u.Set(user.FieldExtensions, v) return u } // UpdateExtensions sets the "extensions" field to the value that was provided on create. func (u *UserUpsert) UpdateExtensions() *UserUpsert { u.SetExcluded(user.FieldExtensions) return u } // SetUpdatedAt sets the "updated_at" field. func (u *UserUpsert) SetUpdatedAt(v time.Time) *UserUpsert { u.Set(user.FieldUpdatedAt, v) return u } // UpdateUpdatedAt sets the "updated_at" field to the value that was provided on create. func (u *UserUpsert) UpdateUpdatedAt() *UserUpsert { u.SetExcluded(user.FieldUpdatedAt) return u } // SetUsername sets the "username" field. func (u *UserUpsert) SetUsername(v string) *UserUpsert { u.Set(user.FieldUsername, v) return u } // UpdateUsername sets the "username" field to the value that was provided on create. func (u *UserUpsert) UpdateUsername() *UserUpsert { u.SetExcluded(user.FieldUsername) return u } // SetPasswordHash sets the "passwordHash" field. func (u *UserUpsert) SetPasswordHash(v []byte) *UserUpsert { u.Set(user.FieldPasswordHash, v) return u } // UpdatePasswordHash sets the "passwordHash" field to the value that was provided on create. func (u *UserUpsert) UpdatePasswordHash() *UserUpsert { u.SetExcluded(user.FieldPasswordHash) return u } // ClearPasswordHash clears the value of the "passwordHash" field. func (u *UserUpsert) ClearPasswordHash() *UserUpsert { u.SetNull(user.FieldPasswordHash) return u } // SetDisplayName sets the "displayName" field. func (u *UserUpsert) SetDisplayName(v string) *UserUpsert { u.Set(user.FieldDisplayName, v) return u } // UpdateDisplayName sets the "displayName" field to the value that was provided on create. func (u *UserUpsert) UpdateDisplayName() *UserUpsert { u.SetExcluded(user.FieldDisplayName) return u } // ClearDisplayName clears the value of the "displayName" field. func (u *UserUpsert) ClearDisplayName() *UserUpsert { u.SetNull(user.FieldDisplayName) return u } // SetBiography sets the "biography" field. func (u *UserUpsert) SetBiography(v string) *UserUpsert { u.Set(user.FieldBiography, v) return u } // UpdateBiography sets the "biography" field to the value that was provided on create. func (u *UserUpsert) UpdateBiography() *UserUpsert { u.SetExcluded(user.FieldBiography) return u } // ClearBiography clears the value of the "biography" field. func (u *UserUpsert) ClearBiography() *UserUpsert { u.SetNull(user.FieldBiography) return u } // SetPublicKey sets the "publicKey" field. func (u *UserUpsert) SetPublicKey(v []byte) *UserUpsert { u.Set(user.FieldPublicKey, v) return u } // UpdatePublicKey sets the "publicKey" field to the value that was provided on create. func (u *UserUpsert) UpdatePublicKey() *UserUpsert { u.SetExcluded(user.FieldPublicKey) return u } // SetPublicKeyActor sets the "publicKeyActor" field. func (u *UserUpsert) SetPublicKeyActor(v string) *UserUpsert { u.Set(user.FieldPublicKeyActor, v) return u } // UpdatePublicKeyActor sets the "publicKeyActor" field to the value that was provided on create. func (u *UserUpsert) UpdatePublicKeyActor() *UserUpsert { u.SetExcluded(user.FieldPublicKeyActor) return u } // SetPublicKeyAlgorithm sets the "publicKeyAlgorithm" field. func (u *UserUpsert) SetPublicKeyAlgorithm(v string) *UserUpsert { u.Set(user.FieldPublicKeyAlgorithm, v) return u } // UpdatePublicKeyAlgorithm sets the "publicKeyAlgorithm" field to the value that was provided on create. func (u *UserUpsert) UpdatePublicKeyAlgorithm() *UserUpsert { u.SetExcluded(user.FieldPublicKeyAlgorithm) return u } // SetPrivateKey sets the "privateKey" field. func (u *UserUpsert) SetPrivateKey(v []byte) *UserUpsert { u.Set(user.FieldPrivateKey, v) return u } // UpdatePrivateKey sets the "privateKey" field to the value that was provided on create. func (u *UserUpsert) UpdatePrivateKey() *UserUpsert { u.SetExcluded(user.FieldPrivateKey) return u } // ClearPrivateKey clears the value of the "privateKey" field. func (u *UserUpsert) ClearPrivateKey() *UserUpsert { u.SetNull(user.FieldPrivateKey) return u } // SetIndexable sets the "indexable" field. func (u *UserUpsert) SetIndexable(v bool) *UserUpsert { u.Set(user.FieldIndexable, v) return u } // UpdateIndexable sets the "indexable" field to the value that was provided on create. func (u *UserUpsert) UpdateIndexable() *UserUpsert { u.SetExcluded(user.FieldIndexable) return u } // SetPrivacyLevel sets the "privacyLevel" field. func (u *UserUpsert) SetPrivacyLevel(v user.PrivacyLevel) *UserUpsert { u.Set(user.FieldPrivacyLevel, v) return u } // UpdatePrivacyLevel sets the "privacyLevel" field to the value that was provided on create. func (u *UserUpsert) UpdatePrivacyLevel() *UserUpsert { u.SetExcluded(user.FieldPrivacyLevel) return u } // SetFields sets the "fields" field. func (u *UserUpsert) SetFields(v []versia.UserField) *UserUpsert { u.Set(user.FieldFields, v) return u } // UpdateFields sets the "fields" field to the value that was provided on create. func (u *UserUpsert) UpdateFields() *UserUpsert { u.SetExcluded(user.FieldFields) return u } // SetInbox sets the "inbox" field. func (u *UserUpsert) SetInbox(v string) *UserUpsert { u.Set(user.FieldInbox, v) return u } // UpdateInbox sets the "inbox" field to the value that was provided on create. func (u *UserUpsert) UpdateInbox() *UserUpsert { u.SetExcluded(user.FieldInbox) return u } // SetFeatured sets the "featured" field. func (u *UserUpsert) SetFeatured(v string) *UserUpsert { u.Set(user.FieldFeatured, v) return u } // UpdateFeatured sets the "featured" field to the value that was provided on create. func (u *UserUpsert) UpdateFeatured() *UserUpsert { u.SetExcluded(user.FieldFeatured) return u } // SetFollowers sets the "followers" field. func (u *UserUpsert) SetFollowers(v string) *UserUpsert { u.Set(user.FieldFollowers, v) return u } // UpdateFollowers sets the "followers" field to the value that was provided on create. func (u *UserUpsert) UpdateFollowers() *UserUpsert { u.SetExcluded(user.FieldFollowers) return u } // SetFollowing sets the "following" field. func (u *UserUpsert) SetFollowing(v string) *UserUpsert { u.Set(user.FieldFollowing, v) return u } // UpdateFollowing sets the "following" field to the value that was provided on create. func (u *UserUpsert) UpdateFollowing() *UserUpsert { u.SetExcluded(user.FieldFollowing) return u } // SetOutbox sets the "outbox" field. func (u *UserUpsert) SetOutbox(v string) *UserUpsert { u.Set(user.FieldOutbox, v) return u } // UpdateOutbox sets the "outbox" field to the value that was provided on create. func (u *UserUpsert) UpdateOutbox() *UserUpsert { u.SetExcluded(user.FieldOutbox) return u } // UpdateNewValues updates the mutable fields using the new values that were set on create except the ID field. // Using this option is equivalent to using: // // client.User.Create(). // OnConflict( // sql.ResolveWithNewValues(), // sql.ResolveWith(func(u *sql.UpdateSet) { // u.SetIgnore(user.FieldID) // }), // ). // Exec(ctx) func (u *UserUpsertOne) UpdateNewValues() *UserUpsertOne { u.create.conflict = append(u.create.conflict, sql.ResolveWithNewValues()) u.create.conflict = append(u.create.conflict, sql.ResolveWith(func(s *sql.UpdateSet) { if _, exists := u.create.mutation.ID(); exists { s.SetIgnore(user.FieldID) } if _, exists := u.create.mutation.CreatedAt(); exists { s.SetIgnore(user.FieldCreatedAt) } })) return u } // Ignore sets each column to itself in case of conflict. // Using this option is equivalent to using: // // client.User.Create(). // OnConflict(sql.ResolveWithIgnore()). // Exec(ctx) func (u *UserUpsertOne) Ignore() *UserUpsertOne { u.create.conflict = append(u.create.conflict, sql.ResolveWithIgnore()) return u } // DoNothing configures the conflict_action to `DO NOTHING`. // Supported only by SQLite and PostgreSQL. func (u *UserUpsertOne) DoNothing() *UserUpsertOne { u.create.conflict = append(u.create.conflict, sql.DoNothing()) return u } // Update allows overriding fields `UPDATE` values. See the UserCreate.OnConflict // documentation for more info. func (u *UserUpsertOne) Update(set func(*UserUpsert)) *UserUpsertOne { u.create.conflict = append(u.create.conflict, sql.ResolveWith(func(update *sql.UpdateSet) { set(&UserUpsert{UpdateSet: update}) })) return u } // SetIsRemote sets the "isRemote" field. func (u *UserUpsertOne) SetIsRemote(v bool) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetIsRemote(v) }) } // UpdateIsRemote sets the "isRemote" field to the value that was provided on create. func (u *UserUpsertOne) UpdateIsRemote() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdateIsRemote() }) } // SetURI sets the "uri" field. func (u *UserUpsertOne) SetURI(v string) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetURI(v) }) } // UpdateURI sets the "uri" field to the value that was provided on create. func (u *UserUpsertOne) UpdateURI() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdateURI() }) } // SetExtensions sets the "extensions" field. func (u *UserUpsertOne) SetExtensions(v versia.Extensions) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetExtensions(v) }) } // UpdateExtensions sets the "extensions" field to the value that was provided on create. func (u *UserUpsertOne) UpdateExtensions() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdateExtensions() }) } // SetUpdatedAt sets the "updated_at" field. func (u *UserUpsertOne) SetUpdatedAt(v time.Time) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetUpdatedAt(v) }) } // UpdateUpdatedAt sets the "updated_at" field to the value that was provided on create. func (u *UserUpsertOne) UpdateUpdatedAt() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdateUpdatedAt() }) } // SetUsername sets the "username" field. func (u *UserUpsertOne) SetUsername(v string) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetUsername(v) }) } // UpdateUsername sets the "username" field to the value that was provided on create. func (u *UserUpsertOne) UpdateUsername() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdateUsername() }) } // SetPasswordHash sets the "passwordHash" field. func (u *UserUpsertOne) SetPasswordHash(v []byte) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetPasswordHash(v) }) } // UpdatePasswordHash sets the "passwordHash" field to the value that was provided on create. func (u *UserUpsertOne) UpdatePasswordHash() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdatePasswordHash() }) } // ClearPasswordHash clears the value of the "passwordHash" field. func (u *UserUpsertOne) ClearPasswordHash() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.ClearPasswordHash() }) } // SetDisplayName sets the "displayName" field. func (u *UserUpsertOne) SetDisplayName(v string) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetDisplayName(v) }) } // UpdateDisplayName sets the "displayName" field to the value that was provided on create. func (u *UserUpsertOne) UpdateDisplayName() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdateDisplayName() }) } // ClearDisplayName clears the value of the "displayName" field. func (u *UserUpsertOne) ClearDisplayName() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.ClearDisplayName() }) } // SetBiography sets the "biography" field. func (u *UserUpsertOne) SetBiography(v string) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetBiography(v) }) } // UpdateBiography sets the "biography" field to the value that was provided on create. func (u *UserUpsertOne) UpdateBiography() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdateBiography() }) } // ClearBiography clears the value of the "biography" field. func (u *UserUpsertOne) ClearBiography() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.ClearBiography() }) } // SetPublicKey sets the "publicKey" field. func (u *UserUpsertOne) SetPublicKey(v []byte) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetPublicKey(v) }) } // UpdatePublicKey sets the "publicKey" field to the value that was provided on create. func (u *UserUpsertOne) UpdatePublicKey() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdatePublicKey() }) } // SetPublicKeyActor sets the "publicKeyActor" field. func (u *UserUpsertOne) SetPublicKeyActor(v string) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetPublicKeyActor(v) }) } // UpdatePublicKeyActor sets the "publicKeyActor" field to the value that was provided on create. func (u *UserUpsertOne) UpdatePublicKeyActor() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdatePublicKeyActor() }) } // SetPublicKeyAlgorithm sets the "publicKeyAlgorithm" field. func (u *UserUpsertOne) SetPublicKeyAlgorithm(v string) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetPublicKeyAlgorithm(v) }) } // UpdatePublicKeyAlgorithm sets the "publicKeyAlgorithm" field to the value that was provided on create. func (u *UserUpsertOne) UpdatePublicKeyAlgorithm() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdatePublicKeyAlgorithm() }) } // SetPrivateKey sets the "privateKey" field. func (u *UserUpsertOne) SetPrivateKey(v []byte) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetPrivateKey(v) }) } // UpdatePrivateKey sets the "privateKey" field to the value that was provided on create. func (u *UserUpsertOne) UpdatePrivateKey() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdatePrivateKey() }) } // ClearPrivateKey clears the value of the "privateKey" field. func (u *UserUpsertOne) ClearPrivateKey() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.ClearPrivateKey() }) } // SetIndexable sets the "indexable" field. func (u *UserUpsertOne) SetIndexable(v bool) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetIndexable(v) }) } // UpdateIndexable sets the "indexable" field to the value that was provided on create. func (u *UserUpsertOne) UpdateIndexable() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdateIndexable() }) } // SetPrivacyLevel sets the "privacyLevel" field. func (u *UserUpsertOne) SetPrivacyLevel(v user.PrivacyLevel) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetPrivacyLevel(v) }) } // UpdatePrivacyLevel sets the "privacyLevel" field to the value that was provided on create. func (u *UserUpsertOne) UpdatePrivacyLevel() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdatePrivacyLevel() }) } // SetFields sets the "fields" field. func (u *UserUpsertOne) SetFields(v []versia.UserField) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetFields(v) }) } // UpdateFields sets the "fields" field to the value that was provided on create. func (u *UserUpsertOne) UpdateFields() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdateFields() }) } // SetInbox sets the "inbox" field. func (u *UserUpsertOne) SetInbox(v string) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetInbox(v) }) } // UpdateInbox sets the "inbox" field to the value that was provided on create. func (u *UserUpsertOne) UpdateInbox() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdateInbox() }) } // SetFeatured sets the "featured" field. func (u *UserUpsertOne) SetFeatured(v string) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetFeatured(v) }) } // UpdateFeatured sets the "featured" field to the value that was provided on create. func (u *UserUpsertOne) UpdateFeatured() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdateFeatured() }) } // SetFollowers sets the "followers" field. func (u *UserUpsertOne) SetFollowers(v string) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetFollowers(v) }) } // UpdateFollowers sets the "followers" field to the value that was provided on create. func (u *UserUpsertOne) UpdateFollowers() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdateFollowers() }) } // SetFollowing sets the "following" field. func (u *UserUpsertOne) SetFollowing(v string) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetFollowing(v) }) } // UpdateFollowing sets the "following" field to the value that was provided on create. func (u *UserUpsertOne) UpdateFollowing() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdateFollowing() }) } // SetOutbox sets the "outbox" field. func (u *UserUpsertOne) SetOutbox(v string) *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.SetOutbox(v) }) } // UpdateOutbox sets the "outbox" field to the value that was provided on create. func (u *UserUpsertOne) UpdateOutbox() *UserUpsertOne { return u.Update(func(s *UserUpsert) { s.UpdateOutbox() }) } // Exec executes the query. func (u *UserUpsertOne) Exec(ctx context.Context) error { if len(u.create.conflict) == 0 { return errors.New("ent: missing options for UserCreate.OnConflict") } return u.create.Exec(ctx) } // ExecX is like Exec, but panics if an error occurs. func (u *UserUpsertOne) ExecX(ctx context.Context) { if err := u.create.Exec(ctx); err != nil { panic(err) } } // Exec executes the UPSERT query and returns the inserted/updated ID. func (u *UserUpsertOne) ID(ctx context.Context) (id uuid.UUID, err error) { if u.create.driver.Dialect() == dialect.MySQL { // In case of "ON CONFLICT", there is no way to get back non-numeric ID // fields from the database since MySQL does not support the RETURNING clause. return id, errors.New("ent: UserUpsertOne.ID is not supported by MySQL driver. Use UserUpsertOne.Exec instead") } node, err := u.create.Save(ctx) if err != nil { return id, err } return node.ID, nil } // IDX is like ID, but panics if an error occurs. func (u *UserUpsertOne) IDX(ctx context.Context) uuid.UUID { id, err := u.ID(ctx) if err != nil { panic(err) } return id } // UserCreateBulk is the builder for creating many User entities in bulk. type UserCreateBulk struct { config err error builders []*UserCreate conflict []sql.ConflictOption } // Save creates the User entities in the database. func (ucb *UserCreateBulk) Save(ctx context.Context) ([]*User, error) { if ucb.err != nil { return nil, ucb.err } specs := make([]*sqlgraph.CreateSpec, len(ucb.builders)) nodes := make([]*User, len(ucb.builders)) mutators := make([]Mutator, len(ucb.builders)) for i := range ucb.builders { func(i int, root context.Context) { builder := ucb.builders[i] builder.defaults() var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) { mutation, ok := m.(*UserMutation) if !ok { return nil, fmt.Errorf("unexpected mutation type %T", m) } if err := builder.check(); err != nil { return nil, err } builder.mutation = mutation var err error nodes[i], specs[i] = builder.createSpec() if i < len(mutators)-1 { _, err = mutators[i+1].Mutate(root, ucb.builders[i+1].mutation) } else { spec := &sqlgraph.BatchCreateSpec{Nodes: specs} spec.OnConflict = ucb.conflict // Invoke the actual operation on the latest mutation in the chain. if err = sqlgraph.BatchCreate(ctx, ucb.driver, spec); err != nil { if sqlgraph.IsConstraintError(err) { err = &ConstraintError{msg: err.Error(), wrap: err} } } } if err != nil { return nil, err } mutation.id = &nodes[i].ID mutation.done = true return nodes[i], nil }) for i := len(builder.hooks) - 1; i >= 0; i-- { mut = builder.hooks[i](mut) } mutators[i] = mut }(i, ctx) } if len(mutators) > 0 { if _, err := mutators[0].Mutate(ctx, ucb.builders[0].mutation); err != nil { return nil, err } } return nodes, nil } // SaveX is like Save, but panics if an error occurs. func (ucb *UserCreateBulk) SaveX(ctx context.Context) []*User { v, err := ucb.Save(ctx) if err != nil { panic(err) } return v } // Exec executes the query. func (ucb *UserCreateBulk) Exec(ctx context.Context) error { _, err := ucb.Save(ctx) return err } // ExecX is like Exec, but panics if an error occurs. func (ucb *UserCreateBulk) ExecX(ctx context.Context) { if err := ucb.Exec(ctx); err != nil { panic(err) } } // OnConflict allows configuring the `ON CONFLICT` / `ON DUPLICATE KEY` clause // of the `INSERT` statement. For example: // // client.User.CreateBulk(builders...). // OnConflict( // // Update the row with the new values // // the was proposed for insertion. // sql.ResolveWithNewValues(), // ). // // Override some of the fields with custom // // update values. // Update(func(u *ent.UserUpsert) { // SetIsRemote(v+v). // }). // Exec(ctx) func (ucb *UserCreateBulk) OnConflict(opts ...sql.ConflictOption) *UserUpsertBulk { ucb.conflict = opts return &UserUpsertBulk{ create: ucb, } } // OnConflictColumns calls `OnConflict` and configures the columns // as conflict target. Using this option is equivalent to using: // // client.User.Create(). // OnConflict(sql.ConflictColumns(columns...)). // Exec(ctx) func (ucb *UserCreateBulk) OnConflictColumns(columns ...string) *UserUpsertBulk { ucb.conflict = append(ucb.conflict, sql.ConflictColumns(columns...)) return &UserUpsertBulk{ create: ucb, } } // UserUpsertBulk is the builder for "upsert"-ing // a bulk of User nodes. type UserUpsertBulk struct { create *UserCreateBulk } // UpdateNewValues updates the mutable fields using the new values that // were set on create. Using this option is equivalent to using: // // client.User.Create(). // OnConflict( // sql.ResolveWithNewValues(), // sql.ResolveWith(func(u *sql.UpdateSet) { // u.SetIgnore(user.FieldID) // }), // ). // Exec(ctx) func (u *UserUpsertBulk) UpdateNewValues() *UserUpsertBulk { u.create.conflict = append(u.create.conflict, sql.ResolveWithNewValues()) u.create.conflict = append(u.create.conflict, sql.ResolveWith(func(s *sql.UpdateSet) { for _, b := range u.create.builders { if _, exists := b.mutation.ID(); exists { s.SetIgnore(user.FieldID) } if _, exists := b.mutation.CreatedAt(); exists { s.SetIgnore(user.FieldCreatedAt) } } })) return u } // Ignore sets each column to itself in case of conflict. // Using this option is equivalent to using: // // client.User.Create(). // OnConflict(sql.ResolveWithIgnore()). // Exec(ctx) func (u *UserUpsertBulk) Ignore() *UserUpsertBulk { u.create.conflict = append(u.create.conflict, sql.ResolveWithIgnore()) return u } // DoNothing configures the conflict_action to `DO NOTHING`. // Supported only by SQLite and PostgreSQL. func (u *UserUpsertBulk) DoNothing() *UserUpsertBulk { u.create.conflict = append(u.create.conflict, sql.DoNothing()) return u } // Update allows overriding fields `UPDATE` values. See the UserCreateBulk.OnConflict // documentation for more info. func (u *UserUpsertBulk) Update(set func(*UserUpsert)) *UserUpsertBulk { u.create.conflict = append(u.create.conflict, sql.ResolveWith(func(update *sql.UpdateSet) { set(&UserUpsert{UpdateSet: update}) })) return u } // SetIsRemote sets the "isRemote" field. func (u *UserUpsertBulk) SetIsRemote(v bool) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetIsRemote(v) }) } // UpdateIsRemote sets the "isRemote" field to the value that was provided on create. func (u *UserUpsertBulk) UpdateIsRemote() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdateIsRemote() }) } // SetURI sets the "uri" field. func (u *UserUpsertBulk) SetURI(v string) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetURI(v) }) } // UpdateURI sets the "uri" field to the value that was provided on create. func (u *UserUpsertBulk) UpdateURI() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdateURI() }) } // SetExtensions sets the "extensions" field. func (u *UserUpsertBulk) SetExtensions(v versia.Extensions) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetExtensions(v) }) } // UpdateExtensions sets the "extensions" field to the value that was provided on create. func (u *UserUpsertBulk) UpdateExtensions() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdateExtensions() }) } // SetUpdatedAt sets the "updated_at" field. func (u *UserUpsertBulk) SetUpdatedAt(v time.Time) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetUpdatedAt(v) }) } // UpdateUpdatedAt sets the "updated_at" field to the value that was provided on create. func (u *UserUpsertBulk) UpdateUpdatedAt() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdateUpdatedAt() }) } // SetUsername sets the "username" field. func (u *UserUpsertBulk) SetUsername(v string) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetUsername(v) }) } // UpdateUsername sets the "username" field to the value that was provided on create. func (u *UserUpsertBulk) UpdateUsername() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdateUsername() }) } // SetPasswordHash sets the "passwordHash" field. func (u *UserUpsertBulk) SetPasswordHash(v []byte) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetPasswordHash(v) }) } // UpdatePasswordHash sets the "passwordHash" field to the value that was provided on create. func (u *UserUpsertBulk) UpdatePasswordHash() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdatePasswordHash() }) } // ClearPasswordHash clears the value of the "passwordHash" field. func (u *UserUpsertBulk) ClearPasswordHash() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.ClearPasswordHash() }) } // SetDisplayName sets the "displayName" field. func (u *UserUpsertBulk) SetDisplayName(v string) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetDisplayName(v) }) } // UpdateDisplayName sets the "displayName" field to the value that was provided on create. func (u *UserUpsertBulk) UpdateDisplayName() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdateDisplayName() }) } // ClearDisplayName clears the value of the "displayName" field. func (u *UserUpsertBulk) ClearDisplayName() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.ClearDisplayName() }) } // SetBiography sets the "biography" field. func (u *UserUpsertBulk) SetBiography(v string) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetBiography(v) }) } // UpdateBiography sets the "biography" field to the value that was provided on create. func (u *UserUpsertBulk) UpdateBiography() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdateBiography() }) } // ClearBiography clears the value of the "biography" field. func (u *UserUpsertBulk) ClearBiography() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.ClearBiography() }) } // SetPublicKey sets the "publicKey" field. func (u *UserUpsertBulk) SetPublicKey(v []byte) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetPublicKey(v) }) } // UpdatePublicKey sets the "publicKey" field to the value that was provided on create. func (u *UserUpsertBulk) UpdatePublicKey() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdatePublicKey() }) } // SetPublicKeyActor sets the "publicKeyActor" field. func (u *UserUpsertBulk) SetPublicKeyActor(v string) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetPublicKeyActor(v) }) } // UpdatePublicKeyActor sets the "publicKeyActor" field to the value that was provided on create. func (u *UserUpsertBulk) UpdatePublicKeyActor() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdatePublicKeyActor() }) } // SetPublicKeyAlgorithm sets the "publicKeyAlgorithm" field. func (u *UserUpsertBulk) SetPublicKeyAlgorithm(v string) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetPublicKeyAlgorithm(v) }) } // UpdatePublicKeyAlgorithm sets the "publicKeyAlgorithm" field to the value that was provided on create. func (u *UserUpsertBulk) UpdatePublicKeyAlgorithm() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdatePublicKeyAlgorithm() }) } // SetPrivateKey sets the "privateKey" field. func (u *UserUpsertBulk) SetPrivateKey(v []byte) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetPrivateKey(v) }) } // UpdatePrivateKey sets the "privateKey" field to the value that was provided on create. func (u *UserUpsertBulk) UpdatePrivateKey() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdatePrivateKey() }) } // ClearPrivateKey clears the value of the "privateKey" field. func (u *UserUpsertBulk) ClearPrivateKey() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.ClearPrivateKey() }) } // SetIndexable sets the "indexable" field. func (u *UserUpsertBulk) SetIndexable(v bool) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetIndexable(v) }) } // UpdateIndexable sets the "indexable" field to the value that was provided on create. func (u *UserUpsertBulk) UpdateIndexable() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdateIndexable() }) } // SetPrivacyLevel sets the "privacyLevel" field. func (u *UserUpsertBulk) SetPrivacyLevel(v user.PrivacyLevel) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetPrivacyLevel(v) }) } // UpdatePrivacyLevel sets the "privacyLevel" field to the value that was provided on create. func (u *UserUpsertBulk) UpdatePrivacyLevel() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdatePrivacyLevel() }) } // SetFields sets the "fields" field. func (u *UserUpsertBulk) SetFields(v []versia.UserField) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetFields(v) }) } // UpdateFields sets the "fields" field to the value that was provided on create. func (u *UserUpsertBulk) UpdateFields() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdateFields() }) } // SetInbox sets the "inbox" field. func (u *UserUpsertBulk) SetInbox(v string) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetInbox(v) }) } // UpdateInbox sets the "inbox" field to the value that was provided on create. func (u *UserUpsertBulk) UpdateInbox() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdateInbox() }) } // SetFeatured sets the "featured" field. func (u *UserUpsertBulk) SetFeatured(v string) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetFeatured(v) }) } // UpdateFeatured sets the "featured" field to the value that was provided on create. func (u *UserUpsertBulk) UpdateFeatured() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdateFeatured() }) } // SetFollowers sets the "followers" field. func (u *UserUpsertBulk) SetFollowers(v string) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetFollowers(v) }) } // UpdateFollowers sets the "followers" field to the value that was provided on create. func (u *UserUpsertBulk) UpdateFollowers() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdateFollowers() }) } // SetFollowing sets the "following" field. func (u *UserUpsertBulk) SetFollowing(v string) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetFollowing(v) }) } // UpdateFollowing sets the "following" field to the value that was provided on create. func (u *UserUpsertBulk) UpdateFollowing() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdateFollowing() }) } // SetOutbox sets the "outbox" field. func (u *UserUpsertBulk) SetOutbox(v string) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.SetOutbox(v) }) } // UpdateOutbox sets the "outbox" field to the value that was provided on create. func (u *UserUpsertBulk) UpdateOutbox() *UserUpsertBulk { return u.Update(func(s *UserUpsert) { s.UpdateOutbox() }) } // Exec executes the query. func (u *UserUpsertBulk) Exec(ctx context.Context) error { if u.create.err != nil { return u.create.err } for i, b := range u.create.builders { if len(b.conflict) != 0 { return fmt.Errorf("ent: OnConflict was set for builder %d. Set it on the UserCreateBulk instead", i) } } if len(u.create.conflict) == 0 { return errors.New("ent: missing options for UserCreateBulk.OnConflict") } return u.create.Exec(ctx) } // ExecX is like Exec, but panics if an error occurs. func (u *UserUpsertBulk) ExecX(ctx context.Context) { if err := u.create.Exec(ctx); err != nil { panic(err) } }