github.com/ngocphuongnb/tetua@v0.0.7-alpha/packages/entrepository/ent/user_create.go (about) 1 // Code generated by entc, DO NOT EDIT. 2 3 package ent 4 5 import ( 6 "context" 7 "errors" 8 "fmt" 9 "time" 10 11 "entgo.io/ent/dialect/sql" 12 "entgo.io/ent/dialect/sql/sqlgraph" 13 "entgo.io/ent/schema/field" 14 "github.com/ngocphuongnb/tetua/packages/entrepository/ent/comment" 15 "github.com/ngocphuongnb/tetua/packages/entrepository/ent/file" 16 "github.com/ngocphuongnb/tetua/packages/entrepository/ent/post" 17 "github.com/ngocphuongnb/tetua/packages/entrepository/ent/role" 18 "github.com/ngocphuongnb/tetua/packages/entrepository/ent/user" 19 ) 20 21 // UserCreate is the builder for creating a User entity. 22 type UserCreate struct { 23 config 24 mutation *UserMutation 25 hooks []Hook 26 conflict []sql.ConflictOption 27 } 28 29 // SetCreatedAt sets the "created_at" field. 30 func (uc *UserCreate) SetCreatedAt(t time.Time) *UserCreate { 31 uc.mutation.SetCreatedAt(t) 32 return uc 33 } 34 35 // SetNillableCreatedAt sets the "created_at" field if the given value is not nil. 36 func (uc *UserCreate) SetNillableCreatedAt(t *time.Time) *UserCreate { 37 if t != nil { 38 uc.SetCreatedAt(*t) 39 } 40 return uc 41 } 42 43 // SetUpdatedAt sets the "updated_at" field. 44 func (uc *UserCreate) SetUpdatedAt(t time.Time) *UserCreate { 45 uc.mutation.SetUpdatedAt(t) 46 return uc 47 } 48 49 // SetNillableUpdatedAt sets the "updated_at" field if the given value is not nil. 50 func (uc *UserCreate) SetNillableUpdatedAt(t *time.Time) *UserCreate { 51 if t != nil { 52 uc.SetUpdatedAt(*t) 53 } 54 return uc 55 } 56 57 // SetDeletedAt sets the "deleted_at" field. 58 func (uc *UserCreate) SetDeletedAt(t time.Time) *UserCreate { 59 uc.mutation.SetDeletedAt(t) 60 return uc 61 } 62 63 // SetNillableDeletedAt sets the "deleted_at" field if the given value is not nil. 64 func (uc *UserCreate) SetNillableDeletedAt(t *time.Time) *UserCreate { 65 if t != nil { 66 uc.SetDeletedAt(*t) 67 } 68 return uc 69 } 70 71 // SetUsername sets the "username" field. 72 func (uc *UserCreate) SetUsername(s string) *UserCreate { 73 uc.mutation.SetUsername(s) 74 return uc 75 } 76 77 // SetDisplayName sets the "display_name" field. 78 func (uc *UserCreate) SetDisplayName(s string) *UserCreate { 79 uc.mutation.SetDisplayName(s) 80 return uc 81 } 82 83 // SetNillableDisplayName sets the "display_name" field if the given value is not nil. 84 func (uc *UserCreate) SetNillableDisplayName(s *string) *UserCreate { 85 if s != nil { 86 uc.SetDisplayName(*s) 87 } 88 return uc 89 } 90 91 // SetURL sets the "url" field. 92 func (uc *UserCreate) SetURL(s string) *UserCreate { 93 uc.mutation.SetURL(s) 94 return uc 95 } 96 97 // SetNillableURL sets the "url" field if the given value is not nil. 98 func (uc *UserCreate) SetNillableURL(s *string) *UserCreate { 99 if s != nil { 100 uc.SetURL(*s) 101 } 102 return uc 103 } 104 105 // SetProvider sets the "provider" field. 106 func (uc *UserCreate) SetProvider(s string) *UserCreate { 107 uc.mutation.SetProvider(s) 108 return uc 109 } 110 111 // SetNillableProvider sets the "provider" field if the given value is not nil. 112 func (uc *UserCreate) SetNillableProvider(s *string) *UserCreate { 113 if s != nil { 114 uc.SetProvider(*s) 115 } 116 return uc 117 } 118 119 // SetProviderID sets the "provider_id" field. 120 func (uc *UserCreate) SetProviderID(s string) *UserCreate { 121 uc.mutation.SetProviderID(s) 122 return uc 123 } 124 125 // SetNillableProviderID sets the "provider_id" field if the given value is not nil. 126 func (uc *UserCreate) SetNillableProviderID(s *string) *UserCreate { 127 if s != nil { 128 uc.SetProviderID(*s) 129 } 130 return uc 131 } 132 133 // SetProviderUsername sets the "provider_username" field. 134 func (uc *UserCreate) SetProviderUsername(s string) *UserCreate { 135 uc.mutation.SetProviderUsername(s) 136 return uc 137 } 138 139 // SetNillableProviderUsername sets the "provider_username" field if the given value is not nil. 140 func (uc *UserCreate) SetNillableProviderUsername(s *string) *UserCreate { 141 if s != nil { 142 uc.SetProviderUsername(*s) 143 } 144 return uc 145 } 146 147 // SetProviderAvatar sets the "provider_avatar" field. 148 func (uc *UserCreate) SetProviderAvatar(s string) *UserCreate { 149 uc.mutation.SetProviderAvatar(s) 150 return uc 151 } 152 153 // SetNillableProviderAvatar sets the "provider_avatar" field if the given value is not nil. 154 func (uc *UserCreate) SetNillableProviderAvatar(s *string) *UserCreate { 155 if s != nil { 156 uc.SetProviderAvatar(*s) 157 } 158 return uc 159 } 160 161 // SetEmail sets the "email" field. 162 func (uc *UserCreate) SetEmail(s string) *UserCreate { 163 uc.mutation.SetEmail(s) 164 return uc 165 } 166 167 // SetNillableEmail sets the "email" field if the given value is not nil. 168 func (uc *UserCreate) SetNillableEmail(s *string) *UserCreate { 169 if s != nil { 170 uc.SetEmail(*s) 171 } 172 return uc 173 } 174 175 // SetPassword sets the "password" field. 176 func (uc *UserCreate) SetPassword(s string) *UserCreate { 177 uc.mutation.SetPassword(s) 178 return uc 179 } 180 181 // SetNillablePassword sets the "password" field if the given value is not nil. 182 func (uc *UserCreate) SetNillablePassword(s *string) *UserCreate { 183 if s != nil { 184 uc.SetPassword(*s) 185 } 186 return uc 187 } 188 189 // SetBio sets the "bio" field. 190 func (uc *UserCreate) SetBio(s string) *UserCreate { 191 uc.mutation.SetBio(s) 192 return uc 193 } 194 195 // SetNillableBio sets the "bio" field if the given value is not nil. 196 func (uc *UserCreate) SetNillableBio(s *string) *UserCreate { 197 if s != nil { 198 uc.SetBio(*s) 199 } 200 return uc 201 } 202 203 // SetBioHTML sets the "bio_html" field. 204 func (uc *UserCreate) SetBioHTML(s string) *UserCreate { 205 uc.mutation.SetBioHTML(s) 206 return uc 207 } 208 209 // SetNillableBioHTML sets the "bio_html" field if the given value is not nil. 210 func (uc *UserCreate) SetNillableBioHTML(s *string) *UserCreate { 211 if s != nil { 212 uc.SetBioHTML(*s) 213 } 214 return uc 215 } 216 217 // SetActive sets the "active" field. 218 func (uc *UserCreate) SetActive(b bool) *UserCreate { 219 uc.mutation.SetActive(b) 220 return uc 221 } 222 223 // SetNillableActive sets the "active" field if the given value is not nil. 224 func (uc *UserCreate) SetNillableActive(b *bool) *UserCreate { 225 if b != nil { 226 uc.SetActive(*b) 227 } 228 return uc 229 } 230 231 // SetAvatarImageID sets the "avatar_image_id" field. 232 func (uc *UserCreate) SetAvatarImageID(i int) *UserCreate { 233 uc.mutation.SetAvatarImageID(i) 234 return uc 235 } 236 237 // SetNillableAvatarImageID sets the "avatar_image_id" field if the given value is not nil. 238 func (uc *UserCreate) SetNillableAvatarImageID(i *int) *UserCreate { 239 if i != nil { 240 uc.SetAvatarImageID(*i) 241 } 242 return uc 243 } 244 245 // AddPostIDs adds the "posts" edge to the Post entity by IDs. 246 func (uc *UserCreate) AddPostIDs(ids ...int) *UserCreate { 247 uc.mutation.AddPostIDs(ids...) 248 return uc 249 } 250 251 // AddPosts adds the "posts" edges to the Post entity. 252 func (uc *UserCreate) AddPosts(p ...*Post) *UserCreate { 253 ids := make([]int, len(p)) 254 for i := range p { 255 ids[i] = p[i].ID 256 } 257 return uc.AddPostIDs(ids...) 258 } 259 260 // AddFileIDs adds the "files" edge to the File entity by IDs. 261 func (uc *UserCreate) AddFileIDs(ids ...int) *UserCreate { 262 uc.mutation.AddFileIDs(ids...) 263 return uc 264 } 265 266 // AddFiles adds the "files" edges to the File entity. 267 func (uc *UserCreate) AddFiles(f ...*File) *UserCreate { 268 ids := make([]int, len(f)) 269 for i := range f { 270 ids[i] = f[i].ID 271 } 272 return uc.AddFileIDs(ids...) 273 } 274 275 // AddCommentIDs adds the "comments" edge to the Comment entity by IDs. 276 func (uc *UserCreate) AddCommentIDs(ids ...int) *UserCreate { 277 uc.mutation.AddCommentIDs(ids...) 278 return uc 279 } 280 281 // AddComments adds the "comments" edges to the Comment entity. 282 func (uc *UserCreate) AddComments(c ...*Comment) *UserCreate { 283 ids := make([]int, len(c)) 284 for i := range c { 285 ids[i] = c[i].ID 286 } 287 return uc.AddCommentIDs(ids...) 288 } 289 290 // AddRoleIDs adds the "roles" edge to the Role entity by IDs. 291 func (uc *UserCreate) AddRoleIDs(ids ...int) *UserCreate { 292 uc.mutation.AddRoleIDs(ids...) 293 return uc 294 } 295 296 // AddRoles adds the "roles" edges to the Role entity. 297 func (uc *UserCreate) AddRoles(r ...*Role) *UserCreate { 298 ids := make([]int, len(r)) 299 for i := range r { 300 ids[i] = r[i].ID 301 } 302 return uc.AddRoleIDs(ids...) 303 } 304 305 // SetAvatarImage sets the "avatar_image" edge to the File entity. 306 func (uc *UserCreate) SetAvatarImage(f *File) *UserCreate { 307 return uc.SetAvatarImageID(f.ID) 308 } 309 310 // Mutation returns the UserMutation object of the builder. 311 func (uc *UserCreate) Mutation() *UserMutation { 312 return uc.mutation 313 } 314 315 // Save creates the User in the database. 316 func (uc *UserCreate) Save(ctx context.Context) (*User, error) { 317 var ( 318 err error 319 node *User 320 ) 321 uc.defaults() 322 if len(uc.hooks) == 0 { 323 if err = uc.check(); err != nil { 324 return nil, err 325 } 326 node, err = uc.sqlSave(ctx) 327 } else { 328 var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) { 329 mutation, ok := m.(*UserMutation) 330 if !ok { 331 return nil, fmt.Errorf("unexpected mutation type %T", m) 332 } 333 if err = uc.check(); err != nil { 334 return nil, err 335 } 336 uc.mutation = mutation 337 if node, err = uc.sqlSave(ctx); err != nil { 338 return nil, err 339 } 340 mutation.id = &node.ID 341 mutation.done = true 342 return node, err 343 }) 344 for i := len(uc.hooks) - 1; i >= 0; i-- { 345 if uc.hooks[i] == nil { 346 return nil, fmt.Errorf("ent: uninitialized hook (forgotten import ent/runtime?)") 347 } 348 mut = uc.hooks[i](mut) 349 } 350 if _, err := mut.Mutate(ctx, uc.mutation); err != nil { 351 return nil, err 352 } 353 } 354 return node, err 355 } 356 357 // SaveX calls Save and panics if Save returns an error. 358 func (uc *UserCreate) SaveX(ctx context.Context) *User { 359 v, err := uc.Save(ctx) 360 if err != nil { 361 panic(err) 362 } 363 return v 364 } 365 366 // Exec executes the query. 367 func (uc *UserCreate) Exec(ctx context.Context) error { 368 _, err := uc.Save(ctx) 369 return err 370 } 371 372 // ExecX is like Exec, but panics if an error occurs. 373 func (uc *UserCreate) ExecX(ctx context.Context) { 374 if err := uc.Exec(ctx); err != nil { 375 panic(err) 376 } 377 } 378 379 // defaults sets the default values of the builder before save. 380 func (uc *UserCreate) defaults() { 381 if _, ok := uc.mutation.CreatedAt(); !ok { 382 v := user.DefaultCreatedAt() 383 uc.mutation.SetCreatedAt(v) 384 } 385 if _, ok := uc.mutation.UpdatedAt(); !ok { 386 v := user.DefaultUpdatedAt() 387 uc.mutation.SetUpdatedAt(v) 388 } 389 if _, ok := uc.mutation.Active(); !ok { 390 v := user.DefaultActive 391 uc.mutation.SetActive(v) 392 } 393 } 394 395 // check runs all checks and user-defined validators on the builder. 396 func (uc *UserCreate) check() error { 397 if _, ok := uc.mutation.CreatedAt(); !ok { 398 return &ValidationError{Name: "created_at", err: errors.New(`ent: missing required field "User.created_at"`)} 399 } 400 if _, ok := uc.mutation.UpdatedAt(); !ok { 401 return &ValidationError{Name: "updated_at", err: errors.New(`ent: missing required field "User.updated_at"`)} 402 } 403 if _, ok := uc.mutation.Username(); !ok { 404 return &ValidationError{Name: "username", err: errors.New(`ent: missing required field "User.username"`)} 405 } 406 if _, ok := uc.mutation.Active(); !ok { 407 return &ValidationError{Name: "active", err: errors.New(`ent: missing required field "User.active"`)} 408 } 409 return nil 410 } 411 412 func (uc *UserCreate) sqlSave(ctx context.Context) (*User, error) { 413 _node, _spec := uc.createSpec() 414 if err := sqlgraph.CreateNode(ctx, uc.driver, _spec); err != nil { 415 if sqlgraph.IsConstraintError(err) { 416 err = &ConstraintError{err.Error(), err} 417 } 418 return nil, err 419 } 420 id := _spec.ID.Value.(int64) 421 _node.ID = int(id) 422 return _node, nil 423 } 424 425 func (uc *UserCreate) createSpec() (*User, *sqlgraph.CreateSpec) { 426 var ( 427 _node = &User{config: uc.config} 428 _spec = &sqlgraph.CreateSpec{ 429 Table: user.Table, 430 ID: &sqlgraph.FieldSpec{ 431 Type: field.TypeInt, 432 Column: user.FieldID, 433 }, 434 } 435 ) 436 _spec.OnConflict = uc.conflict 437 if value, ok := uc.mutation.CreatedAt(); ok { 438 _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ 439 Type: field.TypeTime, 440 Value: value, 441 Column: user.FieldCreatedAt, 442 }) 443 _node.CreatedAt = value 444 } 445 if value, ok := uc.mutation.UpdatedAt(); ok { 446 _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ 447 Type: field.TypeTime, 448 Value: value, 449 Column: user.FieldUpdatedAt, 450 }) 451 _node.UpdatedAt = value 452 } 453 if value, ok := uc.mutation.DeletedAt(); ok { 454 _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ 455 Type: field.TypeTime, 456 Value: value, 457 Column: user.FieldDeletedAt, 458 }) 459 _node.DeletedAt = value 460 } 461 if value, ok := uc.mutation.Username(); ok { 462 _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ 463 Type: field.TypeString, 464 Value: value, 465 Column: user.FieldUsername, 466 }) 467 _node.Username = value 468 } 469 if value, ok := uc.mutation.DisplayName(); ok { 470 _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ 471 Type: field.TypeString, 472 Value: value, 473 Column: user.FieldDisplayName, 474 }) 475 _node.DisplayName = value 476 } 477 if value, ok := uc.mutation.URL(); ok { 478 _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ 479 Type: field.TypeString, 480 Value: value, 481 Column: user.FieldURL, 482 }) 483 _node.URL = value 484 } 485 if value, ok := uc.mutation.Provider(); ok { 486 _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ 487 Type: field.TypeString, 488 Value: value, 489 Column: user.FieldProvider, 490 }) 491 _node.Provider = value 492 } 493 if value, ok := uc.mutation.ProviderID(); ok { 494 _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ 495 Type: field.TypeString, 496 Value: value, 497 Column: user.FieldProviderID, 498 }) 499 _node.ProviderID = value 500 } 501 if value, ok := uc.mutation.ProviderUsername(); ok { 502 _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ 503 Type: field.TypeString, 504 Value: value, 505 Column: user.FieldProviderUsername, 506 }) 507 _node.ProviderUsername = value 508 } 509 if value, ok := uc.mutation.ProviderAvatar(); ok { 510 _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ 511 Type: field.TypeString, 512 Value: value, 513 Column: user.FieldProviderAvatar, 514 }) 515 _node.ProviderAvatar = value 516 } 517 if value, ok := uc.mutation.Email(); ok { 518 _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ 519 Type: field.TypeString, 520 Value: value, 521 Column: user.FieldEmail, 522 }) 523 _node.Email = value 524 } 525 if value, ok := uc.mutation.Password(); ok { 526 _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ 527 Type: field.TypeString, 528 Value: value, 529 Column: user.FieldPassword, 530 }) 531 _node.Password = value 532 } 533 if value, ok := uc.mutation.Bio(); ok { 534 _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ 535 Type: field.TypeString, 536 Value: value, 537 Column: user.FieldBio, 538 }) 539 _node.Bio = value 540 } 541 if value, ok := uc.mutation.BioHTML(); ok { 542 _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ 543 Type: field.TypeString, 544 Value: value, 545 Column: user.FieldBioHTML, 546 }) 547 _node.BioHTML = value 548 } 549 if value, ok := uc.mutation.Active(); ok { 550 _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ 551 Type: field.TypeBool, 552 Value: value, 553 Column: user.FieldActive, 554 }) 555 _node.Active = value 556 } 557 if nodes := uc.mutation.PostsIDs(); len(nodes) > 0 { 558 edge := &sqlgraph.EdgeSpec{ 559 Rel: sqlgraph.O2M, 560 Inverse: false, 561 Table: user.PostsTable, 562 Columns: []string{user.PostsColumn}, 563 Bidi: false, 564 Target: &sqlgraph.EdgeTarget{ 565 IDSpec: &sqlgraph.FieldSpec{ 566 Type: field.TypeInt, 567 Column: post.FieldID, 568 }, 569 }, 570 } 571 for _, k := range nodes { 572 edge.Target.Nodes = append(edge.Target.Nodes, k) 573 } 574 _spec.Edges = append(_spec.Edges, edge) 575 } 576 if nodes := uc.mutation.FilesIDs(); len(nodes) > 0 { 577 edge := &sqlgraph.EdgeSpec{ 578 Rel: sqlgraph.O2M, 579 Inverse: false, 580 Table: user.FilesTable, 581 Columns: []string{user.FilesColumn}, 582 Bidi: false, 583 Target: &sqlgraph.EdgeTarget{ 584 IDSpec: &sqlgraph.FieldSpec{ 585 Type: field.TypeInt, 586 Column: file.FieldID, 587 }, 588 }, 589 } 590 for _, k := range nodes { 591 edge.Target.Nodes = append(edge.Target.Nodes, k) 592 } 593 _spec.Edges = append(_spec.Edges, edge) 594 } 595 if nodes := uc.mutation.CommentsIDs(); len(nodes) > 0 { 596 edge := &sqlgraph.EdgeSpec{ 597 Rel: sqlgraph.O2M, 598 Inverse: false, 599 Table: user.CommentsTable, 600 Columns: []string{user.CommentsColumn}, 601 Bidi: false, 602 Target: &sqlgraph.EdgeTarget{ 603 IDSpec: &sqlgraph.FieldSpec{ 604 Type: field.TypeInt, 605 Column: comment.FieldID, 606 }, 607 }, 608 } 609 for _, k := range nodes { 610 edge.Target.Nodes = append(edge.Target.Nodes, k) 611 } 612 _spec.Edges = append(_spec.Edges, edge) 613 } 614 if nodes := uc.mutation.RolesIDs(); len(nodes) > 0 { 615 edge := &sqlgraph.EdgeSpec{ 616 Rel: sqlgraph.M2M, 617 Inverse: true, 618 Table: user.RolesTable, 619 Columns: user.RolesPrimaryKey, 620 Bidi: false, 621 Target: &sqlgraph.EdgeTarget{ 622 IDSpec: &sqlgraph.FieldSpec{ 623 Type: field.TypeInt, 624 Column: role.FieldID, 625 }, 626 }, 627 } 628 for _, k := range nodes { 629 edge.Target.Nodes = append(edge.Target.Nodes, k) 630 } 631 _spec.Edges = append(_spec.Edges, edge) 632 } 633 if nodes := uc.mutation.AvatarImageIDs(); len(nodes) > 0 { 634 edge := &sqlgraph.EdgeSpec{ 635 Rel: sqlgraph.M2O, 636 Inverse: true, 637 Table: user.AvatarImageTable, 638 Columns: []string{user.AvatarImageColumn}, 639 Bidi: false, 640 Target: &sqlgraph.EdgeTarget{ 641 IDSpec: &sqlgraph.FieldSpec{ 642 Type: field.TypeInt, 643 Column: file.FieldID, 644 }, 645 }, 646 } 647 for _, k := range nodes { 648 edge.Target.Nodes = append(edge.Target.Nodes, k) 649 } 650 _node.AvatarImageID = nodes[0] 651 _spec.Edges = append(_spec.Edges, edge) 652 } 653 return _node, _spec 654 } 655 656 // OnConflict allows configuring the `ON CONFLICT` / `ON DUPLICATE KEY` clause 657 // of the `INSERT` statement. For example: 658 // 659 // client.User.Create(). 660 // SetCreatedAt(v). 661 // OnConflict( 662 // // Update the row with the new values 663 // // the was proposed for insertion. 664 // sql.ResolveWithNewValues(), 665 // ). 666 // // Override some of the fields with custom 667 // // update values. 668 // Update(func(u *ent.UserUpsert) { 669 // SetCreatedAt(v+v). 670 // }). 671 // Exec(ctx) 672 // 673 func (uc *UserCreate) OnConflict(opts ...sql.ConflictOption) *UserUpsertOne { 674 uc.conflict = opts 675 return &UserUpsertOne{ 676 create: uc, 677 } 678 } 679 680 // OnConflictColumns calls `OnConflict` and configures the columns 681 // as conflict target. Using this option is equivalent to using: 682 // 683 // client.User.Create(). 684 // OnConflict(sql.ConflictColumns(columns...)). 685 // Exec(ctx) 686 // 687 func (uc *UserCreate) OnConflictColumns(columns ...string) *UserUpsertOne { 688 uc.conflict = append(uc.conflict, sql.ConflictColumns(columns...)) 689 return &UserUpsertOne{ 690 create: uc, 691 } 692 } 693 694 type ( 695 // UserUpsertOne is the builder for "upsert"-ing 696 // one User node. 697 UserUpsertOne struct { 698 create *UserCreate 699 } 700 701 // UserUpsert is the "OnConflict" setter. 702 UserUpsert struct { 703 *sql.UpdateSet 704 } 705 ) 706 707 // SetCreatedAt sets the "created_at" field. 708 func (u *UserUpsert) SetCreatedAt(v time.Time) *UserUpsert { 709 u.Set(user.FieldCreatedAt, v) 710 return u 711 } 712 713 // UpdateCreatedAt sets the "created_at" field to the value that was provided on create. 714 func (u *UserUpsert) UpdateCreatedAt() *UserUpsert { 715 u.SetExcluded(user.FieldCreatedAt) 716 return u 717 } 718 719 // SetUpdatedAt sets the "updated_at" field. 720 func (u *UserUpsert) SetUpdatedAt(v time.Time) *UserUpsert { 721 u.Set(user.FieldUpdatedAt, v) 722 return u 723 } 724 725 // UpdateUpdatedAt sets the "updated_at" field to the value that was provided on create. 726 func (u *UserUpsert) UpdateUpdatedAt() *UserUpsert { 727 u.SetExcluded(user.FieldUpdatedAt) 728 return u 729 } 730 731 // SetDeletedAt sets the "deleted_at" field. 732 func (u *UserUpsert) SetDeletedAt(v time.Time) *UserUpsert { 733 u.Set(user.FieldDeletedAt, v) 734 return u 735 } 736 737 // UpdateDeletedAt sets the "deleted_at" field to the value that was provided on create. 738 func (u *UserUpsert) UpdateDeletedAt() *UserUpsert { 739 u.SetExcluded(user.FieldDeletedAt) 740 return u 741 } 742 743 // ClearDeletedAt clears the value of the "deleted_at" field. 744 func (u *UserUpsert) ClearDeletedAt() *UserUpsert { 745 u.SetNull(user.FieldDeletedAt) 746 return u 747 } 748 749 // SetUsername sets the "username" field. 750 func (u *UserUpsert) SetUsername(v string) *UserUpsert { 751 u.Set(user.FieldUsername, v) 752 return u 753 } 754 755 // UpdateUsername sets the "username" field to the value that was provided on create. 756 func (u *UserUpsert) UpdateUsername() *UserUpsert { 757 u.SetExcluded(user.FieldUsername) 758 return u 759 } 760 761 // SetDisplayName sets the "display_name" field. 762 func (u *UserUpsert) SetDisplayName(v string) *UserUpsert { 763 u.Set(user.FieldDisplayName, v) 764 return u 765 } 766 767 // UpdateDisplayName sets the "display_name" field to the value that was provided on create. 768 func (u *UserUpsert) UpdateDisplayName() *UserUpsert { 769 u.SetExcluded(user.FieldDisplayName) 770 return u 771 } 772 773 // ClearDisplayName clears the value of the "display_name" field. 774 func (u *UserUpsert) ClearDisplayName() *UserUpsert { 775 u.SetNull(user.FieldDisplayName) 776 return u 777 } 778 779 // SetURL sets the "url" field. 780 func (u *UserUpsert) SetURL(v string) *UserUpsert { 781 u.Set(user.FieldURL, v) 782 return u 783 } 784 785 // UpdateURL sets the "url" field to the value that was provided on create. 786 func (u *UserUpsert) UpdateURL() *UserUpsert { 787 u.SetExcluded(user.FieldURL) 788 return u 789 } 790 791 // ClearURL clears the value of the "url" field. 792 func (u *UserUpsert) ClearURL() *UserUpsert { 793 u.SetNull(user.FieldURL) 794 return u 795 } 796 797 // SetProvider sets the "provider" field. 798 func (u *UserUpsert) SetProvider(v string) *UserUpsert { 799 u.Set(user.FieldProvider, v) 800 return u 801 } 802 803 // UpdateProvider sets the "provider" field to the value that was provided on create. 804 func (u *UserUpsert) UpdateProvider() *UserUpsert { 805 u.SetExcluded(user.FieldProvider) 806 return u 807 } 808 809 // ClearProvider clears the value of the "provider" field. 810 func (u *UserUpsert) ClearProvider() *UserUpsert { 811 u.SetNull(user.FieldProvider) 812 return u 813 } 814 815 // SetProviderID sets the "provider_id" field. 816 func (u *UserUpsert) SetProviderID(v string) *UserUpsert { 817 u.Set(user.FieldProviderID, v) 818 return u 819 } 820 821 // UpdateProviderID sets the "provider_id" field to the value that was provided on create. 822 func (u *UserUpsert) UpdateProviderID() *UserUpsert { 823 u.SetExcluded(user.FieldProviderID) 824 return u 825 } 826 827 // ClearProviderID clears the value of the "provider_id" field. 828 func (u *UserUpsert) ClearProviderID() *UserUpsert { 829 u.SetNull(user.FieldProviderID) 830 return u 831 } 832 833 // SetProviderUsername sets the "provider_username" field. 834 func (u *UserUpsert) SetProviderUsername(v string) *UserUpsert { 835 u.Set(user.FieldProviderUsername, v) 836 return u 837 } 838 839 // UpdateProviderUsername sets the "provider_username" field to the value that was provided on create. 840 func (u *UserUpsert) UpdateProviderUsername() *UserUpsert { 841 u.SetExcluded(user.FieldProviderUsername) 842 return u 843 } 844 845 // ClearProviderUsername clears the value of the "provider_username" field. 846 func (u *UserUpsert) ClearProviderUsername() *UserUpsert { 847 u.SetNull(user.FieldProviderUsername) 848 return u 849 } 850 851 // SetProviderAvatar sets the "provider_avatar" field. 852 func (u *UserUpsert) SetProviderAvatar(v string) *UserUpsert { 853 u.Set(user.FieldProviderAvatar, v) 854 return u 855 } 856 857 // UpdateProviderAvatar sets the "provider_avatar" field to the value that was provided on create. 858 func (u *UserUpsert) UpdateProviderAvatar() *UserUpsert { 859 u.SetExcluded(user.FieldProviderAvatar) 860 return u 861 } 862 863 // ClearProviderAvatar clears the value of the "provider_avatar" field. 864 func (u *UserUpsert) ClearProviderAvatar() *UserUpsert { 865 u.SetNull(user.FieldProviderAvatar) 866 return u 867 } 868 869 // SetEmail sets the "email" field. 870 func (u *UserUpsert) SetEmail(v string) *UserUpsert { 871 u.Set(user.FieldEmail, v) 872 return u 873 } 874 875 // UpdateEmail sets the "email" field to the value that was provided on create. 876 func (u *UserUpsert) UpdateEmail() *UserUpsert { 877 u.SetExcluded(user.FieldEmail) 878 return u 879 } 880 881 // ClearEmail clears the value of the "email" field. 882 func (u *UserUpsert) ClearEmail() *UserUpsert { 883 u.SetNull(user.FieldEmail) 884 return u 885 } 886 887 // SetPassword sets the "password" field. 888 func (u *UserUpsert) SetPassword(v string) *UserUpsert { 889 u.Set(user.FieldPassword, v) 890 return u 891 } 892 893 // UpdatePassword sets the "password" field to the value that was provided on create. 894 func (u *UserUpsert) UpdatePassword() *UserUpsert { 895 u.SetExcluded(user.FieldPassword) 896 return u 897 } 898 899 // ClearPassword clears the value of the "password" field. 900 func (u *UserUpsert) ClearPassword() *UserUpsert { 901 u.SetNull(user.FieldPassword) 902 return u 903 } 904 905 // SetBio sets the "bio" field. 906 func (u *UserUpsert) SetBio(v string) *UserUpsert { 907 u.Set(user.FieldBio, v) 908 return u 909 } 910 911 // UpdateBio sets the "bio" field to the value that was provided on create. 912 func (u *UserUpsert) UpdateBio() *UserUpsert { 913 u.SetExcluded(user.FieldBio) 914 return u 915 } 916 917 // ClearBio clears the value of the "bio" field. 918 func (u *UserUpsert) ClearBio() *UserUpsert { 919 u.SetNull(user.FieldBio) 920 return u 921 } 922 923 // SetBioHTML sets the "bio_html" field. 924 func (u *UserUpsert) SetBioHTML(v string) *UserUpsert { 925 u.Set(user.FieldBioHTML, v) 926 return u 927 } 928 929 // UpdateBioHTML sets the "bio_html" field to the value that was provided on create. 930 func (u *UserUpsert) UpdateBioHTML() *UserUpsert { 931 u.SetExcluded(user.FieldBioHTML) 932 return u 933 } 934 935 // ClearBioHTML clears the value of the "bio_html" field. 936 func (u *UserUpsert) ClearBioHTML() *UserUpsert { 937 u.SetNull(user.FieldBioHTML) 938 return u 939 } 940 941 // SetActive sets the "active" field. 942 func (u *UserUpsert) SetActive(v bool) *UserUpsert { 943 u.Set(user.FieldActive, v) 944 return u 945 } 946 947 // UpdateActive sets the "active" field to the value that was provided on create. 948 func (u *UserUpsert) UpdateActive() *UserUpsert { 949 u.SetExcluded(user.FieldActive) 950 return u 951 } 952 953 // SetAvatarImageID sets the "avatar_image_id" field. 954 func (u *UserUpsert) SetAvatarImageID(v int) *UserUpsert { 955 u.Set(user.FieldAvatarImageID, v) 956 return u 957 } 958 959 // UpdateAvatarImageID sets the "avatar_image_id" field to the value that was provided on create. 960 func (u *UserUpsert) UpdateAvatarImageID() *UserUpsert { 961 u.SetExcluded(user.FieldAvatarImageID) 962 return u 963 } 964 965 // ClearAvatarImageID clears the value of the "avatar_image_id" field. 966 func (u *UserUpsert) ClearAvatarImageID() *UserUpsert { 967 u.SetNull(user.FieldAvatarImageID) 968 return u 969 } 970 971 // UpdateNewValues updates the mutable fields using the new values that were set on create. 972 // Using this option is equivalent to using: 973 // 974 // client.User.Create(). 975 // OnConflict( 976 // sql.ResolveWithNewValues(), 977 // ). 978 // Exec(ctx) 979 // 980 func (u *UserUpsertOne) UpdateNewValues() *UserUpsertOne { 981 u.create.conflict = append(u.create.conflict, sql.ResolveWithNewValues()) 982 u.create.conflict = append(u.create.conflict, sql.ResolveWith(func(s *sql.UpdateSet) { 983 if _, exists := u.create.mutation.CreatedAt(); exists { 984 s.SetIgnore(user.FieldCreatedAt) 985 } 986 })) 987 return u 988 } 989 990 // Ignore sets each column to itself in case of conflict. 991 // Using this option is equivalent to using: 992 // 993 // client.User.Create(). 994 // OnConflict(sql.ResolveWithIgnore()). 995 // Exec(ctx) 996 // 997 func (u *UserUpsertOne) Ignore() *UserUpsertOne { 998 u.create.conflict = append(u.create.conflict, sql.ResolveWithIgnore()) 999 return u 1000 } 1001 1002 // DoNothing configures the conflict_action to `DO NOTHING`. 1003 // Supported only by SQLite and PostgreSQL. 1004 func (u *UserUpsertOne) DoNothing() *UserUpsertOne { 1005 u.create.conflict = append(u.create.conflict, sql.DoNothing()) 1006 return u 1007 } 1008 1009 // Update allows overriding fields `UPDATE` values. See the UserCreate.OnConflict 1010 // documentation for more info. 1011 func (u *UserUpsertOne) Update(set func(*UserUpsert)) *UserUpsertOne { 1012 u.create.conflict = append(u.create.conflict, sql.ResolveWith(func(update *sql.UpdateSet) { 1013 set(&UserUpsert{UpdateSet: update}) 1014 })) 1015 return u 1016 } 1017 1018 // SetCreatedAt sets the "created_at" field. 1019 func (u *UserUpsertOne) SetCreatedAt(v time.Time) *UserUpsertOne { 1020 return u.Update(func(s *UserUpsert) { 1021 s.SetCreatedAt(v) 1022 }) 1023 } 1024 1025 // UpdateCreatedAt sets the "created_at" field to the value that was provided on create. 1026 func (u *UserUpsertOne) UpdateCreatedAt() *UserUpsertOne { 1027 return u.Update(func(s *UserUpsert) { 1028 s.UpdateCreatedAt() 1029 }) 1030 } 1031 1032 // SetUpdatedAt sets the "updated_at" field. 1033 func (u *UserUpsertOne) SetUpdatedAt(v time.Time) *UserUpsertOne { 1034 return u.Update(func(s *UserUpsert) { 1035 s.SetUpdatedAt(v) 1036 }) 1037 } 1038 1039 // UpdateUpdatedAt sets the "updated_at" field to the value that was provided on create. 1040 func (u *UserUpsertOne) UpdateUpdatedAt() *UserUpsertOne { 1041 return u.Update(func(s *UserUpsert) { 1042 s.UpdateUpdatedAt() 1043 }) 1044 } 1045 1046 // SetDeletedAt sets the "deleted_at" field. 1047 func (u *UserUpsertOne) SetDeletedAt(v time.Time) *UserUpsertOne { 1048 return u.Update(func(s *UserUpsert) { 1049 s.SetDeletedAt(v) 1050 }) 1051 } 1052 1053 // UpdateDeletedAt sets the "deleted_at" field to the value that was provided on create. 1054 func (u *UserUpsertOne) UpdateDeletedAt() *UserUpsertOne { 1055 return u.Update(func(s *UserUpsert) { 1056 s.UpdateDeletedAt() 1057 }) 1058 } 1059 1060 // ClearDeletedAt clears the value of the "deleted_at" field. 1061 func (u *UserUpsertOne) ClearDeletedAt() *UserUpsertOne { 1062 return u.Update(func(s *UserUpsert) { 1063 s.ClearDeletedAt() 1064 }) 1065 } 1066 1067 // SetUsername sets the "username" field. 1068 func (u *UserUpsertOne) SetUsername(v string) *UserUpsertOne { 1069 return u.Update(func(s *UserUpsert) { 1070 s.SetUsername(v) 1071 }) 1072 } 1073 1074 // UpdateUsername sets the "username" field to the value that was provided on create. 1075 func (u *UserUpsertOne) UpdateUsername() *UserUpsertOne { 1076 return u.Update(func(s *UserUpsert) { 1077 s.UpdateUsername() 1078 }) 1079 } 1080 1081 // SetDisplayName sets the "display_name" field. 1082 func (u *UserUpsertOne) SetDisplayName(v string) *UserUpsertOne { 1083 return u.Update(func(s *UserUpsert) { 1084 s.SetDisplayName(v) 1085 }) 1086 } 1087 1088 // UpdateDisplayName sets the "display_name" field to the value that was provided on create. 1089 func (u *UserUpsertOne) UpdateDisplayName() *UserUpsertOne { 1090 return u.Update(func(s *UserUpsert) { 1091 s.UpdateDisplayName() 1092 }) 1093 } 1094 1095 // ClearDisplayName clears the value of the "display_name" field. 1096 func (u *UserUpsertOne) ClearDisplayName() *UserUpsertOne { 1097 return u.Update(func(s *UserUpsert) { 1098 s.ClearDisplayName() 1099 }) 1100 } 1101 1102 // SetURL sets the "url" field. 1103 func (u *UserUpsertOne) SetURL(v string) *UserUpsertOne { 1104 return u.Update(func(s *UserUpsert) { 1105 s.SetURL(v) 1106 }) 1107 } 1108 1109 // UpdateURL sets the "url" field to the value that was provided on create. 1110 func (u *UserUpsertOne) UpdateURL() *UserUpsertOne { 1111 return u.Update(func(s *UserUpsert) { 1112 s.UpdateURL() 1113 }) 1114 } 1115 1116 // ClearURL clears the value of the "url" field. 1117 func (u *UserUpsertOne) ClearURL() *UserUpsertOne { 1118 return u.Update(func(s *UserUpsert) { 1119 s.ClearURL() 1120 }) 1121 } 1122 1123 // SetProvider sets the "provider" field. 1124 func (u *UserUpsertOne) SetProvider(v string) *UserUpsertOne { 1125 return u.Update(func(s *UserUpsert) { 1126 s.SetProvider(v) 1127 }) 1128 } 1129 1130 // UpdateProvider sets the "provider" field to the value that was provided on create. 1131 func (u *UserUpsertOne) UpdateProvider() *UserUpsertOne { 1132 return u.Update(func(s *UserUpsert) { 1133 s.UpdateProvider() 1134 }) 1135 } 1136 1137 // ClearProvider clears the value of the "provider" field. 1138 func (u *UserUpsertOne) ClearProvider() *UserUpsertOne { 1139 return u.Update(func(s *UserUpsert) { 1140 s.ClearProvider() 1141 }) 1142 } 1143 1144 // SetProviderID sets the "provider_id" field. 1145 func (u *UserUpsertOne) SetProviderID(v string) *UserUpsertOne { 1146 return u.Update(func(s *UserUpsert) { 1147 s.SetProviderID(v) 1148 }) 1149 } 1150 1151 // UpdateProviderID sets the "provider_id" field to the value that was provided on create. 1152 func (u *UserUpsertOne) UpdateProviderID() *UserUpsertOne { 1153 return u.Update(func(s *UserUpsert) { 1154 s.UpdateProviderID() 1155 }) 1156 } 1157 1158 // ClearProviderID clears the value of the "provider_id" field. 1159 func (u *UserUpsertOne) ClearProviderID() *UserUpsertOne { 1160 return u.Update(func(s *UserUpsert) { 1161 s.ClearProviderID() 1162 }) 1163 } 1164 1165 // SetProviderUsername sets the "provider_username" field. 1166 func (u *UserUpsertOne) SetProviderUsername(v string) *UserUpsertOne { 1167 return u.Update(func(s *UserUpsert) { 1168 s.SetProviderUsername(v) 1169 }) 1170 } 1171 1172 // UpdateProviderUsername sets the "provider_username" field to the value that was provided on create. 1173 func (u *UserUpsertOne) UpdateProviderUsername() *UserUpsertOne { 1174 return u.Update(func(s *UserUpsert) { 1175 s.UpdateProviderUsername() 1176 }) 1177 } 1178 1179 // ClearProviderUsername clears the value of the "provider_username" field. 1180 func (u *UserUpsertOne) ClearProviderUsername() *UserUpsertOne { 1181 return u.Update(func(s *UserUpsert) { 1182 s.ClearProviderUsername() 1183 }) 1184 } 1185 1186 // SetProviderAvatar sets the "provider_avatar" field. 1187 func (u *UserUpsertOne) SetProviderAvatar(v string) *UserUpsertOne { 1188 return u.Update(func(s *UserUpsert) { 1189 s.SetProviderAvatar(v) 1190 }) 1191 } 1192 1193 // UpdateProviderAvatar sets the "provider_avatar" field to the value that was provided on create. 1194 func (u *UserUpsertOne) UpdateProviderAvatar() *UserUpsertOne { 1195 return u.Update(func(s *UserUpsert) { 1196 s.UpdateProviderAvatar() 1197 }) 1198 } 1199 1200 // ClearProviderAvatar clears the value of the "provider_avatar" field. 1201 func (u *UserUpsertOne) ClearProviderAvatar() *UserUpsertOne { 1202 return u.Update(func(s *UserUpsert) { 1203 s.ClearProviderAvatar() 1204 }) 1205 } 1206 1207 // SetEmail sets the "email" field. 1208 func (u *UserUpsertOne) SetEmail(v string) *UserUpsertOne { 1209 return u.Update(func(s *UserUpsert) { 1210 s.SetEmail(v) 1211 }) 1212 } 1213 1214 // UpdateEmail sets the "email" field to the value that was provided on create. 1215 func (u *UserUpsertOne) UpdateEmail() *UserUpsertOne { 1216 return u.Update(func(s *UserUpsert) { 1217 s.UpdateEmail() 1218 }) 1219 } 1220 1221 // ClearEmail clears the value of the "email" field. 1222 func (u *UserUpsertOne) ClearEmail() *UserUpsertOne { 1223 return u.Update(func(s *UserUpsert) { 1224 s.ClearEmail() 1225 }) 1226 } 1227 1228 // SetPassword sets the "password" field. 1229 func (u *UserUpsertOne) SetPassword(v string) *UserUpsertOne { 1230 return u.Update(func(s *UserUpsert) { 1231 s.SetPassword(v) 1232 }) 1233 } 1234 1235 // UpdatePassword sets the "password" field to the value that was provided on create. 1236 func (u *UserUpsertOne) UpdatePassword() *UserUpsertOne { 1237 return u.Update(func(s *UserUpsert) { 1238 s.UpdatePassword() 1239 }) 1240 } 1241 1242 // ClearPassword clears the value of the "password" field. 1243 func (u *UserUpsertOne) ClearPassword() *UserUpsertOne { 1244 return u.Update(func(s *UserUpsert) { 1245 s.ClearPassword() 1246 }) 1247 } 1248 1249 // SetBio sets the "bio" field. 1250 func (u *UserUpsertOne) SetBio(v string) *UserUpsertOne { 1251 return u.Update(func(s *UserUpsert) { 1252 s.SetBio(v) 1253 }) 1254 } 1255 1256 // UpdateBio sets the "bio" field to the value that was provided on create. 1257 func (u *UserUpsertOne) UpdateBio() *UserUpsertOne { 1258 return u.Update(func(s *UserUpsert) { 1259 s.UpdateBio() 1260 }) 1261 } 1262 1263 // ClearBio clears the value of the "bio" field. 1264 func (u *UserUpsertOne) ClearBio() *UserUpsertOne { 1265 return u.Update(func(s *UserUpsert) { 1266 s.ClearBio() 1267 }) 1268 } 1269 1270 // SetBioHTML sets the "bio_html" field. 1271 func (u *UserUpsertOne) SetBioHTML(v string) *UserUpsertOne { 1272 return u.Update(func(s *UserUpsert) { 1273 s.SetBioHTML(v) 1274 }) 1275 } 1276 1277 // UpdateBioHTML sets the "bio_html" field to the value that was provided on create. 1278 func (u *UserUpsertOne) UpdateBioHTML() *UserUpsertOne { 1279 return u.Update(func(s *UserUpsert) { 1280 s.UpdateBioHTML() 1281 }) 1282 } 1283 1284 // ClearBioHTML clears the value of the "bio_html" field. 1285 func (u *UserUpsertOne) ClearBioHTML() *UserUpsertOne { 1286 return u.Update(func(s *UserUpsert) { 1287 s.ClearBioHTML() 1288 }) 1289 } 1290 1291 // SetActive sets the "active" field. 1292 func (u *UserUpsertOne) SetActive(v bool) *UserUpsertOne { 1293 return u.Update(func(s *UserUpsert) { 1294 s.SetActive(v) 1295 }) 1296 } 1297 1298 // UpdateActive sets the "active" field to the value that was provided on create. 1299 func (u *UserUpsertOne) UpdateActive() *UserUpsertOne { 1300 return u.Update(func(s *UserUpsert) { 1301 s.UpdateActive() 1302 }) 1303 } 1304 1305 // SetAvatarImageID sets the "avatar_image_id" field. 1306 func (u *UserUpsertOne) SetAvatarImageID(v int) *UserUpsertOne { 1307 return u.Update(func(s *UserUpsert) { 1308 s.SetAvatarImageID(v) 1309 }) 1310 } 1311 1312 // UpdateAvatarImageID sets the "avatar_image_id" field to the value that was provided on create. 1313 func (u *UserUpsertOne) UpdateAvatarImageID() *UserUpsertOne { 1314 return u.Update(func(s *UserUpsert) { 1315 s.UpdateAvatarImageID() 1316 }) 1317 } 1318 1319 // ClearAvatarImageID clears the value of the "avatar_image_id" field. 1320 func (u *UserUpsertOne) ClearAvatarImageID() *UserUpsertOne { 1321 return u.Update(func(s *UserUpsert) { 1322 s.ClearAvatarImageID() 1323 }) 1324 } 1325 1326 // Exec executes the query. 1327 func (u *UserUpsertOne) Exec(ctx context.Context) error { 1328 if len(u.create.conflict) == 0 { 1329 return errors.New("ent: missing options for UserCreate.OnConflict") 1330 } 1331 return u.create.Exec(ctx) 1332 } 1333 1334 // ExecX is like Exec, but panics if an error occurs. 1335 func (u *UserUpsertOne) ExecX(ctx context.Context) { 1336 if err := u.create.Exec(ctx); err != nil { 1337 panic(err) 1338 } 1339 } 1340 1341 // Exec executes the UPSERT query and returns the inserted/updated ID. 1342 func (u *UserUpsertOne) ID(ctx context.Context) (id int, err error) { 1343 node, err := u.create.Save(ctx) 1344 if err != nil { 1345 return id, err 1346 } 1347 return node.ID, nil 1348 } 1349 1350 // IDX is like ID, but panics if an error occurs. 1351 func (u *UserUpsertOne) IDX(ctx context.Context) int { 1352 id, err := u.ID(ctx) 1353 if err != nil { 1354 panic(err) 1355 } 1356 return id 1357 } 1358 1359 // UserCreateBulk is the builder for creating many User entities in bulk. 1360 type UserCreateBulk struct { 1361 config 1362 builders []*UserCreate 1363 conflict []sql.ConflictOption 1364 } 1365 1366 // Save creates the User entities in the database. 1367 func (ucb *UserCreateBulk) Save(ctx context.Context) ([]*User, error) { 1368 specs := make([]*sqlgraph.CreateSpec, len(ucb.builders)) 1369 nodes := make([]*User, len(ucb.builders)) 1370 mutators := make([]Mutator, len(ucb.builders)) 1371 for i := range ucb.builders { 1372 func(i int, root context.Context) { 1373 builder := ucb.builders[i] 1374 builder.defaults() 1375 var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) { 1376 mutation, ok := m.(*UserMutation) 1377 if !ok { 1378 return nil, fmt.Errorf("unexpected mutation type %T", m) 1379 } 1380 if err := builder.check(); err != nil { 1381 return nil, err 1382 } 1383 builder.mutation = mutation 1384 nodes[i], specs[i] = builder.createSpec() 1385 var err error 1386 if i < len(mutators)-1 { 1387 _, err = mutators[i+1].Mutate(root, ucb.builders[i+1].mutation) 1388 } else { 1389 spec := &sqlgraph.BatchCreateSpec{Nodes: specs} 1390 spec.OnConflict = ucb.conflict 1391 // Invoke the actual operation on the latest mutation in the chain. 1392 if err = sqlgraph.BatchCreate(ctx, ucb.driver, spec); err != nil { 1393 if sqlgraph.IsConstraintError(err) { 1394 err = &ConstraintError{err.Error(), err} 1395 } 1396 } 1397 } 1398 if err != nil { 1399 return nil, err 1400 } 1401 mutation.id = &nodes[i].ID 1402 mutation.done = true 1403 if specs[i].ID.Value != nil { 1404 id := specs[i].ID.Value.(int64) 1405 nodes[i].ID = int(id) 1406 } 1407 return nodes[i], nil 1408 }) 1409 for i := len(builder.hooks) - 1; i >= 0; i-- { 1410 mut = builder.hooks[i](mut) 1411 } 1412 mutators[i] = mut 1413 }(i, ctx) 1414 } 1415 if len(mutators) > 0 { 1416 if _, err := mutators[0].Mutate(ctx, ucb.builders[0].mutation); err != nil { 1417 return nil, err 1418 } 1419 } 1420 return nodes, nil 1421 } 1422 1423 // SaveX is like Save, but panics if an error occurs. 1424 func (ucb *UserCreateBulk) SaveX(ctx context.Context) []*User { 1425 v, err := ucb.Save(ctx) 1426 if err != nil { 1427 panic(err) 1428 } 1429 return v 1430 } 1431 1432 // Exec executes the query. 1433 func (ucb *UserCreateBulk) Exec(ctx context.Context) error { 1434 _, err := ucb.Save(ctx) 1435 return err 1436 } 1437 1438 // ExecX is like Exec, but panics if an error occurs. 1439 func (ucb *UserCreateBulk) ExecX(ctx context.Context) { 1440 if err := ucb.Exec(ctx); err != nil { 1441 panic(err) 1442 } 1443 } 1444 1445 // OnConflict allows configuring the `ON CONFLICT` / `ON DUPLICATE KEY` clause 1446 // of the `INSERT` statement. For example: 1447 // 1448 // client.User.CreateBulk(builders...). 1449 // OnConflict( 1450 // // Update the row with the new values 1451 // // the was proposed for insertion. 1452 // sql.ResolveWithNewValues(), 1453 // ). 1454 // // Override some of the fields with custom 1455 // // update values. 1456 // Update(func(u *ent.UserUpsert) { 1457 // SetCreatedAt(v+v). 1458 // }). 1459 // Exec(ctx) 1460 // 1461 func (ucb *UserCreateBulk) OnConflict(opts ...sql.ConflictOption) *UserUpsertBulk { 1462 ucb.conflict = opts 1463 return &UserUpsertBulk{ 1464 create: ucb, 1465 } 1466 } 1467 1468 // OnConflictColumns calls `OnConflict` and configures the columns 1469 // as conflict target. Using this option is equivalent to using: 1470 // 1471 // client.User.Create(). 1472 // OnConflict(sql.ConflictColumns(columns...)). 1473 // Exec(ctx) 1474 // 1475 func (ucb *UserCreateBulk) OnConflictColumns(columns ...string) *UserUpsertBulk { 1476 ucb.conflict = append(ucb.conflict, sql.ConflictColumns(columns...)) 1477 return &UserUpsertBulk{ 1478 create: ucb, 1479 } 1480 } 1481 1482 // UserUpsertBulk is the builder for "upsert"-ing 1483 // a bulk of User nodes. 1484 type UserUpsertBulk struct { 1485 create *UserCreateBulk 1486 } 1487 1488 // UpdateNewValues updates the mutable fields using the new values that 1489 // were set on create. Using this option is equivalent to using: 1490 // 1491 // client.User.Create(). 1492 // OnConflict( 1493 // sql.ResolveWithNewValues(), 1494 // ). 1495 // Exec(ctx) 1496 // 1497 func (u *UserUpsertBulk) UpdateNewValues() *UserUpsertBulk { 1498 u.create.conflict = append(u.create.conflict, sql.ResolveWithNewValues()) 1499 u.create.conflict = append(u.create.conflict, sql.ResolveWith(func(s *sql.UpdateSet) { 1500 for _, b := range u.create.builders { 1501 if _, exists := b.mutation.CreatedAt(); exists { 1502 s.SetIgnore(user.FieldCreatedAt) 1503 } 1504 } 1505 })) 1506 return u 1507 } 1508 1509 // Ignore sets each column to itself in case of conflict. 1510 // Using this option is equivalent to using: 1511 // 1512 // client.User.Create(). 1513 // OnConflict(sql.ResolveWithIgnore()). 1514 // Exec(ctx) 1515 // 1516 func (u *UserUpsertBulk) Ignore() *UserUpsertBulk { 1517 u.create.conflict = append(u.create.conflict, sql.ResolveWithIgnore()) 1518 return u 1519 } 1520 1521 // DoNothing configures the conflict_action to `DO NOTHING`. 1522 // Supported only by SQLite and PostgreSQL. 1523 func (u *UserUpsertBulk) DoNothing() *UserUpsertBulk { 1524 u.create.conflict = append(u.create.conflict, sql.DoNothing()) 1525 return u 1526 } 1527 1528 // Update allows overriding fields `UPDATE` values. See the UserCreateBulk.OnConflict 1529 // documentation for more info. 1530 func (u *UserUpsertBulk) Update(set func(*UserUpsert)) *UserUpsertBulk { 1531 u.create.conflict = append(u.create.conflict, sql.ResolveWith(func(update *sql.UpdateSet) { 1532 set(&UserUpsert{UpdateSet: update}) 1533 })) 1534 return u 1535 } 1536 1537 // SetCreatedAt sets the "created_at" field. 1538 func (u *UserUpsertBulk) SetCreatedAt(v time.Time) *UserUpsertBulk { 1539 return u.Update(func(s *UserUpsert) { 1540 s.SetCreatedAt(v) 1541 }) 1542 } 1543 1544 // UpdateCreatedAt sets the "created_at" field to the value that was provided on create. 1545 func (u *UserUpsertBulk) UpdateCreatedAt() *UserUpsertBulk { 1546 return u.Update(func(s *UserUpsert) { 1547 s.UpdateCreatedAt() 1548 }) 1549 } 1550 1551 // SetUpdatedAt sets the "updated_at" field. 1552 func (u *UserUpsertBulk) SetUpdatedAt(v time.Time) *UserUpsertBulk { 1553 return u.Update(func(s *UserUpsert) { 1554 s.SetUpdatedAt(v) 1555 }) 1556 } 1557 1558 // UpdateUpdatedAt sets the "updated_at" field to the value that was provided on create. 1559 func (u *UserUpsertBulk) UpdateUpdatedAt() *UserUpsertBulk { 1560 return u.Update(func(s *UserUpsert) { 1561 s.UpdateUpdatedAt() 1562 }) 1563 } 1564 1565 // SetDeletedAt sets the "deleted_at" field. 1566 func (u *UserUpsertBulk) SetDeletedAt(v time.Time) *UserUpsertBulk { 1567 return u.Update(func(s *UserUpsert) { 1568 s.SetDeletedAt(v) 1569 }) 1570 } 1571 1572 // UpdateDeletedAt sets the "deleted_at" field to the value that was provided on create. 1573 func (u *UserUpsertBulk) UpdateDeletedAt() *UserUpsertBulk { 1574 return u.Update(func(s *UserUpsert) { 1575 s.UpdateDeletedAt() 1576 }) 1577 } 1578 1579 // ClearDeletedAt clears the value of the "deleted_at" field. 1580 func (u *UserUpsertBulk) ClearDeletedAt() *UserUpsertBulk { 1581 return u.Update(func(s *UserUpsert) { 1582 s.ClearDeletedAt() 1583 }) 1584 } 1585 1586 // SetUsername sets the "username" field. 1587 func (u *UserUpsertBulk) SetUsername(v string) *UserUpsertBulk { 1588 return u.Update(func(s *UserUpsert) { 1589 s.SetUsername(v) 1590 }) 1591 } 1592 1593 // UpdateUsername sets the "username" field to the value that was provided on create. 1594 func (u *UserUpsertBulk) UpdateUsername() *UserUpsertBulk { 1595 return u.Update(func(s *UserUpsert) { 1596 s.UpdateUsername() 1597 }) 1598 } 1599 1600 // SetDisplayName sets the "display_name" field. 1601 func (u *UserUpsertBulk) SetDisplayName(v string) *UserUpsertBulk { 1602 return u.Update(func(s *UserUpsert) { 1603 s.SetDisplayName(v) 1604 }) 1605 } 1606 1607 // UpdateDisplayName sets the "display_name" field to the value that was provided on create. 1608 func (u *UserUpsertBulk) UpdateDisplayName() *UserUpsertBulk { 1609 return u.Update(func(s *UserUpsert) { 1610 s.UpdateDisplayName() 1611 }) 1612 } 1613 1614 // ClearDisplayName clears the value of the "display_name" field. 1615 func (u *UserUpsertBulk) ClearDisplayName() *UserUpsertBulk { 1616 return u.Update(func(s *UserUpsert) { 1617 s.ClearDisplayName() 1618 }) 1619 } 1620 1621 // SetURL sets the "url" field. 1622 func (u *UserUpsertBulk) SetURL(v string) *UserUpsertBulk { 1623 return u.Update(func(s *UserUpsert) { 1624 s.SetURL(v) 1625 }) 1626 } 1627 1628 // UpdateURL sets the "url" field to the value that was provided on create. 1629 func (u *UserUpsertBulk) UpdateURL() *UserUpsertBulk { 1630 return u.Update(func(s *UserUpsert) { 1631 s.UpdateURL() 1632 }) 1633 } 1634 1635 // ClearURL clears the value of the "url" field. 1636 func (u *UserUpsertBulk) ClearURL() *UserUpsertBulk { 1637 return u.Update(func(s *UserUpsert) { 1638 s.ClearURL() 1639 }) 1640 } 1641 1642 // SetProvider sets the "provider" field. 1643 func (u *UserUpsertBulk) SetProvider(v string) *UserUpsertBulk { 1644 return u.Update(func(s *UserUpsert) { 1645 s.SetProvider(v) 1646 }) 1647 } 1648 1649 // UpdateProvider sets the "provider" field to the value that was provided on create. 1650 func (u *UserUpsertBulk) UpdateProvider() *UserUpsertBulk { 1651 return u.Update(func(s *UserUpsert) { 1652 s.UpdateProvider() 1653 }) 1654 } 1655 1656 // ClearProvider clears the value of the "provider" field. 1657 func (u *UserUpsertBulk) ClearProvider() *UserUpsertBulk { 1658 return u.Update(func(s *UserUpsert) { 1659 s.ClearProvider() 1660 }) 1661 } 1662 1663 // SetProviderID sets the "provider_id" field. 1664 func (u *UserUpsertBulk) SetProviderID(v string) *UserUpsertBulk { 1665 return u.Update(func(s *UserUpsert) { 1666 s.SetProviderID(v) 1667 }) 1668 } 1669 1670 // UpdateProviderID sets the "provider_id" field to the value that was provided on create. 1671 func (u *UserUpsertBulk) UpdateProviderID() *UserUpsertBulk { 1672 return u.Update(func(s *UserUpsert) { 1673 s.UpdateProviderID() 1674 }) 1675 } 1676 1677 // ClearProviderID clears the value of the "provider_id" field. 1678 func (u *UserUpsertBulk) ClearProviderID() *UserUpsertBulk { 1679 return u.Update(func(s *UserUpsert) { 1680 s.ClearProviderID() 1681 }) 1682 } 1683 1684 // SetProviderUsername sets the "provider_username" field. 1685 func (u *UserUpsertBulk) SetProviderUsername(v string) *UserUpsertBulk { 1686 return u.Update(func(s *UserUpsert) { 1687 s.SetProviderUsername(v) 1688 }) 1689 } 1690 1691 // UpdateProviderUsername sets the "provider_username" field to the value that was provided on create. 1692 func (u *UserUpsertBulk) UpdateProviderUsername() *UserUpsertBulk { 1693 return u.Update(func(s *UserUpsert) { 1694 s.UpdateProviderUsername() 1695 }) 1696 } 1697 1698 // ClearProviderUsername clears the value of the "provider_username" field. 1699 func (u *UserUpsertBulk) ClearProviderUsername() *UserUpsertBulk { 1700 return u.Update(func(s *UserUpsert) { 1701 s.ClearProviderUsername() 1702 }) 1703 } 1704 1705 // SetProviderAvatar sets the "provider_avatar" field. 1706 func (u *UserUpsertBulk) SetProviderAvatar(v string) *UserUpsertBulk { 1707 return u.Update(func(s *UserUpsert) { 1708 s.SetProviderAvatar(v) 1709 }) 1710 } 1711 1712 // UpdateProviderAvatar sets the "provider_avatar" field to the value that was provided on create. 1713 func (u *UserUpsertBulk) UpdateProviderAvatar() *UserUpsertBulk { 1714 return u.Update(func(s *UserUpsert) { 1715 s.UpdateProviderAvatar() 1716 }) 1717 } 1718 1719 // ClearProviderAvatar clears the value of the "provider_avatar" field. 1720 func (u *UserUpsertBulk) ClearProviderAvatar() *UserUpsertBulk { 1721 return u.Update(func(s *UserUpsert) { 1722 s.ClearProviderAvatar() 1723 }) 1724 } 1725 1726 // SetEmail sets the "email" field. 1727 func (u *UserUpsertBulk) SetEmail(v string) *UserUpsertBulk { 1728 return u.Update(func(s *UserUpsert) { 1729 s.SetEmail(v) 1730 }) 1731 } 1732 1733 // UpdateEmail sets the "email" field to the value that was provided on create. 1734 func (u *UserUpsertBulk) UpdateEmail() *UserUpsertBulk { 1735 return u.Update(func(s *UserUpsert) { 1736 s.UpdateEmail() 1737 }) 1738 } 1739 1740 // ClearEmail clears the value of the "email" field. 1741 func (u *UserUpsertBulk) ClearEmail() *UserUpsertBulk { 1742 return u.Update(func(s *UserUpsert) { 1743 s.ClearEmail() 1744 }) 1745 } 1746 1747 // SetPassword sets the "password" field. 1748 func (u *UserUpsertBulk) SetPassword(v string) *UserUpsertBulk { 1749 return u.Update(func(s *UserUpsert) { 1750 s.SetPassword(v) 1751 }) 1752 } 1753 1754 // UpdatePassword sets the "password" field to the value that was provided on create. 1755 func (u *UserUpsertBulk) UpdatePassword() *UserUpsertBulk { 1756 return u.Update(func(s *UserUpsert) { 1757 s.UpdatePassword() 1758 }) 1759 } 1760 1761 // ClearPassword clears the value of the "password" field. 1762 func (u *UserUpsertBulk) ClearPassword() *UserUpsertBulk { 1763 return u.Update(func(s *UserUpsert) { 1764 s.ClearPassword() 1765 }) 1766 } 1767 1768 // SetBio sets the "bio" field. 1769 func (u *UserUpsertBulk) SetBio(v string) *UserUpsertBulk { 1770 return u.Update(func(s *UserUpsert) { 1771 s.SetBio(v) 1772 }) 1773 } 1774 1775 // UpdateBio sets the "bio" field to the value that was provided on create. 1776 func (u *UserUpsertBulk) UpdateBio() *UserUpsertBulk { 1777 return u.Update(func(s *UserUpsert) { 1778 s.UpdateBio() 1779 }) 1780 } 1781 1782 // ClearBio clears the value of the "bio" field. 1783 func (u *UserUpsertBulk) ClearBio() *UserUpsertBulk { 1784 return u.Update(func(s *UserUpsert) { 1785 s.ClearBio() 1786 }) 1787 } 1788 1789 // SetBioHTML sets the "bio_html" field. 1790 func (u *UserUpsertBulk) SetBioHTML(v string) *UserUpsertBulk { 1791 return u.Update(func(s *UserUpsert) { 1792 s.SetBioHTML(v) 1793 }) 1794 } 1795 1796 // UpdateBioHTML sets the "bio_html" field to the value that was provided on create. 1797 func (u *UserUpsertBulk) UpdateBioHTML() *UserUpsertBulk { 1798 return u.Update(func(s *UserUpsert) { 1799 s.UpdateBioHTML() 1800 }) 1801 } 1802 1803 // ClearBioHTML clears the value of the "bio_html" field. 1804 func (u *UserUpsertBulk) ClearBioHTML() *UserUpsertBulk { 1805 return u.Update(func(s *UserUpsert) { 1806 s.ClearBioHTML() 1807 }) 1808 } 1809 1810 // SetActive sets the "active" field. 1811 func (u *UserUpsertBulk) SetActive(v bool) *UserUpsertBulk { 1812 return u.Update(func(s *UserUpsert) { 1813 s.SetActive(v) 1814 }) 1815 } 1816 1817 // UpdateActive sets the "active" field to the value that was provided on create. 1818 func (u *UserUpsertBulk) UpdateActive() *UserUpsertBulk { 1819 return u.Update(func(s *UserUpsert) { 1820 s.UpdateActive() 1821 }) 1822 } 1823 1824 // SetAvatarImageID sets the "avatar_image_id" field. 1825 func (u *UserUpsertBulk) SetAvatarImageID(v int) *UserUpsertBulk { 1826 return u.Update(func(s *UserUpsert) { 1827 s.SetAvatarImageID(v) 1828 }) 1829 } 1830 1831 // UpdateAvatarImageID sets the "avatar_image_id" field to the value that was provided on create. 1832 func (u *UserUpsertBulk) UpdateAvatarImageID() *UserUpsertBulk { 1833 return u.Update(func(s *UserUpsert) { 1834 s.UpdateAvatarImageID() 1835 }) 1836 } 1837 1838 // ClearAvatarImageID clears the value of the "avatar_image_id" field. 1839 func (u *UserUpsertBulk) ClearAvatarImageID() *UserUpsertBulk { 1840 return u.Update(func(s *UserUpsert) { 1841 s.ClearAvatarImageID() 1842 }) 1843 } 1844 1845 // Exec executes the query. 1846 func (u *UserUpsertBulk) Exec(ctx context.Context) error { 1847 for i, b := range u.create.builders { 1848 if len(b.conflict) != 0 { 1849 return fmt.Errorf("ent: OnConflict was set for builder %d. Set it on the UserCreateBulk instead", i) 1850 } 1851 } 1852 if len(u.create.conflict) == 0 { 1853 return errors.New("ent: missing options for UserCreateBulk.OnConflict") 1854 } 1855 return u.create.Exec(ctx) 1856 } 1857 1858 // ExecX is like Exec, but panics if an error occurs. 1859 func (u *UserUpsertBulk) ExecX(ctx context.Context) { 1860 if err := u.create.Exec(ctx); err != nil { 1861 panic(err) 1862 } 1863 }