// Code generated by entc, DO NOT EDIT. package ent import ( "fmt" "strings" "time" "code.icod.de/postfix/manager/ent/domain" "entgo.io/ent/dialect/sql" ) // Domain is the model entity for the Domain schema. type Domain struct { config `json:"-"` // ID of the ent. ID int64 `json:"id,omitempty"` // Created holds the value of the "created" field. Created time.Time `json:"created,omitempty"` // Modified holds the value of the "modified" field. Modified *time.Time `json:"modified,omitempty"` // Domain holds the value of the "domain" field. Domain string `json:"domain,omitempty"` // Description holds the value of the "description" field. Description *string `json:"description,omitempty"` // MaxAliases holds the value of the "max_aliases" field. MaxAliases int64 `json:"max_aliases,omitempty"` // MaxMailboxes holds the value of the "max_mailboxes" field. MaxMailboxes int64 `json:"max_mailboxes,omitempty"` // MaxQuota holds the value of the "max_quota" field. MaxQuota int64 `json:"max_quota,omitempty"` // Quota holds the value of the "quota" field. Quota int64 `json:"quota,omitempty"` // Transport holds the value of the "transport" field. Transport string `json:"transport,omitempty"` // BackupMx holds the value of the "backup_mx" field. BackupMx bool `json:"backup_mx,omitempty"` // Active holds the value of the "active" field. Active bool `json:"active,omitempty"` // Edges holds the relations/edges for other nodes in the graph. // The values are being populated by the DomainQuery when eager-loading is set. Edges DomainEdges `json:"edges"` } // DomainEdges holds the relations/edges for other nodes in the graph. type DomainEdges struct { // Mailboxes holds the value of the mailboxes edge. Mailboxes []*Mailbox `json:"mailboxes,omitempty"` // Aliases holds the value of the aliases edge. Aliases []*Alias `json:"aliases,omitempty"` // Logs holds the value of the logs edge. Logs []*Logentry `json:"logs,omitempty"` // Accounts holds the value of the accounts edge. Accounts []*Account `json:"accounts,omitempty"` // loadedTypes holds the information for reporting if a // type was loaded (or requested) in eager-loading or not. loadedTypes [4]bool } // MailboxesOrErr returns the Mailboxes value or an error if the edge // was not loaded in eager-loading. func (e DomainEdges) MailboxesOrErr() ([]*Mailbox, error) { if e.loadedTypes[0] { return e.Mailboxes, nil } return nil, &NotLoadedError{edge: "mailboxes"} } // AliasesOrErr returns the Aliases value or an error if the edge // was not loaded in eager-loading. func (e DomainEdges) AliasesOrErr() ([]*Alias, error) { if e.loadedTypes[1] { return e.Aliases, nil } return nil, &NotLoadedError{edge: "aliases"} } // LogsOrErr returns the Logs value or an error if the edge // was not loaded in eager-loading. func (e DomainEdges) LogsOrErr() ([]*Logentry, error) { if e.loadedTypes[2] { return e.Logs, nil } return nil, &NotLoadedError{edge: "logs"} } // AccountsOrErr returns the Accounts value or an error if the edge // was not loaded in eager-loading. func (e DomainEdges) AccountsOrErr() ([]*Account, error) { if e.loadedTypes[3] { return e.Accounts, nil } return nil, &NotLoadedError{edge: "accounts"} } // scanValues returns the types for scanning values from sql.Rows. func (*Domain) scanValues(columns []string) ([]interface{}, error) { values := make([]interface{}, len(columns)) for i := range columns { switch columns[i] { case domain.FieldBackupMx, domain.FieldActive: values[i] = new(sql.NullBool) case domain.FieldID, domain.FieldMaxAliases, domain.FieldMaxMailboxes, domain.FieldMaxQuota, domain.FieldQuota: values[i] = new(sql.NullInt64) case domain.FieldDomain, domain.FieldDescription, domain.FieldTransport: values[i] = new(sql.NullString) case domain.FieldCreated, domain.FieldModified: values[i] = new(sql.NullTime) default: return nil, fmt.Errorf("unexpected column %q for type Domain", columns[i]) } } return values, nil } // assignValues assigns the values that were returned from sql.Rows (after scanning) // to the Domain fields. func (d *Domain) assignValues(columns []string, values []interface{}) error { if m, n := len(values), len(columns); m < n { return fmt.Errorf("mismatch number of scan values: %d != %d", m, n) } for i := range columns { switch columns[i] { case domain.FieldID: value, ok := values[i].(*sql.NullInt64) if !ok { return fmt.Errorf("unexpected type %T for field id", value) } d.ID = int64(value.Int64) case domain.FieldCreated: if value, ok := values[i].(*sql.NullTime); !ok { return fmt.Errorf("unexpected type %T for field created", values[i]) } else if value.Valid { d.Created = value.Time } case domain.FieldModified: if value, ok := values[i].(*sql.NullTime); !ok { return fmt.Errorf("unexpected type %T for field modified", values[i]) } else if value.Valid { d.Modified = new(time.Time) *d.Modified = value.Time } case domain.FieldDomain: if value, ok := values[i].(*sql.NullString); !ok { return fmt.Errorf("unexpected type %T for field domain", values[i]) } else if value.Valid { d.Domain = value.String } case domain.FieldDescription: if value, ok := values[i].(*sql.NullString); !ok { return fmt.Errorf("unexpected type %T for field description", values[i]) } else if value.Valid { d.Description = new(string) *d.Description = value.String } case domain.FieldMaxAliases: if value, ok := values[i].(*sql.NullInt64); !ok { return fmt.Errorf("unexpected type %T for field max_aliases", values[i]) } else if value.Valid { d.MaxAliases = value.Int64 } case domain.FieldMaxMailboxes: if value, ok := values[i].(*sql.NullInt64); !ok { return fmt.Errorf("unexpected type %T for field max_mailboxes", values[i]) } else if value.Valid { d.MaxMailboxes = value.Int64 } case domain.FieldMaxQuota: if value, ok := values[i].(*sql.NullInt64); !ok { return fmt.Errorf("unexpected type %T for field max_quota", values[i]) } else if value.Valid { d.MaxQuota = value.Int64 } case domain.FieldQuota: if value, ok := values[i].(*sql.NullInt64); !ok { return fmt.Errorf("unexpected type %T for field quota", values[i]) } else if value.Valid { d.Quota = value.Int64 } case domain.FieldTransport: if value, ok := values[i].(*sql.NullString); !ok { return fmt.Errorf("unexpected type %T for field transport", values[i]) } else if value.Valid { d.Transport = value.String } case domain.FieldBackupMx: if value, ok := values[i].(*sql.NullBool); !ok { return fmt.Errorf("unexpected type %T for field backup_mx", values[i]) } else if value.Valid { d.BackupMx = value.Bool } case domain.FieldActive: if value, ok := values[i].(*sql.NullBool); !ok { return fmt.Errorf("unexpected type %T for field active", values[i]) } else if value.Valid { d.Active = value.Bool } } } return nil } // QueryMailboxes queries the "mailboxes" edge of the Domain entity. func (d *Domain) QueryMailboxes() *MailboxQuery { return (&DomainClient{config: d.config}).QueryMailboxes(d) } // QueryAliases queries the "aliases" edge of the Domain entity. func (d *Domain) QueryAliases() *AliasQuery { return (&DomainClient{config: d.config}).QueryAliases(d) } // QueryLogs queries the "logs" edge of the Domain entity. func (d *Domain) QueryLogs() *LogentryQuery { return (&DomainClient{config: d.config}).QueryLogs(d) } // QueryAccounts queries the "accounts" edge of the Domain entity. func (d *Domain) QueryAccounts() *AccountQuery { return (&DomainClient{config: d.config}).QueryAccounts(d) } // Update returns a builder for updating this Domain. // Note that you need to call Domain.Unwrap() before calling this method if this Domain // was returned from a transaction, and the transaction was committed or rolled back. func (d *Domain) Update() *DomainUpdateOne { return (&DomainClient{config: d.config}).UpdateOne(d) } // Unwrap unwraps the Domain entity that was returned from a transaction after it was closed, // so that all future queries will be executed through the driver which created the transaction. func (d *Domain) Unwrap() *Domain { tx, ok := d.config.driver.(*txDriver) if !ok { panic("ent: Domain is not a transactional entity") } d.config.driver = tx.drv return d } // String implements the fmt.Stringer. func (d *Domain) String() string { var builder strings.Builder builder.WriteString("Domain(") builder.WriteString(fmt.Sprintf("id=%v", d.ID)) builder.WriteString(", created=") builder.WriteString(d.Created.Format(time.ANSIC)) if v := d.Modified; v != nil { builder.WriteString(", modified=") builder.WriteString(v.Format(time.ANSIC)) } builder.WriteString(", domain=") builder.WriteString(d.Domain) if v := d.Description; v != nil { builder.WriteString(", description=") builder.WriteString(*v) } builder.WriteString(", max_aliases=") builder.WriteString(fmt.Sprintf("%v", d.MaxAliases)) builder.WriteString(", max_mailboxes=") builder.WriteString(fmt.Sprintf("%v", d.MaxMailboxes)) builder.WriteString(", max_quota=") builder.WriteString(fmt.Sprintf("%v", d.MaxQuota)) builder.WriteString(", quota=") builder.WriteString(fmt.Sprintf("%v", d.Quota)) builder.WriteString(", transport=") builder.WriteString(d.Transport) builder.WriteString(", backup_mx=") builder.WriteString(fmt.Sprintf("%v", d.BackupMx)) builder.WriteString(", active=") builder.WriteString(fmt.Sprintf("%v", d.Active)) builder.WriteByte(')') return builder.String() } // Domains is a parsable slice of Domain. type Domains []*Domain func (d Domains) config(cfg config) { for _i := range d { d[_i].config = cfg } }