/ ent / feed_update.go
feed_update.go
   1  // Code generated by ent, 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/google/uuid"
  15  	"github.com/mrusme/journalist/ent/feed"
  16  	"github.com/mrusme/journalist/ent/item"
  17  	"github.com/mrusme/journalist/ent/predicate"
  18  	"github.com/mrusme/journalist/ent/subscription"
  19  	"github.com/mrusme/journalist/ent/user"
  20  )
  21  
  22  // FeedUpdate is the builder for updating Feed entities.
  23  type FeedUpdate struct {
  24  	config
  25  	hooks    []Hook
  26  	mutation *FeedMutation
  27  }
  28  
  29  // Where appends a list predicates to the FeedUpdate builder.
  30  func (fu *FeedUpdate) Where(ps ...predicate.Feed) *FeedUpdate {
  31  	fu.mutation.Where(ps...)
  32  	return fu
  33  }
  34  
  35  // SetURL sets the "url" field.
  36  func (fu *FeedUpdate) SetURL(s string) *FeedUpdate {
  37  	fu.mutation.SetURL(s)
  38  	return fu
  39  }
  40  
  41  // SetNillableURL sets the "url" field if the given value is not nil.
  42  func (fu *FeedUpdate) SetNillableURL(s *string) *FeedUpdate {
  43  	if s != nil {
  44  		fu.SetURL(*s)
  45  	}
  46  	return fu
  47  }
  48  
  49  // SetUsername sets the "username" field.
  50  func (fu *FeedUpdate) SetUsername(s string) *FeedUpdate {
  51  	fu.mutation.SetUsername(s)
  52  	return fu
  53  }
  54  
  55  // SetNillableUsername sets the "username" field if the given value is not nil.
  56  func (fu *FeedUpdate) SetNillableUsername(s *string) *FeedUpdate {
  57  	if s != nil {
  58  		fu.SetUsername(*s)
  59  	}
  60  	return fu
  61  }
  62  
  63  // SetPassword sets the "password" field.
  64  func (fu *FeedUpdate) SetPassword(s string) *FeedUpdate {
  65  	fu.mutation.SetPassword(s)
  66  	return fu
  67  }
  68  
  69  // SetNillablePassword sets the "password" field if the given value is not nil.
  70  func (fu *FeedUpdate) SetNillablePassword(s *string) *FeedUpdate {
  71  	if s != nil {
  72  		fu.SetPassword(*s)
  73  	}
  74  	return fu
  75  }
  76  
  77  // SetFeedTitle sets the "feed_title" field.
  78  func (fu *FeedUpdate) SetFeedTitle(s string) *FeedUpdate {
  79  	fu.mutation.SetFeedTitle(s)
  80  	return fu
  81  }
  82  
  83  // SetNillableFeedTitle sets the "feed_title" field if the given value is not nil.
  84  func (fu *FeedUpdate) SetNillableFeedTitle(s *string) *FeedUpdate {
  85  	if s != nil {
  86  		fu.SetFeedTitle(*s)
  87  	}
  88  	return fu
  89  }
  90  
  91  // SetFeedDescription sets the "feed_description" field.
  92  func (fu *FeedUpdate) SetFeedDescription(s string) *FeedUpdate {
  93  	fu.mutation.SetFeedDescription(s)
  94  	return fu
  95  }
  96  
  97  // SetNillableFeedDescription sets the "feed_description" field if the given value is not nil.
  98  func (fu *FeedUpdate) SetNillableFeedDescription(s *string) *FeedUpdate {
  99  	if s != nil {
 100  		fu.SetFeedDescription(*s)
 101  	}
 102  	return fu
 103  }
 104  
 105  // SetFeedLink sets the "feed_link" field.
 106  func (fu *FeedUpdate) SetFeedLink(s string) *FeedUpdate {
 107  	fu.mutation.SetFeedLink(s)
 108  	return fu
 109  }
 110  
 111  // SetNillableFeedLink sets the "feed_link" field if the given value is not nil.
 112  func (fu *FeedUpdate) SetNillableFeedLink(s *string) *FeedUpdate {
 113  	if s != nil {
 114  		fu.SetFeedLink(*s)
 115  	}
 116  	return fu
 117  }
 118  
 119  // SetFeedFeedLink sets the "feed_feed_link" field.
 120  func (fu *FeedUpdate) SetFeedFeedLink(s string) *FeedUpdate {
 121  	fu.mutation.SetFeedFeedLink(s)
 122  	return fu
 123  }
 124  
 125  // SetNillableFeedFeedLink sets the "feed_feed_link" field if the given value is not nil.
 126  func (fu *FeedUpdate) SetNillableFeedFeedLink(s *string) *FeedUpdate {
 127  	if s != nil {
 128  		fu.SetFeedFeedLink(*s)
 129  	}
 130  	return fu
 131  }
 132  
 133  // SetFeedUpdated sets the "feed_updated" field.
 134  func (fu *FeedUpdate) SetFeedUpdated(t time.Time) *FeedUpdate {
 135  	fu.mutation.SetFeedUpdated(t)
 136  	return fu
 137  }
 138  
 139  // SetNillableFeedUpdated sets the "feed_updated" field if the given value is not nil.
 140  func (fu *FeedUpdate) SetNillableFeedUpdated(t *time.Time) *FeedUpdate {
 141  	if t != nil {
 142  		fu.SetFeedUpdated(*t)
 143  	}
 144  	return fu
 145  }
 146  
 147  // SetFeedPublished sets the "feed_published" field.
 148  func (fu *FeedUpdate) SetFeedPublished(t time.Time) *FeedUpdate {
 149  	fu.mutation.SetFeedPublished(t)
 150  	return fu
 151  }
 152  
 153  // SetNillableFeedPublished sets the "feed_published" field if the given value is not nil.
 154  func (fu *FeedUpdate) SetNillableFeedPublished(t *time.Time) *FeedUpdate {
 155  	if t != nil {
 156  		fu.SetFeedPublished(*t)
 157  	}
 158  	return fu
 159  }
 160  
 161  // SetFeedAuthorName sets the "feed_author_name" field.
 162  func (fu *FeedUpdate) SetFeedAuthorName(s string) *FeedUpdate {
 163  	fu.mutation.SetFeedAuthorName(s)
 164  	return fu
 165  }
 166  
 167  // SetNillableFeedAuthorName sets the "feed_author_name" field if the given value is not nil.
 168  func (fu *FeedUpdate) SetNillableFeedAuthorName(s *string) *FeedUpdate {
 169  	if s != nil {
 170  		fu.SetFeedAuthorName(*s)
 171  	}
 172  	return fu
 173  }
 174  
 175  // ClearFeedAuthorName clears the value of the "feed_author_name" field.
 176  func (fu *FeedUpdate) ClearFeedAuthorName() *FeedUpdate {
 177  	fu.mutation.ClearFeedAuthorName()
 178  	return fu
 179  }
 180  
 181  // SetFeedAuthorEmail sets the "feed_author_email" field.
 182  func (fu *FeedUpdate) SetFeedAuthorEmail(s string) *FeedUpdate {
 183  	fu.mutation.SetFeedAuthorEmail(s)
 184  	return fu
 185  }
 186  
 187  // SetNillableFeedAuthorEmail sets the "feed_author_email" field if the given value is not nil.
 188  func (fu *FeedUpdate) SetNillableFeedAuthorEmail(s *string) *FeedUpdate {
 189  	if s != nil {
 190  		fu.SetFeedAuthorEmail(*s)
 191  	}
 192  	return fu
 193  }
 194  
 195  // ClearFeedAuthorEmail clears the value of the "feed_author_email" field.
 196  func (fu *FeedUpdate) ClearFeedAuthorEmail() *FeedUpdate {
 197  	fu.mutation.ClearFeedAuthorEmail()
 198  	return fu
 199  }
 200  
 201  // SetFeedLanguage sets the "feed_language" field.
 202  func (fu *FeedUpdate) SetFeedLanguage(s string) *FeedUpdate {
 203  	fu.mutation.SetFeedLanguage(s)
 204  	return fu
 205  }
 206  
 207  // SetNillableFeedLanguage sets the "feed_language" field if the given value is not nil.
 208  func (fu *FeedUpdate) SetNillableFeedLanguage(s *string) *FeedUpdate {
 209  	if s != nil {
 210  		fu.SetFeedLanguage(*s)
 211  	}
 212  	return fu
 213  }
 214  
 215  // SetFeedImageTitle sets the "feed_image_title" field.
 216  func (fu *FeedUpdate) SetFeedImageTitle(s string) *FeedUpdate {
 217  	fu.mutation.SetFeedImageTitle(s)
 218  	return fu
 219  }
 220  
 221  // SetNillableFeedImageTitle sets the "feed_image_title" field if the given value is not nil.
 222  func (fu *FeedUpdate) SetNillableFeedImageTitle(s *string) *FeedUpdate {
 223  	if s != nil {
 224  		fu.SetFeedImageTitle(*s)
 225  	}
 226  	return fu
 227  }
 228  
 229  // ClearFeedImageTitle clears the value of the "feed_image_title" field.
 230  func (fu *FeedUpdate) ClearFeedImageTitle() *FeedUpdate {
 231  	fu.mutation.ClearFeedImageTitle()
 232  	return fu
 233  }
 234  
 235  // SetFeedImageURL sets the "feed_image_url" field.
 236  func (fu *FeedUpdate) SetFeedImageURL(s string) *FeedUpdate {
 237  	fu.mutation.SetFeedImageURL(s)
 238  	return fu
 239  }
 240  
 241  // SetNillableFeedImageURL sets the "feed_image_url" field if the given value is not nil.
 242  func (fu *FeedUpdate) SetNillableFeedImageURL(s *string) *FeedUpdate {
 243  	if s != nil {
 244  		fu.SetFeedImageURL(*s)
 245  	}
 246  	return fu
 247  }
 248  
 249  // ClearFeedImageURL clears the value of the "feed_image_url" field.
 250  func (fu *FeedUpdate) ClearFeedImageURL() *FeedUpdate {
 251  	fu.mutation.ClearFeedImageURL()
 252  	return fu
 253  }
 254  
 255  // SetFeedCopyright sets the "feed_copyright" field.
 256  func (fu *FeedUpdate) SetFeedCopyright(s string) *FeedUpdate {
 257  	fu.mutation.SetFeedCopyright(s)
 258  	return fu
 259  }
 260  
 261  // SetNillableFeedCopyright sets the "feed_copyright" field if the given value is not nil.
 262  func (fu *FeedUpdate) SetNillableFeedCopyright(s *string) *FeedUpdate {
 263  	if s != nil {
 264  		fu.SetFeedCopyright(*s)
 265  	}
 266  	return fu
 267  }
 268  
 269  // SetFeedGenerator sets the "feed_generator" field.
 270  func (fu *FeedUpdate) SetFeedGenerator(s string) *FeedUpdate {
 271  	fu.mutation.SetFeedGenerator(s)
 272  	return fu
 273  }
 274  
 275  // SetNillableFeedGenerator sets the "feed_generator" field if the given value is not nil.
 276  func (fu *FeedUpdate) SetNillableFeedGenerator(s *string) *FeedUpdate {
 277  	if s != nil {
 278  		fu.SetFeedGenerator(*s)
 279  	}
 280  	return fu
 281  }
 282  
 283  // SetFeedCategories sets the "feed_categories" field.
 284  func (fu *FeedUpdate) SetFeedCategories(s string) *FeedUpdate {
 285  	fu.mutation.SetFeedCategories(s)
 286  	return fu
 287  }
 288  
 289  // SetNillableFeedCategories sets the "feed_categories" field if the given value is not nil.
 290  func (fu *FeedUpdate) SetNillableFeedCategories(s *string) *FeedUpdate {
 291  	if s != nil {
 292  		fu.SetFeedCategories(*s)
 293  	}
 294  	return fu
 295  }
 296  
 297  // SetCreatedAt sets the "created_at" field.
 298  func (fu *FeedUpdate) SetCreatedAt(t time.Time) *FeedUpdate {
 299  	fu.mutation.SetCreatedAt(t)
 300  	return fu
 301  }
 302  
 303  // SetNillableCreatedAt sets the "created_at" field if the given value is not nil.
 304  func (fu *FeedUpdate) SetNillableCreatedAt(t *time.Time) *FeedUpdate {
 305  	if t != nil {
 306  		fu.SetCreatedAt(*t)
 307  	}
 308  	return fu
 309  }
 310  
 311  // SetUpdatedAt sets the "updated_at" field.
 312  func (fu *FeedUpdate) SetUpdatedAt(t time.Time) *FeedUpdate {
 313  	fu.mutation.SetUpdatedAt(t)
 314  	return fu
 315  }
 316  
 317  // SetDeletedAt sets the "deleted_at" field.
 318  func (fu *FeedUpdate) SetDeletedAt(t time.Time) *FeedUpdate {
 319  	fu.mutation.SetDeletedAt(t)
 320  	return fu
 321  }
 322  
 323  // SetNillableDeletedAt sets the "deleted_at" field if the given value is not nil.
 324  func (fu *FeedUpdate) SetNillableDeletedAt(t *time.Time) *FeedUpdate {
 325  	if t != nil {
 326  		fu.SetDeletedAt(*t)
 327  	}
 328  	return fu
 329  }
 330  
 331  // ClearDeletedAt clears the value of the "deleted_at" field.
 332  func (fu *FeedUpdate) ClearDeletedAt() *FeedUpdate {
 333  	fu.mutation.ClearDeletedAt()
 334  	return fu
 335  }
 336  
 337  // AddItemIDs adds the "items" edge to the Item entity by IDs.
 338  func (fu *FeedUpdate) AddItemIDs(ids ...uuid.UUID) *FeedUpdate {
 339  	fu.mutation.AddItemIDs(ids...)
 340  	return fu
 341  }
 342  
 343  // AddItems adds the "items" edges to the Item entity.
 344  func (fu *FeedUpdate) AddItems(i ...*Item) *FeedUpdate {
 345  	ids := make([]uuid.UUID, len(i))
 346  	for j := range i {
 347  		ids[j] = i[j].ID
 348  	}
 349  	return fu.AddItemIDs(ids...)
 350  }
 351  
 352  // AddSubscribedUserIDs adds the "subscribed_users" edge to the User entity by IDs.
 353  func (fu *FeedUpdate) AddSubscribedUserIDs(ids ...uuid.UUID) *FeedUpdate {
 354  	fu.mutation.AddSubscribedUserIDs(ids...)
 355  	return fu
 356  }
 357  
 358  // AddSubscribedUsers adds the "subscribed_users" edges to the User entity.
 359  func (fu *FeedUpdate) AddSubscribedUsers(u ...*User) *FeedUpdate {
 360  	ids := make([]uuid.UUID, len(u))
 361  	for i := range u {
 362  		ids[i] = u[i].ID
 363  	}
 364  	return fu.AddSubscribedUserIDs(ids...)
 365  }
 366  
 367  // AddSubscriptionIDs adds the "subscriptions" edge to the Subscription entity by IDs.
 368  func (fu *FeedUpdate) AddSubscriptionIDs(ids ...uuid.UUID) *FeedUpdate {
 369  	fu.mutation.AddSubscriptionIDs(ids...)
 370  	return fu
 371  }
 372  
 373  // AddSubscriptions adds the "subscriptions" edges to the Subscription entity.
 374  func (fu *FeedUpdate) AddSubscriptions(s ...*Subscription) *FeedUpdate {
 375  	ids := make([]uuid.UUID, len(s))
 376  	for i := range s {
 377  		ids[i] = s[i].ID
 378  	}
 379  	return fu.AddSubscriptionIDs(ids...)
 380  }
 381  
 382  // Mutation returns the FeedMutation object of the builder.
 383  func (fu *FeedUpdate) Mutation() *FeedMutation {
 384  	return fu.mutation
 385  }
 386  
 387  // ClearItems clears all "items" edges to the Item entity.
 388  func (fu *FeedUpdate) ClearItems() *FeedUpdate {
 389  	fu.mutation.ClearItems()
 390  	return fu
 391  }
 392  
 393  // RemoveItemIDs removes the "items" edge to Item entities by IDs.
 394  func (fu *FeedUpdate) RemoveItemIDs(ids ...uuid.UUID) *FeedUpdate {
 395  	fu.mutation.RemoveItemIDs(ids...)
 396  	return fu
 397  }
 398  
 399  // RemoveItems removes "items" edges to Item entities.
 400  func (fu *FeedUpdate) RemoveItems(i ...*Item) *FeedUpdate {
 401  	ids := make([]uuid.UUID, len(i))
 402  	for j := range i {
 403  		ids[j] = i[j].ID
 404  	}
 405  	return fu.RemoveItemIDs(ids...)
 406  }
 407  
 408  // ClearSubscribedUsers clears all "subscribed_users" edges to the User entity.
 409  func (fu *FeedUpdate) ClearSubscribedUsers() *FeedUpdate {
 410  	fu.mutation.ClearSubscribedUsers()
 411  	return fu
 412  }
 413  
 414  // RemoveSubscribedUserIDs removes the "subscribed_users" edge to User entities by IDs.
 415  func (fu *FeedUpdate) RemoveSubscribedUserIDs(ids ...uuid.UUID) *FeedUpdate {
 416  	fu.mutation.RemoveSubscribedUserIDs(ids...)
 417  	return fu
 418  }
 419  
 420  // RemoveSubscribedUsers removes "subscribed_users" edges to User entities.
 421  func (fu *FeedUpdate) RemoveSubscribedUsers(u ...*User) *FeedUpdate {
 422  	ids := make([]uuid.UUID, len(u))
 423  	for i := range u {
 424  		ids[i] = u[i].ID
 425  	}
 426  	return fu.RemoveSubscribedUserIDs(ids...)
 427  }
 428  
 429  // ClearSubscriptions clears all "subscriptions" edges to the Subscription entity.
 430  func (fu *FeedUpdate) ClearSubscriptions() *FeedUpdate {
 431  	fu.mutation.ClearSubscriptions()
 432  	return fu
 433  }
 434  
 435  // RemoveSubscriptionIDs removes the "subscriptions" edge to Subscription entities by IDs.
 436  func (fu *FeedUpdate) RemoveSubscriptionIDs(ids ...uuid.UUID) *FeedUpdate {
 437  	fu.mutation.RemoveSubscriptionIDs(ids...)
 438  	return fu
 439  }
 440  
 441  // RemoveSubscriptions removes "subscriptions" edges to Subscription entities.
 442  func (fu *FeedUpdate) RemoveSubscriptions(s ...*Subscription) *FeedUpdate {
 443  	ids := make([]uuid.UUID, len(s))
 444  	for i := range s {
 445  		ids[i] = s[i].ID
 446  	}
 447  	return fu.RemoveSubscriptionIDs(ids...)
 448  }
 449  
 450  // Save executes the query and returns the number of nodes affected by the update operation.
 451  func (fu *FeedUpdate) Save(ctx context.Context) (int, error) {
 452  	fu.defaults()
 453  	return withHooks(ctx, fu.sqlSave, fu.mutation, fu.hooks)
 454  }
 455  
 456  // SaveX is like Save, but panics if an error occurs.
 457  func (fu *FeedUpdate) SaveX(ctx context.Context) int {
 458  	affected, err := fu.Save(ctx)
 459  	if err != nil {
 460  		panic(err)
 461  	}
 462  	return affected
 463  }
 464  
 465  // Exec executes the query.
 466  func (fu *FeedUpdate) Exec(ctx context.Context) error {
 467  	_, err := fu.Save(ctx)
 468  	return err
 469  }
 470  
 471  // ExecX is like Exec, but panics if an error occurs.
 472  func (fu *FeedUpdate) ExecX(ctx context.Context) {
 473  	if err := fu.Exec(ctx); err != nil {
 474  		panic(err)
 475  	}
 476  }
 477  
 478  // defaults sets the default values of the builder before save.
 479  func (fu *FeedUpdate) defaults() {
 480  	if _, ok := fu.mutation.UpdatedAt(); !ok {
 481  		v := feed.UpdateDefaultUpdatedAt()
 482  		fu.mutation.SetUpdatedAt(v)
 483  	}
 484  }
 485  
 486  // check runs all checks and user-defined validators on the builder.
 487  func (fu *FeedUpdate) check() error {
 488  	if v, ok := fu.mutation.URL(); ok {
 489  		if err := feed.URLValidator(v); err != nil {
 490  			return &ValidationError{Name: "url", err: fmt.Errorf(`ent: validator failed for field "Feed.url": %w`, err)}
 491  		}
 492  	}
 493  	return nil
 494  }
 495  
 496  func (fu *FeedUpdate) sqlSave(ctx context.Context) (n int, err error) {
 497  	if err := fu.check(); err != nil {
 498  		return n, err
 499  	}
 500  	_spec := sqlgraph.NewUpdateSpec(feed.Table, feed.Columns, sqlgraph.NewFieldSpec(feed.FieldID, field.TypeUUID))
 501  	if ps := fu.mutation.predicates; len(ps) > 0 {
 502  		_spec.Predicate = func(selector *sql.Selector) {
 503  			for i := range ps {
 504  				ps[i](selector)
 505  			}
 506  		}
 507  	}
 508  	if value, ok := fu.mutation.URL(); ok {
 509  		_spec.SetField(feed.FieldURL, field.TypeString, value)
 510  	}
 511  	if value, ok := fu.mutation.Username(); ok {
 512  		_spec.SetField(feed.FieldUsername, field.TypeString, value)
 513  	}
 514  	if value, ok := fu.mutation.Password(); ok {
 515  		_spec.SetField(feed.FieldPassword, field.TypeString, value)
 516  	}
 517  	if value, ok := fu.mutation.FeedTitle(); ok {
 518  		_spec.SetField(feed.FieldFeedTitle, field.TypeString, value)
 519  	}
 520  	if value, ok := fu.mutation.FeedDescription(); ok {
 521  		_spec.SetField(feed.FieldFeedDescription, field.TypeString, value)
 522  	}
 523  	if value, ok := fu.mutation.FeedLink(); ok {
 524  		_spec.SetField(feed.FieldFeedLink, field.TypeString, value)
 525  	}
 526  	if value, ok := fu.mutation.FeedFeedLink(); ok {
 527  		_spec.SetField(feed.FieldFeedFeedLink, field.TypeString, value)
 528  	}
 529  	if value, ok := fu.mutation.FeedUpdated(); ok {
 530  		_spec.SetField(feed.FieldFeedUpdated, field.TypeTime, value)
 531  	}
 532  	if value, ok := fu.mutation.FeedPublished(); ok {
 533  		_spec.SetField(feed.FieldFeedPublished, field.TypeTime, value)
 534  	}
 535  	if value, ok := fu.mutation.FeedAuthorName(); ok {
 536  		_spec.SetField(feed.FieldFeedAuthorName, field.TypeString, value)
 537  	}
 538  	if fu.mutation.FeedAuthorNameCleared() {
 539  		_spec.ClearField(feed.FieldFeedAuthorName, field.TypeString)
 540  	}
 541  	if value, ok := fu.mutation.FeedAuthorEmail(); ok {
 542  		_spec.SetField(feed.FieldFeedAuthorEmail, field.TypeString, value)
 543  	}
 544  	if fu.mutation.FeedAuthorEmailCleared() {
 545  		_spec.ClearField(feed.FieldFeedAuthorEmail, field.TypeString)
 546  	}
 547  	if value, ok := fu.mutation.FeedLanguage(); ok {
 548  		_spec.SetField(feed.FieldFeedLanguage, field.TypeString, value)
 549  	}
 550  	if value, ok := fu.mutation.FeedImageTitle(); ok {
 551  		_spec.SetField(feed.FieldFeedImageTitle, field.TypeString, value)
 552  	}
 553  	if fu.mutation.FeedImageTitleCleared() {
 554  		_spec.ClearField(feed.FieldFeedImageTitle, field.TypeString)
 555  	}
 556  	if value, ok := fu.mutation.FeedImageURL(); ok {
 557  		_spec.SetField(feed.FieldFeedImageURL, field.TypeString, value)
 558  	}
 559  	if fu.mutation.FeedImageURLCleared() {
 560  		_spec.ClearField(feed.FieldFeedImageURL, field.TypeString)
 561  	}
 562  	if value, ok := fu.mutation.FeedCopyright(); ok {
 563  		_spec.SetField(feed.FieldFeedCopyright, field.TypeString, value)
 564  	}
 565  	if value, ok := fu.mutation.FeedGenerator(); ok {
 566  		_spec.SetField(feed.FieldFeedGenerator, field.TypeString, value)
 567  	}
 568  	if value, ok := fu.mutation.FeedCategories(); ok {
 569  		_spec.SetField(feed.FieldFeedCategories, field.TypeString, value)
 570  	}
 571  	if value, ok := fu.mutation.CreatedAt(); ok {
 572  		_spec.SetField(feed.FieldCreatedAt, field.TypeTime, value)
 573  	}
 574  	if value, ok := fu.mutation.UpdatedAt(); ok {
 575  		_spec.SetField(feed.FieldUpdatedAt, field.TypeTime, value)
 576  	}
 577  	if value, ok := fu.mutation.DeletedAt(); ok {
 578  		_spec.SetField(feed.FieldDeletedAt, field.TypeTime, value)
 579  	}
 580  	if fu.mutation.DeletedAtCleared() {
 581  		_spec.ClearField(feed.FieldDeletedAt, field.TypeTime)
 582  	}
 583  	if fu.mutation.ItemsCleared() {
 584  		edge := &sqlgraph.EdgeSpec{
 585  			Rel:     sqlgraph.O2M,
 586  			Inverse: false,
 587  			Table:   feed.ItemsTable,
 588  			Columns: []string{feed.ItemsColumn},
 589  			Bidi:    false,
 590  			Target: &sqlgraph.EdgeTarget{
 591  				IDSpec: sqlgraph.NewFieldSpec(item.FieldID, field.TypeUUID),
 592  			},
 593  		}
 594  		_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
 595  	}
 596  	if nodes := fu.mutation.RemovedItemsIDs(); len(nodes) > 0 && !fu.mutation.ItemsCleared() {
 597  		edge := &sqlgraph.EdgeSpec{
 598  			Rel:     sqlgraph.O2M,
 599  			Inverse: false,
 600  			Table:   feed.ItemsTable,
 601  			Columns: []string{feed.ItemsColumn},
 602  			Bidi:    false,
 603  			Target: &sqlgraph.EdgeTarget{
 604  				IDSpec: sqlgraph.NewFieldSpec(item.FieldID, field.TypeUUID),
 605  			},
 606  		}
 607  		for _, k := range nodes {
 608  			edge.Target.Nodes = append(edge.Target.Nodes, k)
 609  		}
 610  		_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
 611  	}
 612  	if nodes := fu.mutation.ItemsIDs(); len(nodes) > 0 {
 613  		edge := &sqlgraph.EdgeSpec{
 614  			Rel:     sqlgraph.O2M,
 615  			Inverse: false,
 616  			Table:   feed.ItemsTable,
 617  			Columns: []string{feed.ItemsColumn},
 618  			Bidi:    false,
 619  			Target: &sqlgraph.EdgeTarget{
 620  				IDSpec: sqlgraph.NewFieldSpec(item.FieldID, field.TypeUUID),
 621  			},
 622  		}
 623  		for _, k := range nodes {
 624  			edge.Target.Nodes = append(edge.Target.Nodes, k)
 625  		}
 626  		_spec.Edges.Add = append(_spec.Edges.Add, edge)
 627  	}
 628  	if fu.mutation.SubscribedUsersCleared() {
 629  		edge := &sqlgraph.EdgeSpec{
 630  			Rel:     sqlgraph.M2M,
 631  			Inverse: true,
 632  			Table:   feed.SubscribedUsersTable,
 633  			Columns: feed.SubscribedUsersPrimaryKey,
 634  			Bidi:    false,
 635  			Target: &sqlgraph.EdgeTarget{
 636  				IDSpec: sqlgraph.NewFieldSpec(user.FieldID, field.TypeUUID),
 637  			},
 638  		}
 639  		createE := &SubscriptionCreate{config: fu.config, mutation: newSubscriptionMutation(fu.config, OpCreate)}
 640  		createE.defaults()
 641  		_, specE := createE.createSpec()
 642  		edge.Target.Fields = specE.Fields
 643  		if specE.ID.Value != nil {
 644  			edge.Target.Fields = append(edge.Target.Fields, specE.ID)
 645  		}
 646  		_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
 647  	}
 648  	if nodes := fu.mutation.RemovedSubscribedUsersIDs(); len(nodes) > 0 && !fu.mutation.SubscribedUsersCleared() {
 649  		edge := &sqlgraph.EdgeSpec{
 650  			Rel:     sqlgraph.M2M,
 651  			Inverse: true,
 652  			Table:   feed.SubscribedUsersTable,
 653  			Columns: feed.SubscribedUsersPrimaryKey,
 654  			Bidi:    false,
 655  			Target: &sqlgraph.EdgeTarget{
 656  				IDSpec: sqlgraph.NewFieldSpec(user.FieldID, field.TypeUUID),
 657  			},
 658  		}
 659  		for _, k := range nodes {
 660  			edge.Target.Nodes = append(edge.Target.Nodes, k)
 661  		}
 662  		createE := &SubscriptionCreate{config: fu.config, mutation: newSubscriptionMutation(fu.config, OpCreate)}
 663  		createE.defaults()
 664  		_, specE := createE.createSpec()
 665  		edge.Target.Fields = specE.Fields
 666  		if specE.ID.Value != nil {
 667  			edge.Target.Fields = append(edge.Target.Fields, specE.ID)
 668  		}
 669  		_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
 670  	}
 671  	if nodes := fu.mutation.SubscribedUsersIDs(); len(nodes) > 0 {
 672  		edge := &sqlgraph.EdgeSpec{
 673  			Rel:     sqlgraph.M2M,
 674  			Inverse: true,
 675  			Table:   feed.SubscribedUsersTable,
 676  			Columns: feed.SubscribedUsersPrimaryKey,
 677  			Bidi:    false,
 678  			Target: &sqlgraph.EdgeTarget{
 679  				IDSpec: sqlgraph.NewFieldSpec(user.FieldID, field.TypeUUID),
 680  			},
 681  		}
 682  		for _, k := range nodes {
 683  			edge.Target.Nodes = append(edge.Target.Nodes, k)
 684  		}
 685  		createE := &SubscriptionCreate{config: fu.config, mutation: newSubscriptionMutation(fu.config, OpCreate)}
 686  		createE.defaults()
 687  		_, specE := createE.createSpec()
 688  		edge.Target.Fields = specE.Fields
 689  		if specE.ID.Value != nil {
 690  			edge.Target.Fields = append(edge.Target.Fields, specE.ID)
 691  		}
 692  		_spec.Edges.Add = append(_spec.Edges.Add, edge)
 693  	}
 694  	if fu.mutation.SubscriptionsCleared() {
 695  		edge := &sqlgraph.EdgeSpec{
 696  			Rel:     sqlgraph.O2M,
 697  			Inverse: true,
 698  			Table:   feed.SubscriptionsTable,
 699  			Columns: []string{feed.SubscriptionsColumn},
 700  			Bidi:    false,
 701  			Target: &sqlgraph.EdgeTarget{
 702  				IDSpec: sqlgraph.NewFieldSpec(subscription.FieldID, field.TypeUUID),
 703  			},
 704  		}
 705  		_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
 706  	}
 707  	if nodes := fu.mutation.RemovedSubscriptionsIDs(); len(nodes) > 0 && !fu.mutation.SubscriptionsCleared() {
 708  		edge := &sqlgraph.EdgeSpec{
 709  			Rel:     sqlgraph.O2M,
 710  			Inverse: true,
 711  			Table:   feed.SubscriptionsTable,
 712  			Columns: []string{feed.SubscriptionsColumn},
 713  			Bidi:    false,
 714  			Target: &sqlgraph.EdgeTarget{
 715  				IDSpec: sqlgraph.NewFieldSpec(subscription.FieldID, field.TypeUUID),
 716  			},
 717  		}
 718  		for _, k := range nodes {
 719  			edge.Target.Nodes = append(edge.Target.Nodes, k)
 720  		}
 721  		_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
 722  	}
 723  	if nodes := fu.mutation.SubscriptionsIDs(); len(nodes) > 0 {
 724  		edge := &sqlgraph.EdgeSpec{
 725  			Rel:     sqlgraph.O2M,
 726  			Inverse: true,
 727  			Table:   feed.SubscriptionsTable,
 728  			Columns: []string{feed.SubscriptionsColumn},
 729  			Bidi:    false,
 730  			Target: &sqlgraph.EdgeTarget{
 731  				IDSpec: sqlgraph.NewFieldSpec(subscription.FieldID, field.TypeUUID),
 732  			},
 733  		}
 734  		for _, k := range nodes {
 735  			edge.Target.Nodes = append(edge.Target.Nodes, k)
 736  		}
 737  		_spec.Edges.Add = append(_spec.Edges.Add, edge)
 738  	}
 739  	if n, err = sqlgraph.UpdateNodes(ctx, fu.driver, _spec); err != nil {
 740  		if _, ok := err.(*sqlgraph.NotFoundError); ok {
 741  			err = &NotFoundError{feed.Label}
 742  		} else if sqlgraph.IsConstraintError(err) {
 743  			err = &ConstraintError{msg: err.Error(), wrap: err}
 744  		}
 745  		return 0, err
 746  	}
 747  	fu.mutation.done = true
 748  	return n, nil
 749  }
 750  
 751  // FeedUpdateOne is the builder for updating a single Feed entity.
 752  type FeedUpdateOne struct {
 753  	config
 754  	fields   []string
 755  	hooks    []Hook
 756  	mutation *FeedMutation
 757  }
 758  
 759  // SetURL sets the "url" field.
 760  func (fuo *FeedUpdateOne) SetURL(s string) *FeedUpdateOne {
 761  	fuo.mutation.SetURL(s)
 762  	return fuo
 763  }
 764  
 765  // SetNillableURL sets the "url" field if the given value is not nil.
 766  func (fuo *FeedUpdateOne) SetNillableURL(s *string) *FeedUpdateOne {
 767  	if s != nil {
 768  		fuo.SetURL(*s)
 769  	}
 770  	return fuo
 771  }
 772  
 773  // SetUsername sets the "username" field.
 774  func (fuo *FeedUpdateOne) SetUsername(s string) *FeedUpdateOne {
 775  	fuo.mutation.SetUsername(s)
 776  	return fuo
 777  }
 778  
 779  // SetNillableUsername sets the "username" field if the given value is not nil.
 780  func (fuo *FeedUpdateOne) SetNillableUsername(s *string) *FeedUpdateOne {
 781  	if s != nil {
 782  		fuo.SetUsername(*s)
 783  	}
 784  	return fuo
 785  }
 786  
 787  // SetPassword sets the "password" field.
 788  func (fuo *FeedUpdateOne) SetPassword(s string) *FeedUpdateOne {
 789  	fuo.mutation.SetPassword(s)
 790  	return fuo
 791  }
 792  
 793  // SetNillablePassword sets the "password" field if the given value is not nil.
 794  func (fuo *FeedUpdateOne) SetNillablePassword(s *string) *FeedUpdateOne {
 795  	if s != nil {
 796  		fuo.SetPassword(*s)
 797  	}
 798  	return fuo
 799  }
 800  
 801  // SetFeedTitle sets the "feed_title" field.
 802  func (fuo *FeedUpdateOne) SetFeedTitle(s string) *FeedUpdateOne {
 803  	fuo.mutation.SetFeedTitle(s)
 804  	return fuo
 805  }
 806  
 807  // SetNillableFeedTitle sets the "feed_title" field if the given value is not nil.
 808  func (fuo *FeedUpdateOne) SetNillableFeedTitle(s *string) *FeedUpdateOne {
 809  	if s != nil {
 810  		fuo.SetFeedTitle(*s)
 811  	}
 812  	return fuo
 813  }
 814  
 815  // SetFeedDescription sets the "feed_description" field.
 816  func (fuo *FeedUpdateOne) SetFeedDescription(s string) *FeedUpdateOne {
 817  	fuo.mutation.SetFeedDescription(s)
 818  	return fuo
 819  }
 820  
 821  // SetNillableFeedDescription sets the "feed_description" field if the given value is not nil.
 822  func (fuo *FeedUpdateOne) SetNillableFeedDescription(s *string) *FeedUpdateOne {
 823  	if s != nil {
 824  		fuo.SetFeedDescription(*s)
 825  	}
 826  	return fuo
 827  }
 828  
 829  // SetFeedLink sets the "feed_link" field.
 830  func (fuo *FeedUpdateOne) SetFeedLink(s string) *FeedUpdateOne {
 831  	fuo.mutation.SetFeedLink(s)
 832  	return fuo
 833  }
 834  
 835  // SetNillableFeedLink sets the "feed_link" field if the given value is not nil.
 836  func (fuo *FeedUpdateOne) SetNillableFeedLink(s *string) *FeedUpdateOne {
 837  	if s != nil {
 838  		fuo.SetFeedLink(*s)
 839  	}
 840  	return fuo
 841  }
 842  
 843  // SetFeedFeedLink sets the "feed_feed_link" field.
 844  func (fuo *FeedUpdateOne) SetFeedFeedLink(s string) *FeedUpdateOne {
 845  	fuo.mutation.SetFeedFeedLink(s)
 846  	return fuo
 847  }
 848  
 849  // SetNillableFeedFeedLink sets the "feed_feed_link" field if the given value is not nil.
 850  func (fuo *FeedUpdateOne) SetNillableFeedFeedLink(s *string) *FeedUpdateOne {
 851  	if s != nil {
 852  		fuo.SetFeedFeedLink(*s)
 853  	}
 854  	return fuo
 855  }
 856  
 857  // SetFeedUpdated sets the "feed_updated" field.
 858  func (fuo *FeedUpdateOne) SetFeedUpdated(t time.Time) *FeedUpdateOne {
 859  	fuo.mutation.SetFeedUpdated(t)
 860  	return fuo
 861  }
 862  
 863  // SetNillableFeedUpdated sets the "feed_updated" field if the given value is not nil.
 864  func (fuo *FeedUpdateOne) SetNillableFeedUpdated(t *time.Time) *FeedUpdateOne {
 865  	if t != nil {
 866  		fuo.SetFeedUpdated(*t)
 867  	}
 868  	return fuo
 869  }
 870  
 871  // SetFeedPublished sets the "feed_published" field.
 872  func (fuo *FeedUpdateOne) SetFeedPublished(t time.Time) *FeedUpdateOne {
 873  	fuo.mutation.SetFeedPublished(t)
 874  	return fuo
 875  }
 876  
 877  // SetNillableFeedPublished sets the "feed_published" field if the given value is not nil.
 878  func (fuo *FeedUpdateOne) SetNillableFeedPublished(t *time.Time) *FeedUpdateOne {
 879  	if t != nil {
 880  		fuo.SetFeedPublished(*t)
 881  	}
 882  	return fuo
 883  }
 884  
 885  // SetFeedAuthorName sets the "feed_author_name" field.
 886  func (fuo *FeedUpdateOne) SetFeedAuthorName(s string) *FeedUpdateOne {
 887  	fuo.mutation.SetFeedAuthorName(s)
 888  	return fuo
 889  }
 890  
 891  // SetNillableFeedAuthorName sets the "feed_author_name" field if the given value is not nil.
 892  func (fuo *FeedUpdateOne) SetNillableFeedAuthorName(s *string) *FeedUpdateOne {
 893  	if s != nil {
 894  		fuo.SetFeedAuthorName(*s)
 895  	}
 896  	return fuo
 897  }
 898  
 899  // ClearFeedAuthorName clears the value of the "feed_author_name" field.
 900  func (fuo *FeedUpdateOne) ClearFeedAuthorName() *FeedUpdateOne {
 901  	fuo.mutation.ClearFeedAuthorName()
 902  	return fuo
 903  }
 904  
 905  // SetFeedAuthorEmail sets the "feed_author_email" field.
 906  func (fuo *FeedUpdateOne) SetFeedAuthorEmail(s string) *FeedUpdateOne {
 907  	fuo.mutation.SetFeedAuthorEmail(s)
 908  	return fuo
 909  }
 910  
 911  // SetNillableFeedAuthorEmail sets the "feed_author_email" field if the given value is not nil.
 912  func (fuo *FeedUpdateOne) SetNillableFeedAuthorEmail(s *string) *FeedUpdateOne {
 913  	if s != nil {
 914  		fuo.SetFeedAuthorEmail(*s)
 915  	}
 916  	return fuo
 917  }
 918  
 919  // ClearFeedAuthorEmail clears the value of the "feed_author_email" field.
 920  func (fuo *FeedUpdateOne) ClearFeedAuthorEmail() *FeedUpdateOne {
 921  	fuo.mutation.ClearFeedAuthorEmail()
 922  	return fuo
 923  }
 924  
 925  // SetFeedLanguage sets the "feed_language" field.
 926  func (fuo *FeedUpdateOne) SetFeedLanguage(s string) *FeedUpdateOne {
 927  	fuo.mutation.SetFeedLanguage(s)
 928  	return fuo
 929  }
 930  
 931  // SetNillableFeedLanguage sets the "feed_language" field if the given value is not nil.
 932  func (fuo *FeedUpdateOne) SetNillableFeedLanguage(s *string) *FeedUpdateOne {
 933  	if s != nil {
 934  		fuo.SetFeedLanguage(*s)
 935  	}
 936  	return fuo
 937  }
 938  
 939  // SetFeedImageTitle sets the "feed_image_title" field.
 940  func (fuo *FeedUpdateOne) SetFeedImageTitle(s string) *FeedUpdateOne {
 941  	fuo.mutation.SetFeedImageTitle(s)
 942  	return fuo
 943  }
 944  
 945  // SetNillableFeedImageTitle sets the "feed_image_title" field if the given value is not nil.
 946  func (fuo *FeedUpdateOne) SetNillableFeedImageTitle(s *string) *FeedUpdateOne {
 947  	if s != nil {
 948  		fuo.SetFeedImageTitle(*s)
 949  	}
 950  	return fuo
 951  }
 952  
 953  // ClearFeedImageTitle clears the value of the "feed_image_title" field.
 954  func (fuo *FeedUpdateOne) ClearFeedImageTitle() *FeedUpdateOne {
 955  	fuo.mutation.ClearFeedImageTitle()
 956  	return fuo
 957  }
 958  
 959  // SetFeedImageURL sets the "feed_image_url" field.
 960  func (fuo *FeedUpdateOne) SetFeedImageURL(s string) *FeedUpdateOne {
 961  	fuo.mutation.SetFeedImageURL(s)
 962  	return fuo
 963  }
 964  
 965  // SetNillableFeedImageURL sets the "feed_image_url" field if the given value is not nil.
 966  func (fuo *FeedUpdateOne) SetNillableFeedImageURL(s *string) *FeedUpdateOne {
 967  	if s != nil {
 968  		fuo.SetFeedImageURL(*s)
 969  	}
 970  	return fuo
 971  }
 972  
 973  // ClearFeedImageURL clears the value of the "feed_image_url" field.
 974  func (fuo *FeedUpdateOne) ClearFeedImageURL() *FeedUpdateOne {
 975  	fuo.mutation.ClearFeedImageURL()
 976  	return fuo
 977  }
 978  
 979  // SetFeedCopyright sets the "feed_copyright" field.
 980  func (fuo *FeedUpdateOne) SetFeedCopyright(s string) *FeedUpdateOne {
 981  	fuo.mutation.SetFeedCopyright(s)
 982  	return fuo
 983  }
 984  
 985  // SetNillableFeedCopyright sets the "feed_copyright" field if the given value is not nil.
 986  func (fuo *FeedUpdateOne) SetNillableFeedCopyright(s *string) *FeedUpdateOne {
 987  	if s != nil {
 988  		fuo.SetFeedCopyright(*s)
 989  	}
 990  	return fuo
 991  }
 992  
 993  // SetFeedGenerator sets the "feed_generator" field.
 994  func (fuo *FeedUpdateOne) SetFeedGenerator(s string) *FeedUpdateOne {
 995  	fuo.mutation.SetFeedGenerator(s)
 996  	return fuo
 997  }
 998  
 999  // SetNillableFeedGenerator sets the "feed_generator" field if the given value is not nil.
