// Code generated by ent, DO NOT EDIT. package ent import ( "context" "errors" "fmt" "time" "code.icod.de/postfix/manager/ent/account" "code.icod.de/postfix/manager/ent/alias" "code.icod.de/postfix/manager/ent/domain" "code.icod.de/postfix/manager/ent/logentry" "code.icod.de/postfix/manager/ent/mailbox" "code.icod.de/postfix/manager/ent/predicate" "entgo.io/ent/dialect/sql" "entgo.io/ent/dialect/sql/sqlgraph" "entgo.io/ent/schema/field" ) // DomainUpdate is the builder for updating Domain entities. type DomainUpdate struct { config hooks []Hook mutation *DomainMutation } // Where appends a list predicates to the DomainUpdate builder. func (du *DomainUpdate) Where(ps ...predicate.Domain) *DomainUpdate { du.mutation.Where(ps...) return du } // SetModified sets the "modified" field. func (du *DomainUpdate) SetModified(t time.Time) *DomainUpdate { du.mutation.SetModified(t) return du } // ClearModified clears the value of the "modified" field. func (du *DomainUpdate) ClearModified() *DomainUpdate { du.mutation.ClearModified() return du } // SetDomain sets the "domain" field. func (du *DomainUpdate) SetDomain(s string) *DomainUpdate { du.mutation.SetDomain(s) return du } // SetNillableDomain sets the "domain" field if the given value is not nil. func (du *DomainUpdate) SetNillableDomain(s *string) *DomainUpdate { if s != nil { du.SetDomain(*s) } return du } // SetDescription sets the "description" field. func (du *DomainUpdate) SetDescription(s string) *DomainUpdate { du.mutation.SetDescription(s) return du } // SetNillableDescription sets the "description" field if the given value is not nil. func (du *DomainUpdate) SetNillableDescription(s *string) *DomainUpdate { if s != nil { du.SetDescription(*s) } return du } // ClearDescription clears the value of the "description" field. func (du *DomainUpdate) ClearDescription() *DomainUpdate { du.mutation.ClearDescription() return du } // SetMaxAliases sets the "max_aliases" field. func (du *DomainUpdate) SetMaxAliases(i int64) *DomainUpdate { du.mutation.ResetMaxAliases() du.mutation.SetMaxAliases(i) return du } // SetNillableMaxAliases sets the "max_aliases" field if the given value is not nil. func (du *DomainUpdate) SetNillableMaxAliases(i *int64) *DomainUpdate { if i != nil { du.SetMaxAliases(*i) } return du } // AddMaxAliases adds i to the "max_aliases" field. func (du *DomainUpdate) AddMaxAliases(i int64) *DomainUpdate { du.mutation.AddMaxAliases(i) return du } // SetMaxMailboxes sets the "max_mailboxes" field. func (du *DomainUpdate) SetMaxMailboxes(i int64) *DomainUpdate { du.mutation.ResetMaxMailboxes() du.mutation.SetMaxMailboxes(i) return du } // SetNillableMaxMailboxes sets the "max_mailboxes" field if the given value is not nil. func (du *DomainUpdate) SetNillableMaxMailboxes(i *int64) *DomainUpdate { if i != nil { du.SetMaxMailboxes(*i) } return du } // AddMaxMailboxes adds i to the "max_mailboxes" field. func (du *DomainUpdate) AddMaxMailboxes(i int64) *DomainUpdate { du.mutation.AddMaxMailboxes(i) return du } // SetMaxQuota sets the "max_quota" field. func (du *DomainUpdate) SetMaxQuota(i int64) *DomainUpdate { du.mutation.ResetMaxQuota() du.mutation.SetMaxQuota(i) return du } // SetNillableMaxQuota sets the "max_quota" field if the given value is not nil. func (du *DomainUpdate) SetNillableMaxQuota(i *int64) *DomainUpdate { if i != nil { du.SetMaxQuota(*i) } return du } // AddMaxQuota adds i to the "max_quota" field. func (du *DomainUpdate) AddMaxQuota(i int64) *DomainUpdate { du.mutation.AddMaxQuota(i) return du } // SetQuota sets the "quota" field. func (du *DomainUpdate) SetQuota(i int64) *DomainUpdate { du.mutation.ResetQuota() du.mutation.SetQuota(i) return du } // SetNillableQuota sets the "quota" field if the given value is not nil. func (du *DomainUpdate) SetNillableQuota(i *int64) *DomainUpdate { if i != nil { du.SetQuota(*i) } return du } // AddQuota adds i to the "quota" field. func (du *DomainUpdate) AddQuota(i int64) *DomainUpdate { du.mutation.AddQuota(i) return du } // SetTransport sets the "transport" field. func (du *DomainUpdate) SetTransport(s string) *DomainUpdate { du.mutation.SetTransport(s) return du } // SetNillableTransport sets the "transport" field if the given value is not nil. func (du *DomainUpdate) SetNillableTransport(s *string) *DomainUpdate { if s != nil { du.SetTransport(*s) } return du } // SetBackupMx sets the "backup_mx" field. func (du *DomainUpdate) SetBackupMx(b bool) *DomainUpdate { du.mutation.SetBackupMx(b) return du } // SetNillableBackupMx sets the "backup_mx" field if the given value is not nil. func (du *DomainUpdate) SetNillableBackupMx(b *bool) *DomainUpdate { if b != nil { du.SetBackupMx(*b) } return du } // SetActive sets the "active" field. func (du *DomainUpdate) SetActive(b bool) *DomainUpdate { du.mutation.SetActive(b) return du } // SetNillableActive sets the "active" field if the given value is not nil. func (du *DomainUpdate) SetNillableActive(b *bool) *DomainUpdate { if b != nil { du.SetActive(*b) } return du } // AddMailboxIDs adds the "mailboxes" edge to the Mailbox entity by IDs. func (du *DomainUpdate) AddMailboxIDs(ids ...int64) *DomainUpdate { du.mutation.AddMailboxIDs(ids...) return du } // AddMailboxes adds the "mailboxes" edges to the Mailbox entity. func (du *DomainUpdate) AddMailboxes(m ...*Mailbox) *DomainUpdate { ids := make([]int64, len(m)) for i := range m { ids[i] = m[i].ID } return du.AddMailboxIDs(ids...) } // AddAliasIDs adds the "aliases" edge to the Alias entity by IDs. func (du *DomainUpdate) AddAliasIDs(ids ...int64) *DomainUpdate { du.mutation.AddAliasIDs(ids...) return du } // AddAliases adds the "aliases" edges to the Alias entity. func (du *DomainUpdate) AddAliases(a ...*Alias) *DomainUpdate { ids := make([]int64, len(a)) for i := range a { ids[i] = a[i].ID } return du.AddAliasIDs(ids...) } // AddLogIDs adds the "logs" edge to the Logentry entity by IDs. func (du *DomainUpdate) AddLogIDs(ids ...int64) *DomainUpdate { du.mutation.AddLogIDs(ids...) return du } // AddLogs adds the "logs" edges to the Logentry entity. func (du *DomainUpdate) AddLogs(l ...*Logentry) *DomainUpdate { ids := make([]int64, len(l)) for i := range l { ids[i] = l[i].ID } return du.AddLogIDs(ids...) } // AddAccountIDs adds the "accounts" edge to the Account entity by IDs. func (du *DomainUpdate) AddAccountIDs(ids ...int64) *DomainUpdate { du.mutation.AddAccountIDs(ids...) return du } // AddAccounts adds the "accounts" edges to the Account entity. func (du *DomainUpdate) AddAccounts(a ...*Account) *DomainUpdate { ids := make([]int64, len(a)) for i := range a { ids[i] = a[i].ID } return du.AddAccountIDs(ids...) } // Mutation returns the DomainMutation object of the builder. func (du *DomainUpdate) Mutation() *DomainMutation { return du.mutation } // ClearMailboxes clears all "mailboxes" edges to the Mailbox entity. func (du *DomainUpdate) ClearMailboxes() *DomainUpdate { du.mutation.ClearMailboxes() return du } // RemoveMailboxIDs removes the "mailboxes" edge to Mailbox entities by IDs. func (du *DomainUpdate) RemoveMailboxIDs(ids ...int64) *DomainUpdate { du.mutation.RemoveMailboxIDs(ids...) return du } // RemoveMailboxes removes "mailboxes" edges to Mailbox entities. func (du *DomainUpdate) RemoveMailboxes(m ...*Mailbox) *DomainUpdate { ids := make([]int64, len(m)) for i := range m { ids[i] = m[i].ID } return du.RemoveMailboxIDs(ids...) } // ClearAliases clears all "aliases" edges to the Alias entity. func (du *DomainUpdate) ClearAliases() *DomainUpdate { du.mutation.ClearAliases() return du } // RemoveAliasIDs removes the "aliases" edge to Alias entities by IDs. func (du *DomainUpdate) RemoveAliasIDs(ids ...int64) *DomainUpdate { du.mutation.RemoveAliasIDs(ids...) return du } // RemoveAliases removes "aliases" edges to Alias entities. func (du *DomainUpdate) RemoveAliases(a ...*Alias) *DomainUpdate { ids := make([]int64, len(a)) for i := range a { ids[i] = a[i].ID } return du.RemoveAliasIDs(ids...) } // ClearLogs clears all "logs" edges to the Logentry entity. func (du *DomainUpdate) ClearLogs() *DomainUpdate { du.mutation.ClearLogs() return du } // RemoveLogIDs removes the "logs" edge to Logentry entities by IDs. func (du *DomainUpdate) RemoveLogIDs(ids ...int64) *DomainUpdate { du.mutation.RemoveLogIDs(ids...) return du } // RemoveLogs removes "logs" edges to Logentry entities. func (du *DomainUpdate) RemoveLogs(l ...*Logentry) *DomainUpdate { ids := make([]int64, len(l)) for i := range l { ids[i] = l[i].ID } return du.RemoveLogIDs(ids...) } // ClearAccounts clears all "accounts" edges to the Account entity. func (du *DomainUpdate) ClearAccounts() *DomainUpdate { du.mutation.ClearAccounts() return du } // RemoveAccountIDs removes the "accounts" edge to Account entities by IDs. func (du *DomainUpdate) RemoveAccountIDs(ids ...int64) *DomainUpdate { du.mutation.RemoveAccountIDs(ids...) return du } // RemoveAccounts removes "accounts" edges to Account entities. func (du *DomainUpdate) RemoveAccounts(a ...*Account) *DomainUpdate { ids := make([]int64, len(a)) for i := range a { ids[i] = a[i].ID } return du.RemoveAccountIDs(ids...) } // Save executes the query and returns the number of nodes affected by the update operation. func (du *DomainUpdate) Save(ctx context.Context) (int, error) { du.defaults() return withHooks(ctx, du.sqlSave, du.mutation, du.hooks) } // SaveX is like Save, but panics if an error occurs. func (du *DomainUpdate) SaveX(ctx context.Context) int { affected, err := du.Save(ctx) if err != nil { panic(err) } return affected } // Exec executes the query. func (du *DomainUpdate) Exec(ctx context.Context) error { _, err := du.Save(ctx) return err } // ExecX is like Exec, but panics if an error occurs. func (du *DomainUpdate) ExecX(ctx context.Context) { if err := du.Exec(ctx); err != nil { panic(err) } } // defaults sets the default values of the builder before save. func (du *DomainUpdate) defaults() { if _, ok := du.mutation.Modified(); !ok && !du.mutation.ModifiedCleared() { v := domain.UpdateDefaultModified() du.mutation.SetModified(v) } } func (du *DomainUpdate) sqlSave(ctx context.Context) (n int, err error) { _spec := sqlgraph.NewUpdateSpec(domain.Table, domain.Columns, sqlgraph.NewFieldSpec(domain.FieldID, field.TypeInt64)) if ps := du.mutation.predicates; len(ps) > 0 { _spec.Predicate = func(selector *sql.Selector) { for i := range ps { ps[i](selector) } } } if value, ok := du.mutation.Modified(); ok { _spec.SetField(domain.FieldModified, field.TypeTime, value) } if du.mutation.ModifiedCleared() { _spec.ClearField(domain.FieldModified, field.TypeTime) } if value, ok := du.mutation.Domain(); ok { _spec.SetField(domain.FieldDomain, field.TypeString, value) } if value, ok := du.mutation.Description(); ok { _spec.SetField(domain.FieldDescription, field.TypeString, value) } if du.mutation.DescriptionCleared() { _spec.ClearField(domain.FieldDescription, field.TypeString) } if value, ok := du.mutation.MaxAliases(); ok { _spec.SetField(domain.FieldMaxAliases, field.TypeInt64, value) } if value, ok := du.mutation.AddedMaxAliases(); ok { _spec.AddField(domain.FieldMaxAliases, field.TypeInt64, value) } if value, ok := du.mutation.MaxMailboxes(); ok { _spec.SetField(domain.FieldMaxMailboxes, field.TypeInt64, value) } if value, ok := du.mutation.AddedMaxMailboxes(); ok { _spec.AddField(domain.FieldMaxMailboxes, field.TypeInt64, value) } if value, ok := du.mutation.MaxQuota(); ok { _spec.SetField(domain.FieldMaxQuota, field.TypeInt64, value) } if value, ok := du.mutation.AddedMaxQuota(); ok { _spec.AddField(domain.FieldMaxQuota, field.TypeInt64, value) } if value, ok := du.mutation.Quota(); ok { _spec.SetField(domain.FieldQuota, field.TypeInt64, value) } if value, ok := du.mutation.AddedQuota(); ok { _spec.AddField(domain.FieldQuota, field.TypeInt64, value) } if value, ok := du.mutation.Transport(); ok { _spec.SetField(domain.FieldTransport, field.TypeString, value) } if value, ok := du.mutation.BackupMx(); ok { _spec.SetField(domain.FieldBackupMx, field.TypeBool, value) } if value, ok := du.mutation.Active(); ok { _spec.SetField(domain.FieldActive, field.TypeBool, value) } if du.mutation.MailboxesCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.MailboxesTable, Columns: []string{domain.MailboxesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(mailbox.FieldID, field.TypeInt64), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := du.mutation.RemovedMailboxesIDs(); len(nodes) > 0 && !du.mutation.MailboxesCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.MailboxesTable, Columns: []string{domain.MailboxesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(mailbox.FieldID, field.TypeInt64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := du.mutation.MailboxesIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.MailboxesTable, Columns: []string{domain.MailboxesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(mailbox.FieldID, field.TypeInt64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if du.mutation.AliasesCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.AliasesTable, Columns: []string{domain.AliasesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(alias.FieldID, field.TypeInt64), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := du.mutation.RemovedAliasesIDs(); len(nodes) > 0 && !du.mutation.AliasesCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.AliasesTable, Columns: []string{domain.AliasesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(alias.FieldID, field.TypeInt64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := du.mutation.AliasesIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.AliasesTable, Columns: []string{domain.AliasesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(alias.FieldID, field.TypeInt64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if du.mutation.LogsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.LogsTable, Columns: []string{domain.LogsColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(logentry.FieldID, field.TypeInt64), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := du.mutation.RemovedLogsIDs(); len(nodes) > 0 && !du.mutation.LogsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.LogsTable, Columns: []string{domain.LogsColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(logentry.FieldID, field.TypeInt64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := du.mutation.LogsIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.LogsTable, Columns: []string{domain.LogsColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(logentry.FieldID, field.TypeInt64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if du.mutation.AccountsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: domain.AccountsTable, Columns: domain.AccountsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(account.FieldID, field.TypeInt64), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := du.mutation.RemovedAccountsIDs(); len(nodes) > 0 && !du.mutation.AccountsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: domain.AccountsTable, Columns: domain.AccountsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(account.FieldID, field.TypeInt64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := du.mutation.AccountsIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: domain.AccountsTable, Columns: domain.AccountsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(account.FieldID, field.TypeInt64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if n, err = sqlgraph.UpdateNodes(ctx, du.driver, _spec); err != nil { if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{domain.Label} } else if sqlgraph.IsConstraintError(err) { err = &ConstraintError{msg: err.Error(), wrap: err} } return 0, err } du.mutation.done = true return n, nil } // DomainUpdateOne is the builder for updating a single Domain entity. type DomainUpdateOne struct { config fields []string hooks []Hook mutation *DomainMutation } // SetModified sets the "modified" field. func (duo *DomainUpdateOne) SetModified(t time.Time) *DomainUpdateOne { duo.mutation.SetModified(t) return duo } // ClearModified clears the value of the "modified" field. func (duo *DomainUpdateOne) ClearModified() *DomainUpdateOne { duo.mutation.ClearModified() return duo } // SetDomain sets the "domain" field. func (duo *DomainUpdateOne) SetDomain(s string) *DomainUpdateOne { duo.mutation.SetDomain(s) return duo } // SetNillableDomain sets the "domain" field if the given value is not nil. func (duo *DomainUpdateOne) SetNillableDomain(s *string) *DomainUpdateOne { if s != nil { duo.SetDomain(*s) } return duo } // SetDescription sets the "description" field. func (duo *DomainUpdateOne) SetDescription(s string) *DomainUpdateOne { duo.mutation.SetDescription(s) return duo } // SetNillableDescription sets the "description" field if the given value is not nil. func (duo *DomainUpdateOne) SetNillableDescription(s *string) *DomainUpdateOne { if s != nil { duo.SetDescription(*s) } return duo } // ClearDescription clears the value of the "description" field. func (duo *DomainUpdateOne) ClearDescription() *DomainUpdateOne { duo.mutation.ClearDescription() return duo } // SetMaxAliases sets the "max_aliases" field. func (duo *DomainUpdateOne) SetMaxAliases(i int64) *DomainUpdateOne { duo.mutation.ResetMaxAliases() duo.mutation.SetMaxAliases(i) return duo } // SetNillableMaxAliases sets the "max_aliases" field if the given value is not nil. func (duo *DomainUpdateOne) SetNillableMaxAliases(i *int64) *DomainUpdateOne { if i != nil { duo.SetMaxAliases(*i) } return duo } // AddMaxAliases adds i to the "max_aliases" field. func (duo *DomainUpdateOne) AddMaxAliases(i int64) *DomainUpdateOne { duo.mutation.AddMaxAliases(i) return duo } // SetMaxMailboxes sets the "max_mailboxes" field. func (duo *DomainUpdateOne) SetMaxMailboxes(i int64) *DomainUpdateOne { duo.mutation.ResetMaxMailboxes() duo.mutation.SetMaxMailboxes(i) return duo } // SetNillableMaxMailboxes sets the "max_mailboxes" field if the given value is not nil. func (duo *DomainUpdateOne) SetNillableMaxMailboxes(i *int64) *DomainUpdateOne { if i != nil { duo.SetMaxMailboxes(*i) } return duo } // AddMaxMailboxes adds i to the "max_mailboxes" field. func (duo *DomainUpdateOne) AddMaxMailboxes(i int64) *DomainUpdateOne { duo.mutation.AddMaxMailboxes(i) return duo } // SetMaxQuota sets the "max_quota" field. func (duo *DomainUpdateOne) SetMaxQuota(i int64) *DomainUpdateOne { duo.mutation.ResetMaxQuota() duo.mutation.SetMaxQuota(i) return duo } // SetNillableMaxQuota sets the "max_quota" field if the given value is not nil. func (duo *DomainUpdateOne) SetNillableMaxQuota(i *int64) *DomainUpdateOne { if i != nil { duo.SetMaxQuota(*i) } return duo } // AddMaxQuota adds i to the "max_quota" field. func (duo *DomainUpdateOne) AddMaxQuota(i int64) *DomainUpdateOne { duo.mutation.AddMaxQuota(i) return duo } // SetQuota sets the "quota" field. func (duo *DomainUpdateOne) SetQuota(i int64) *DomainUpdateOne { duo.mutation.ResetQuota() duo.mutation.SetQuota(i) return duo } // SetNillableQuota sets the "quota" field if the given value is not nil. func (duo *DomainUpdateOne) SetNillableQuota(i *int64) *DomainUpdateOne { if i != nil { duo.SetQuota(*i) } return duo } // AddQuota adds i to the "quota" field. func (duo *DomainUpdateOne) AddQuota(i int64) *DomainUpdateOne { duo.mutation.AddQuota(i) return duo } // SetTransport sets the "transport" field. func (duo *DomainUpdateOne) SetTransport(s string) *DomainUpdateOne { duo.mutation.SetTransport(s) return duo } // SetNillableTransport sets the "transport" field if the given value is not nil. func (duo *DomainUpdateOne) SetNillableTransport(s *string) *DomainUpdateOne { if s != nil { duo.SetTransport(*s) } return duo } // SetBackupMx sets the "backup_mx" field. func (duo *DomainUpdateOne) SetBackupMx(b bool) *DomainUpdateOne { duo.mutation.SetBackupMx(b) return duo } // SetNillableBackupMx sets the "backup_mx" field if the given value is not nil. func (duo *DomainUpdateOne) SetNillableBackupMx(b *bool) *DomainUpdateOne { if b != nil { duo.SetBackupMx(*b) } return duo } // SetActive sets the "active" field. func (duo *DomainUpdateOne) SetActive(b bool) *DomainUpdateOne { duo.mutation.SetActive(b) return duo } // SetNillableActive sets the "active" field if the given value is not nil. func (duo *DomainUpdateOne) SetNillableActive(b *bool) *DomainUpdateOne { if b != nil { duo.SetActive(*b) } return duo } // AddMailboxIDs adds the "mailboxes" edge to the Mailbox entity by IDs. func (duo *DomainUpdateOne) AddMailboxIDs(ids ...int64) *DomainUpdateOne { duo.mutation.AddMailboxIDs(ids...) return duo } // AddMailboxes adds the "mailboxes" edges to the Mailbox entity. func (duo *DomainUpdateOne) AddMailboxes(m ...*Mailbox) *DomainUpdateOne { ids := make([]int64, len(m)) for i := range m { ids[i] = m[i].ID } return duo.AddMailboxIDs(ids...) } // AddAliasIDs adds the "aliases" edge to the Alias entity by IDs. func (duo *DomainUpdateOne) AddAliasIDs(ids ...int64) *DomainUpdateOne { duo.mutation.AddAliasIDs(ids...) return duo } // AddAliases adds the "aliases" edges to the Alias entity. func (duo *DomainUpdateOne) AddAliases(a ...*Alias) *DomainUpdateOne { ids := make([]int64, len(a)) for i := range a { ids[i] = a[i].ID } return duo.AddAliasIDs(ids...) } // AddLogIDs adds the "logs" edge to the Logentry entity by IDs. func (duo *DomainUpdateOne) AddLogIDs(ids ...int64) *DomainUpdateOne { duo.mutation.AddLogIDs(ids...) return duo } // AddLogs adds the "logs" edges to the Logentry entity. func (duo *DomainUpdateOne) AddLogs(l ...*Logentry) *DomainUpdateOne { ids := make([]int64, len(l)) for i := range l { ids[i] = l[i].ID } return duo.AddLogIDs(ids...) } // AddAccountIDs adds the "accounts" edge to the Account entity by IDs. func (duo *DomainUpdateOne) AddAccountIDs(ids ...int64) *DomainUpdateOne { duo.mutation.AddAccountIDs(ids...) return duo } // AddAccounts adds the "accounts" edges to the Account entity. func (duo *DomainUpdateOne) AddAccounts(a ...*Account) *DomainUpdateOne { ids := make([]int64, len(a)) for i := range a { ids[i] = a[i].ID } return duo.AddAccountIDs(ids...) } // Mutation returns the DomainMutation object of the builder. func (duo *DomainUpdateOne) Mutation() *DomainMutation { return duo.mutation } // ClearMailboxes clears all "mailboxes" edges to the Mailbox entity. func (duo *DomainUpdateOne) ClearMailboxes() *DomainUpdateOne { duo.mutation.ClearMailboxes() return duo } // RemoveMailboxIDs removes the "mailboxes" edge to Mailbox entities by IDs. func (duo *DomainUpdateOne) RemoveMailboxIDs(ids ...int64) *DomainUpdateOne { duo.mutation.RemoveMailboxIDs(ids...) return duo } // RemoveMailboxes removes "mailboxes" edges to Mailbox entities. func (duo *DomainUpdateOne) RemoveMailboxes(m ...*Mailbox) *DomainUpdateOne { ids := make([]int64, len(m)) for i := range m { ids[i] = m[i].ID } return duo.RemoveMailboxIDs(ids...) } // ClearAliases clears all "aliases" edges to the Alias entity. func (duo *DomainUpdateOne) ClearAliases() *DomainUpdateOne { duo.mutation.ClearAliases() return duo } // RemoveAliasIDs removes the "aliases" edge to Alias entities by IDs. func (duo *DomainUpdateOne) RemoveAliasIDs(ids ...int64) *DomainUpdateOne { duo.mutation.RemoveAliasIDs(ids...) return duo } // RemoveAliases removes "aliases" edges to Alias entities. func (duo *DomainUpdateOne) RemoveAliases(a ...*Alias) *DomainUpdateOne { ids := make([]int64, len(a)) for i := range a { ids[i] = a[i].ID } return duo.RemoveAliasIDs(ids...) } // ClearLogs clears all "logs" edges to the Logentry entity. func (duo *DomainUpdateOne) ClearLogs() *DomainUpdateOne { duo.mutation.ClearLogs() return duo } // RemoveLogIDs removes the "logs" edge to Logentry entities by IDs. func (duo *DomainUpdateOne) RemoveLogIDs(ids ...int64) *DomainUpdateOne { duo.mutation.RemoveLogIDs(ids...) return duo } // RemoveLogs removes "logs" edges to Logentry entities. func (duo *DomainUpdateOne) RemoveLogs(l ...*Logentry) *DomainUpdateOne { ids := make([]int64, len(l)) for i := range l { ids[i] = l[i].ID } return duo.RemoveLogIDs(ids...) } // ClearAccounts clears all "accounts" edges to the Account entity. func (duo *DomainUpdateOne) ClearAccounts() *DomainUpdateOne { duo.mutation.ClearAccounts() return duo } // RemoveAccountIDs removes the "accounts" edge to Account entities by IDs. func (duo *DomainUpdateOne) RemoveAccountIDs(ids ...int64) *DomainUpdateOne { duo.mutation.RemoveAccountIDs(ids...) return duo } // RemoveAccounts removes "accounts" edges to Account entities. func (duo *DomainUpdateOne) RemoveAccounts(a ...*Account) *DomainUpdateOne { ids := make([]int64, len(a)) for i := range a { ids[i] = a[i].ID } return duo.RemoveAccountIDs(ids...) } // Where appends a list predicates to the DomainUpdate builder. func (duo *DomainUpdateOne) Where(ps ...predicate.Domain) *DomainUpdateOne { duo.mutation.Where(ps...) return duo } // Select allows selecting one or more fields (columns) of the returned entity. // The default is selecting all fields defined in the entity schema. func (duo *DomainUpdateOne) Select(field string, fields ...string) *DomainUpdateOne { duo.fields = append([]string{field}, fields...) return duo } // Save executes the query and returns the updated Domain entity. func (duo *DomainUpdateOne) Save(ctx context.Context) (*Domain, error) { duo.defaults() return withHooks(ctx, duo.sqlSave, duo.mutation, duo.hooks) } // SaveX is like Save, but panics if an error occurs. func (duo *DomainUpdateOne) SaveX(ctx context.Context) *Domain { node, err := duo.Save(ctx) if err != nil { panic(err) } return node } // Exec executes the query on the entity. func (duo *DomainUpdateOne) Exec(ctx context.Context) error { _, err := duo.Save(ctx) return err } // ExecX is like Exec, but panics if an error occurs. func (duo *DomainUpdateOne) ExecX(ctx context.Context) { if err := duo.Exec(ctx); err != nil { panic(err) } } // defaults sets the default values of the builder before save. func (duo *DomainUpdateOne) defaults() { if _, ok := duo.mutation.Modified(); !ok && !duo.mutation.ModifiedCleared() { v := domain.UpdateDefaultModified() duo.mutation.SetModified(v) } } func (duo *DomainUpdateOne) sqlSave(ctx context.Context) (_node *Domain, err error) { _spec := sqlgraph.NewUpdateSpec(domain.Table, domain.Columns, sqlgraph.NewFieldSpec(domain.FieldID, field.TypeInt64)) id, ok := duo.mutation.ID() if !ok { return nil, &ValidationError{Name: "id", err: errors.New(`ent: missing "Domain.id" for update`)} } _spec.Node.ID.Value = id if fields := duo.fields; len(fields) > 0 { _spec.Node.Columns = make([]string, 0, len(fields)) _spec.Node.Columns = append(_spec.Node.Columns, domain.FieldID) for _, f := range fields { if !domain.ValidColumn(f) { return nil, &ValidationError{Name: f, err: fmt.Errorf("ent: invalid field %q for query", f)} } if f != domain.FieldID { _spec.Node.Columns = append(_spec.Node.Columns, f) } } } if ps := duo.mutation.predicates; len(ps) > 0 { _spec.Predicate = func(selector *sql.Selector) { for i := range ps { ps[i](selector) } } } if value, ok := duo.mutation.Modified(); ok { _spec.SetField(domain.FieldModified, field.TypeTime, value) } if duo.mutation.ModifiedCleared() { _spec.ClearField(domain.FieldModified, field.TypeTime) } if value, ok := duo.mutation.Domain(); ok { _spec.SetField(domain.FieldDomain, field.TypeString, value) } if value, ok := duo.mutation.Description(); ok { _spec.SetField(domain.FieldDescription, field.TypeString, value) } if duo.mutation.DescriptionCleared() { _spec.ClearField(domain.FieldDescription, field.TypeString) } if value, ok := duo.mutation.MaxAliases(); ok { _spec.SetField(domain.FieldMaxAliases, field.TypeInt64, value) } if value, ok := duo.mutation.AddedMaxAliases(); ok { _spec.AddField(domain.FieldMaxAliases, field.TypeInt64, value) } if value, ok := duo.mutation.MaxMailboxes(); ok { _spec.SetField(domain.FieldMaxMailboxes, field.TypeInt64, value) } if value, ok := duo.mutation.AddedMaxMailboxes(); ok { _spec.AddField(domain.FieldMaxMailboxes, field.TypeInt64, value) } if value, ok := duo.mutation.MaxQuota(); ok { _spec.SetField(domain.FieldMaxQuota, field.TypeInt64, value) } if value, ok := duo.mutation.AddedMaxQuota(); ok { _spec.AddField(domain.FieldMaxQuota, field.TypeInt64, value) } if value, ok := duo.mutation.Quota(); ok { _spec.SetField(domain.FieldQuota, field.TypeInt64, value) } if value, ok := duo.mutation.AddedQuota(); ok { _spec.AddField(domain.FieldQuota, field.TypeInt64, value) } if value, ok := duo.mutation.Transport(); ok { _spec.SetField(domain.FieldTransport, field.TypeString, value) } if value, ok := duo.mutation.BackupMx(); ok { _spec.SetField(domain.FieldBackupMx, field.TypeBool, value) } if value, ok := duo.mutation.Active(); ok { _spec.SetField(domain.FieldActive, field.TypeBool, value) } if duo.mutation.MailboxesCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.MailboxesTable, Columns: []string{domain.MailboxesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(mailbox.FieldID, field.TypeInt64), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := duo.mutation.RemovedMailboxesIDs(); len(nodes) > 0 && !duo.mutation.MailboxesCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.MailboxesTable, Columns: []string{domain.MailboxesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(mailbox.FieldID, field.TypeInt64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := duo.mutation.MailboxesIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.MailboxesTable, Columns: []string{domain.MailboxesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(mailbox.FieldID, field.TypeInt64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if duo.mutation.AliasesCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.AliasesTable, Columns: []string{domain.AliasesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(alias.FieldID, field.TypeInt64), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := duo.mutation.RemovedAliasesIDs(); len(nodes) > 0 && !duo.mutation.AliasesCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.AliasesTable, Columns: []string{domain.AliasesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(alias.FieldID, field.TypeInt64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := duo.mutation.AliasesIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.AliasesTable, Columns: []string{domain.AliasesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(alias.FieldID, field.TypeInt64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if duo.mutation.LogsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.LogsTable, Columns: []string{domain.LogsColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(logentry.FieldID, field.TypeInt64), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := duo.mutation.RemovedLogsIDs(); len(nodes) > 0 && !duo.mutation.LogsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.LogsTable, Columns: []string{domain.LogsColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(logentry.FieldID, field.TypeInt64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := duo.mutation.LogsIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: domain.LogsTable, Columns: []string{domain.LogsColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(logentry.FieldID, field.TypeInt64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if duo.mutation.AccountsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: domain.AccountsTable, Columns: domain.AccountsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(account.FieldID, field.TypeInt64), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := duo.mutation.RemovedAccountsIDs(); len(nodes) > 0 && !duo.mutation.AccountsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: domain.AccountsTable, Columns: domain.AccountsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(account.FieldID, field.TypeInt64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := duo.mutation.AccountsIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: domain.AccountsTable, Columns: domain.AccountsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(account.FieldID, field.TypeInt64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } _node = &Domain{config: duo.config} _spec.Assign = _node.assignValues _spec.ScanValues = _node.scanValues if err = sqlgraph.UpdateNode(ctx, duo.driver, _spec); err != nil { if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{domain.Label} } else if sqlgraph.IsConstraintError(err) { err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } duo.mutation.done = true return _node, nil }