1000  func (fuo *FeedUpdateOne) SetNillableFeedGenerator(s *string) *FeedUpdateOne {
1001  	if s != nil {
1002  		fuo.SetFeedGenerator(*s)
1003  	}
1004  	return fuo
1005  }
1006  
1007  // SetFeedCategories sets the "feed_categories" field.
1008  func (fuo *FeedUpdateOne) SetFeedCategories(s string) *FeedUpdateOne {
1009  	fuo.mutation.SetFeedCategories(s)
1010  	return fuo
1011  }
1012  
1013  // SetNillableFeedCategories sets the "feed_categories" field if the given value is not nil.
1014  func (fuo *FeedUpdateOne) SetNillableFeedCategories(s *string) *FeedUpdateOne {
1015  	if s != nil {
1016  		fuo.SetFeedCategories(*s)
1017  	}
1018  	return fuo
1019  }
1020  
1021  // SetCreatedAt sets the "created_at" field.
1022  func (fuo *FeedUpdateOne) SetCreatedAt(t time.Time) *FeedUpdateOne {
1023  	fuo.mutation.SetCreatedAt(t)
1024  	return fuo
1025  }
1026  
1027  // SetNillableCreatedAt sets the "created_at" field if the given value is not nil.
1028  func (fuo *FeedUpdateOne) SetNillableCreatedAt(t *time.Time) *FeedUpdateOne {
1029  	if t != nil {
1030  		fuo.SetCreatedAt(*t)
1031  	}
1032  	return fuo
1033  }
1034  
1035  // SetUpdatedAt sets the "updated_at" field.
1036  func (fuo *FeedUpdateOne) SetUpdatedAt(t time.Time) *FeedUpdateOne {
1037  	fuo.mutation.SetUpdatedAt(t)
1038  	return fuo
1039  }
1040  
1041  // SetDeletedAt sets the "deleted_at" field.
1042  func (fuo *FeedUpdateOne) SetDeletedAt(t time.Time) *FeedUpdateOne {
1043  	fuo.mutation.SetDeletedAt(t)
1044  	return fuo
1045  }
1046  
1047  // SetNillableDeletedAt sets the "deleted_at" field if the given value is not nil.
1048  func (fuo *FeedUpdateOne) SetNillableDeletedAt(t *time.Time) *FeedUpdateOne {
1049  	if t != nil {
1050  		fuo.SetDeletedAt(*t)
1051  	}
1052  	return fuo
1053  }
1054  
1055  // ClearDeletedAt clears the value of the "deleted_at" field.
1056  func (fuo *FeedUpdateOne) ClearDeletedAt() *FeedUpdateOne {
1057  	fuo.mutation.ClearDeletedAt()
1058  	return fuo
1059  }
1060  
1061  // AddItemIDs adds the "items" edge to the Item entity by IDs.
1062  func (fuo *FeedUpdateOne) AddItemIDs(ids ...uuid.UUID) *FeedUpdateOne {
1063  	fuo.mutation.AddItemIDs(ids...)
1064  	return fuo
1065  }
1066  
1067  // AddItems adds the "items" edges to the Item entity.
1068  func (fuo *FeedUpdateOne) AddItems(i ...*Item) *FeedUpdateOne {
1069  	ids := make([]uuid.UUID, len(i))
1070  	for j := range i {
1071  		ids[j] = i[j].ID
1072  	}
1073  	return fuo.AddItemIDs(ids...)
1074  }
1075  
1076  // AddSubscribedUserIDs adds the "subscribed_users" edge to the User entity by IDs.
1077  func (fuo *FeedUpdateOne) AddSubscribedUserIDs(ids ...uuid.UUID) *FeedUpdateOne {
1078  	fuo.mutation.AddSubscribedUserIDs(ids...)
1079  	return fuo
1080  }
1081  
1082  // AddSubscribedUsers adds the "subscribed_users" edges to the User entity.
1083  func (fuo *FeedUpdateOne) AddSubscribedUsers(u ...*User) *FeedUpdateOne {
1084  	ids := make([]uuid.UUID, len(u))
1085  	for i := range u {
1086  		ids[i] = u[i].ID
1087  	}
1088  	return fuo.AddSubscribedUserIDs(ids...)
1089  }
1090  
1091  // AddSubscriptionIDs adds the "subscriptions" edge to the Subscription entity by IDs.
1092  func (fuo *FeedUpdateOne) AddSubscriptionIDs(ids ...uuid.UUID) *FeedUpdateOne {
1093  	fuo.mutation.AddSubscriptionIDs(ids...)
1094  	return fuo
1095  }
1096  
1097  // AddSubscriptions adds the "subscriptions" edges to the Subscription entity.
1098  func (fuo *FeedUpdateOne) AddSubscriptions(s ...*Subscription) *FeedUpdateOne {
1099  	ids := make([]uuid.UUID, len(s))
1100  	for i := range s {
1101  		ids[i] = s[i].ID
1102  	}
1103  	return fuo.AddSubscriptionIDs(ids...)
1104  }
1105  
1106  // Mutation returns the FeedMutation object of the builder.
1107  func (fuo *FeedUpdateOne) Mutation() *FeedMutation {
1108  	return fuo.mutation
1109  }
1110  
1111  // ClearItems clears all "items" edges to the Item entity.
1112  func (fuo *FeedUpdateOne) ClearItems() *FeedUpdateOne {
1113  	fuo.mutation.ClearItems()
1114  	return fuo
1115  }
1116  
1117  // RemoveItemIDs removes the "items" edge to Item entities by IDs.
1118  func (fuo *FeedUpdateOne) RemoveItemIDs(ids ...uuid.UUID) *FeedUpdateOne {
1119  	fuo.mutation.RemoveItemIDs(ids...)
1120  	return fuo
1121  }
1122  
1123  // RemoveItems removes "items" edges to Item entities.
1124  func (fuo *FeedUpdateOne) RemoveItems(i ...*Item) *FeedUpdateOne {
1125  	ids := make([]uuid.UUID, len(i))
1126  	for j := range i {
1127  		ids[j] = i[j].ID
1128  	}
1129  	return fuo.RemoveItemIDs(ids...)
1130  }
1131  
1132  // ClearSubscribedUsers clears all "subscribed_users" edges to the User entity.
1133  func (fuo *FeedUpdateOne) ClearSubscribedUsers() *FeedUpdateOne {
1134  	fuo.mutation.ClearSubscribedUsers()
1135  	return fuo
1136  }
1137  
1138  // RemoveSubscribedUserIDs removes the "subscribed_users" edge to User entities by IDs.
1139  func (fuo *FeedUpdateOne) RemoveSubscribedUserIDs(ids ...uuid.UUID) *FeedUpdateOne {
1140  	fuo.mutation.RemoveSubscribedUserIDs(ids...)
1141  	return fuo
1142  }
1143  
1144  // RemoveSubscribedUsers removes "subscribed_users" edges to User entities.
1145  func (fuo *FeedUpdateOne) RemoveSubscribedUsers(u ...*User) *FeedUpdateOne {
1146  	ids := make([]uuid.UUID, len(u))
1147  	for i := range u {
1148  		ids[i] = u[i].ID
1149  	}
1150  	return fuo.RemoveSubscribedUserIDs(ids...)
1151  }
1152  
1153  // ClearSubscriptions clears all "subscriptions" edges to the Subscription entity.
1154  func (fuo *FeedUpdateOne) ClearSubscriptions() *FeedUpdateOne {
1155  	fuo.mutation.ClearSubscriptions()
1156  	return fuo
1157  }
1158  
1159  // RemoveSubscriptionIDs removes the "subscriptions" edge to Subscription entities by IDs.
1160  func (fuo *FeedUpdateOne) RemoveSubscriptionIDs(ids ...uuid.UUID) *FeedUpdateOne {
1161  	fuo.mutation.RemoveSubscriptionIDs(ids...)
1162  	return fuo
1163  }
1164  
1165  // RemoveSubscriptions removes "subscriptions" edges to Subscription entities.
1166  func (fuo *FeedUpdateOne) RemoveSubscriptions(s ...*Subscription) *FeedUpdateOne {
1167  	ids := make([]uuid.UUID, len(s))
1168  	for i := range s {
1169  		ids[i] = s[i].ID
1170  	}
1171  	return fuo.RemoveSubscriptionIDs(ids...)
1172  }
1173  
1174  // Where appends a list predicates to the FeedUpdate builder.
1175  func (fuo *FeedUpdateOne) Where(ps ...predicate.Feed) *FeedUpdateOne {
1176  	fuo.mutation.Where(ps...)
1177  	return fuo
1178  }
1179  
1180  // Select allows selecting one or more fields (columns) of the returned entity.
1181  // The default is selecting all fields defined in the entity schema.
1182  func (fuo *FeedUpdateOne) Select(field string, fields ...string) *FeedUpdateOne {
1183  	fuo.fields = append([]string{field}, fields...)
1184  	return fuo
1185  }
1186  
1187  // Save executes the query and returns the updated Feed entity.
1188  func (fuo *FeedUpdateOne) Save(ctx context.Context) (*Feed, error) {
1189  	fuo.defaults()
1190  	return withHooks(ctx, fuo.sqlSave, fuo.mutation, fuo.hooks)
1191  }
1192  
1193  // SaveX is like Save, but panics if an error occurs.
1194  func (fuo *FeedUpdateOne) SaveX(ctx context.Context) *Feed {
1195  	node, err := fuo.Save(ctx)
1196  	if err != nil {
1197  		panic(err)
1198  	}
1199  	return node
1200  }
1201  
1202  // Exec executes the query on the entity.
1203  func (fuo *FeedUpdateOne) Exec(ctx context.Context) error {
1204  	_, err := fuo.Save(ctx)
1205  	return err
1206  }
1207  
1208  // ExecX is like Exec, but panics if an error occurs.
1209  func (fuo *FeedUpdateOne) ExecX(ctx context.Context) {
1210  	if err := fuo.Exec(ctx); err != nil {
1211  		panic(err)
1212  	}
1213  }
1214  
1215  // defaults sets the default values of the builder before save.
1216  func (fuo *FeedUpdateOne) defaults() {
1217  	if _, ok := fuo.mutation.UpdatedAt(); !ok {
1218  		v := feed.UpdateDefaultUpdatedAt()
1219  		fuo.mutation.SetUpdatedAt(v)
1220  	}
1221  }
1222  
1223  // check runs all checks and user-defined validators on the builder.
1224  func (fuo *FeedUpdateOne) check() error {
1225  	if v, ok := fuo.mutation.URL(); ok {
1226  		if err := feed.URLValidator(v); err != nil {
1227  			return &ValidationError{Name: "url", err: fmt.Errorf(`ent: validator failed for field "Feed.url": %w`, err)}
1228  		}
1229  	}
1230  	return nil
1231  }
1232  
1233  func (fuo *FeedUpdateOne) sqlSave(ctx context.Context) (_node *Feed, err error) {
1234  	if err := fuo.check(); err != nil {
1235  		return _node, err
1236  	}
1237  	_spec := sqlgraph.NewUpdateSpec(feed.Table, feed.Columns, sqlgraph.NewFieldSpec(feed.FieldID, field.TypeUUID))
1238  	id, ok := fuo.mutation.ID()
1239  	if !ok {
1240  		return nil, &ValidationError{Name: "id", err: errors.New(`ent: missing "Feed.id" for update`)}
1241  	}
1242  	_spec.Node.ID.Value = id
1243  	if fields := fuo.fields; len(fields) > 0 {
1244  		_spec.Node.Columns = make([]string, 0, len(fields))
1245  		_spec.Node.Columns = append(_spec.Node.Columns, feed.FieldID)
1246  		for _, f := range fields {
1247  			if !feed.ValidColumn(f) {
1248  				return nil, &ValidationError{Name: f, err: fmt.Errorf("ent: invalid field %q for query", f)}
1249  			}
1250  			if f != feed.FieldID {
1251  				_spec.Node.Columns = append(_spec.Node.Columns, f)
1252  			}
1253  		}
1254  	}
1255  	if ps := fuo.mutation.predicates; len(ps) > 0 {
1256  		_spec.Predicate = func(selector *sql.Selector) {
1257  			for i := range ps {
1258  				ps[i](selector)
1259  			}
1260  		}
1261  	}
1262  	if value, ok := fuo.mutation.URL(); ok {
1263  		_spec.SetField(feed.FieldURL, field.TypeString, value)
1264  	}
1265  	if value, ok := fuo.mutation.Username(); ok {
1266  		_spec.SetField(feed.FieldUsername, field.TypeString, value)
1267  	}
1268  	if value, ok := fuo.mutation.Password(); ok {
1269  		_spec.SetField(feed.FieldPassword, field.TypeString, value)
1270  	}
1271  	if value, ok := fuo.mutation.FeedTitle(); ok {
1272  		_spec.SetField(feed.FieldFeedTitle, field.TypeString, value)
1273  	}
1274  	if value, ok := fuo.mutation.FeedDescription(); ok {
1275  		_spec.SetField(feed.FieldFeedDescription, field.TypeString, value)
1276  	}
1277  	if value, ok := fuo.mutation.FeedLink(); ok {
1278  		_spec.SetField(feed.FieldFeedLink, field.TypeString, value)
1279  	}
1280  	if value, ok := fuo.mutation.FeedFeedLink(); ok {
1281  		_spec.SetField(feed.FieldFeedFeedLink, field.TypeString, value)
1282  	}
1283  	if value, ok := fuo.mutation.FeedUpdated(); ok {
1284  		_spec.SetField(feed.FieldFeedUpdated, field.TypeTime, value)
1285  	}
1286  	if value, ok := fuo.mutation.FeedPublished(); ok {
1287  		_spec.SetField(feed.FieldFeedPublished, field.TypeTime, value)
1288  	}
1289  	if value, ok := fuo.mutation.FeedAuthorName(); ok {
1290  		_spec.SetField(feed.FieldFeedAuthorName, field.TypeString, value)
1291  	}
1292  	if fuo.mutation.FeedAuthorNameCleared() {
1293  		_spec.ClearField(feed.FieldFeedAuthorName, field.TypeString)
1294  	}
1295  	if value, ok := fuo.mutation.FeedAuthorEmail(); ok {
1296  		_spec.SetField(feed.FieldFeedAuthorEmail, field.TypeString, value)
1297  	}
1298  	if fuo.mutation.FeedAuthorEmailCleared() {
1299  		_spec.ClearField(feed.FieldFeedAuthorEmail, field.TypeString)
1300  	}
1301  	if value, ok := fuo.mutation.FeedLanguage(); ok {
1302  		_spec.SetField(feed.FieldFeedLanguage, field.TypeString, value)
1303  	}
1304  	if value, ok := fuo.mutation.FeedImageTitle(); ok {
1305  		_spec.SetField(feed.FieldFeedImageTitle, field.TypeString, value)
1306  	}
1307  	if fuo.mutation.FeedImageTitleCleared() {
1308  		_spec.ClearField(feed.FieldFeedImageTitle, field.TypeString)
1309  	}
1310  	if value, ok := fuo.mutation.FeedImageURL(); ok {
1311  		_spec.SetField(feed.FieldFeedImageURL, field.TypeString, value)
1312  	}
1313  	if fuo.mutation.FeedImageURLCleared() {
1314  		_spec.ClearField(feed.FieldFeedImageURL, field.TypeString)
1315  	}
1316  	if value, ok := fuo.mutation.FeedCopyright(); ok {
1317  		_spec.SetField(feed.FieldFeedCopyright, field.TypeString, value)
1318  	}
1319  	if value, ok := fuo.mutation.FeedGenerator(); ok {
1320  		_spec.SetField(feed.FieldFeedGenerator, field.TypeString, value)
1321  	}
1322  	if value, ok := fuo.mutation.FeedCategories(); ok {
1323  		_spec.SetField(feed.FieldFeedCategories, field.TypeString, value)
1324  	}
1325  	if value, ok := fuo.mutation.CreatedAt(); ok {
1326  		_spec.SetField(feed.FieldCreatedAt, field.TypeTime, value)
1327  	}
1328  	if value, ok := fuo.mutation.UpdatedAt(); ok {
1329  		_spec.SetField(feed.FieldUpdatedAt, field.TypeTime, value)
1330  	}
1331  	if value, ok := fuo.mutation.DeletedAt(); ok {
1332  		_spec.SetField(feed.FieldDeletedAt, field.TypeTime, value)
1333  	}
1334  	if fuo.mutation.DeletedAtCleared() {
1335  		_spec.ClearField(feed.FieldDeletedAt, field.TypeTime)
1336  	}
1337  	if fuo.mutation.ItemsCleared() {
1338  		edge := &sqlgraph.EdgeSpec{
1339  			Rel:     sqlgraph.O2M,
1340  			Inverse: false,
1341  			Table:   feed.ItemsTable,
1342  			Columns: []string{feed.ItemsColumn},
1343  			Bidi:    false,
1344  			Target: &sqlgraph.EdgeTarget{
1345  				IDSpec: sqlgraph.NewFieldSpec(item.FieldID, field.TypeUUID),
1346  			},
1347  		}
1348  		_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
1349  	}
1350  	if nodes := fuo.mutation.RemovedItemsIDs(); len(nodes) > 0 && !fuo.mutation.ItemsCleared() {
1351  		edge := &sqlgraph.EdgeSpec{
1352  			Rel:     sqlgraph.O2M,
1353  			Inverse: false,
1354  			Table:   feed.ItemsTable,
1355  			Columns: []string{feed.ItemsColumn},
1356  			Bidi:    false,
1357  			Target: &sqlgraph.EdgeTarget{
1358  				IDSpec: sqlgraph.NewFieldSpec(item.FieldID, field.TypeUUID),
1359  			},
1360  		}
1361  		for _, k := range nodes {
1362  			edge.Target.Nodes = append(edge.Target.Nodes, k)
1363  		}
1364  		_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
1365  	}
1366  	if nodes := fuo.mutation.ItemsIDs(); len(nodes) > 0 {
1367  		edge := &sqlgraph.EdgeSpec{
1368  			Rel:     sqlgraph.O2M,
1369  			Inverse: false,
1370  			Table:   feed.ItemsTable,
1371  			Columns: []string{feed.ItemsColumn},
1372  			Bidi:    false,
1373  			Target: &sqlgraph.EdgeTarget{
1374  				IDSpec: sqlgraph.NewFieldSpec(item.FieldID, field.TypeUUID),
1375  			},
1376  		}
1377  		for _, k := range nodes {
1378  			edge.Target.Nodes = append(edge.Target.Nodes, k)
1379  		}
1380  		_spec.Edges.Add = append(_spec.Edges.Add, edge)
1381  	}
1382  	if fuo.mutation.SubscribedUsersCleared() {
1383  		edge := &sqlgraph.EdgeSpec{
1384  			Rel:     sqlgraph.M2M,
1385  			Inverse: true,
1386  			Table:   feed.SubscribedUsersTable,
1387  			Columns: feed.SubscribedUsersPrimaryKey,
1388  			Bidi:    false,
1389  			Target: &sqlgraph.EdgeTarget{
1390  				IDSpec: sqlgraph.NewFieldSpec(user.FieldID, field.TypeUUID),
1391  			},
1392  		}
1393  		createE := &SubscriptionCreate{config: fuo.config, mutation: newSubscriptionMutation(fuo.config, OpCreate)}
1394  		createE.defaults()
1395  		_, specE := createE.createSpec()
1396  		edge.Target.Fields = specE.Fields
1397  		if specE.ID.Value != nil {
1398  			edge.Target.Fields = append(edge.Target.Fields, specE.ID)
1399  		}
1400  		_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
1401  	}
1402  	if nodes := fuo.mutation.RemovedSubscribedUsersIDs(); len(nodes) > 0 && !fuo.mutation.SubscribedUsersCleared() {
1403  		edge := &sqlgraph.EdgeSpec{
1404  			Rel:     sqlgraph.M2M,
1405  			Inverse: true,
1406  			Table:   feed.SubscribedUsersTable,
1407  			Columns: feed.SubscribedUsersPrimaryKey,
1408  			Bidi:    false,
1409  			Target: &sqlgraph.EdgeTarget{
1410  				IDSpec: sqlgraph.NewFieldSpec(user.FieldID, field.TypeUUID),
1411  			},
1412  		}
1413  		for _, k := range nodes {
1414  			edge.Target.Nodes = append(edge.Target.Nodes, k)
1415  		}
1416  		createE := &SubscriptionCreate{config: fuo.config, mutation: newSubscriptionMutation(fuo.config, OpCreate)}
1417  		createE.defaults()
1418  		_, specE := createE.createSpec()
1419  		edge.Target.Fields = specE.Fields
1420  		if specE.ID.Value != nil {
1421  			edge.Target.Fields = append(edge.Target.Fields, specE.ID)
1422  		}
1423  		_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
1424  	}
1425  	if nodes := fuo.mutation.SubscribedUsersIDs(); len(nodes) > 0 {
1426  		edge := &sqlgraph.EdgeSpec{
1427  			Rel:     sqlgraph.M2M,
1428  			Inverse: true,
1429  			Table:   feed.SubscribedUsersTable,
1430  			Columns: feed.SubscribedUsersPrimaryKey,
1431  			Bidi:    false,
1432  			Target: &sqlgraph.EdgeTarget{
1433  				IDSpec: sqlgraph.NewFieldSpec(user.FieldID, field.TypeUUID),
1434  			},
1435  		}
1436  		for _, k := range nodes {
1437  			edge.Target.Nodes = append(edge.Target.Nodes, k)
1438  		}
1439  		createE := &SubscriptionCreate{config: fuo.config, mutation: newSubscriptionMutation(fuo.config, OpCreate)}
1440  		createE.defaults()
1441  		_, specE := createE.createSpec()
1442  		edge.Target.Fields = specE.Fields
1443  		if specE.ID.Value != nil {
1444  			edge.Target.Fields = append(edge.Target.Fields, specE.ID)
1445  		}
1446  		_spec.Edges.Add = append(_spec.Edges.Add, edge)
1447  	}
1448  	if fuo.mutation.SubscriptionsCleared() {
1449  		edge := &sqlgraph.EdgeSpec{
1450  			Rel:     sqlgraph.O2M,
1451  			Inverse: true,
1452  			Table:   feed.SubscriptionsTable,
1453  			Columns: []string{feed.SubscriptionsColumn},
1454  			Bidi:    false,
1455  			Target: &sqlgraph.EdgeTarget{
1456  				IDSpec: sqlgraph.NewFieldSpec(subscription.FieldID, field.TypeUUID),
1457  			},
1458  		}
1459  		_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
1460  	}
1461  	if nodes := fuo.mutation.RemovedSubscriptionsIDs(); len(nodes) > 0 && !fuo.mutation.SubscriptionsCleared() {
1462  		edge := &sqlgraph.EdgeSpec{
1463  			Rel:     sqlgraph.O2M,
1464  			Inverse: true,
1465  			Table:   feed.SubscriptionsTable,
1466  			Columns: []string{feed.SubscriptionsColumn},
1467  			Bidi:    false,
1468  			Target: &sqlgraph.EdgeTarget{
1469  				IDSpec: sqlgraph.NewFieldSpec(subscription.FieldID, field.TypeUUID),
1470  			},
1471  		}
1472  		for _, k := range nodes {
1473  			edge.Target.Nodes = append(edge.Target.Nodes, k)
1474  		}
1475  		_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
1476  	}
1477  	if nodes := fuo.mutation.SubscriptionsIDs(); len(nodes) > 0 {
1478  		edge := &sqlgraph.EdgeSpec{
1479  			Rel:     sqlgraph.O2M,
1480  			Inverse: true,
1481  			Table:   feed.SubscriptionsTable,
1482  			Columns: []string{feed.SubscriptionsColumn},
1483  			Bidi:    false,
1484  			Target: &sqlgraph.EdgeTarget{
1485  				IDSpec: sqlgraph.NewFieldSpec(subscription.FieldID, field.TypeUUID),
1486  			},
1487  		}
1488  		for _, k := range nodes {
1489  			edge.Target.Nodes = append(edge.Target.Nodes, k)
1490  		}
1491  		_spec.Edges.Add = append(_spec.Edges.Add, edge)
1492  	}
1493  	_node = &Feed{config: fuo.config}
1494  	_spec.Assign = _node.assignValues
1495  	_spec.ScanValues = _node.scanValues
1496  	if err = sqlgraph.UpdateNode(ctx, fuo.driver, _spec); err != nil {
1497  		if _, ok := err.(*sqlgraph.NotFoundError); ok {
1498  			err = &NotFoundError{feed.Label}
1499  		} else if sqlgraph.IsConstraintError(err) {
1500  			err = &ConstraintError{msg: err.Error(), wrap: err}
1501  		}
1502  		return nil, err
1503  	}
1504  	fuo.mutation.done = true
1505  	return _node, nil
1506  }