mirror of
https://github.com/ent/ent.git
synced 2026-05-24 09:31:56 +03:00
This will allow us to store information about pk ranges allocated per type in a different location thant the database. This is useful for deterministic pk range computation for things like generating atlas.hcl out of the Ent schema.
126 lines
3.7 KiB
Go
126 lines
3.7 KiB
Go
// Copyright 2019-present Facebook Inc. All rights reserved.
|
|
// This source code is licensed under the Apache 2.0 license found
|
|
// in the LICENSE file in the root directory of this source tree.
|
|
|
|
// Code generated by ent, DO NOT EDIT.
|
|
|
|
package versioned
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"entgo.io/ent/dialect/sql"
|
|
"entgo.io/ent/entc/integration/migrate/versioned/user"
|
|
)
|
|
|
|
// User is the model entity for the User schema.
|
|
type User struct {
|
|
config `json:"-"`
|
|
// ID of the ent.
|
|
ID int `json:"id,omitempty"`
|
|
// Age holds the value of the "age" field.
|
|
Age int32 `json:"age,omitempty"`
|
|
// Name holds the value of the "name" field.
|
|
Name string `json:"name,omitempty"`
|
|
// Address holds the value of the "address" field.
|
|
Address string `json:"address,omitempty"`
|
|
}
|
|
|
|
// scanValues returns the types for scanning values from sql.Rows.
|
|
func (*User) scanValues(columns []string) ([]interface{}, error) {
|
|
values := make([]interface{}, len(columns))
|
|
for i := range columns {
|
|
switch columns[i] {
|
|
case user.FieldID, user.FieldAge:
|
|
values[i] = new(sql.NullInt64)
|
|
case user.FieldName, user.FieldAddress:
|
|
values[i] = new(sql.NullString)
|
|
default:
|
|
return nil, fmt.Errorf("unexpected column %q for type User", columns[i])
|
|
}
|
|
}
|
|
return values, nil
|
|
}
|
|
|
|
// assignValues assigns the values that were returned from sql.Rows (after scanning)
|
|
// to the User fields.
|
|
func (u *User) 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 user.FieldID:
|
|
value, ok := values[i].(*sql.NullInt64)
|
|
if !ok {
|
|
return fmt.Errorf("unexpected type %T for field id", value)
|
|
}
|
|
u.ID = int(value.Int64)
|
|
case user.FieldAge:
|
|
if value, ok := values[i].(*sql.NullInt64); !ok {
|
|
return fmt.Errorf("unexpected type %T for field age", values[i])
|
|
} else if value.Valid {
|
|
u.Age = int32(value.Int64)
|
|
}
|
|
case user.FieldName:
|
|
if value, ok := values[i].(*sql.NullString); !ok {
|
|
return fmt.Errorf("unexpected type %T for field name", values[i])
|
|
} else if value.Valid {
|
|
u.Name = value.String
|
|
}
|
|
case user.FieldAddress:
|
|
if value, ok := values[i].(*sql.NullString); !ok {
|
|
return fmt.Errorf("unexpected type %T for field address", values[i])
|
|
} else if value.Valid {
|
|
u.Address = value.String
|
|
}
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Update returns a builder for updating this User.
|
|
// Note that you need to call User.Unwrap() before calling this method if this User
|
|
// was returned from a transaction, and the transaction was committed or rolled back.
|
|
func (u *User) Update() *UserUpdateOne {
|
|
return (&UserClient{config: u.config}).UpdateOne(u)
|
|
}
|
|
|
|
// Unwrap unwraps the User 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 (u *User) Unwrap() *User {
|
|
_tx, ok := u.config.driver.(*txDriver)
|
|
if !ok {
|
|
panic("versioned: User is not a transactional entity")
|
|
}
|
|
u.config.driver = _tx.drv
|
|
return u
|
|
}
|
|
|
|
// String implements the fmt.Stringer.
|
|
func (u *User) String() string {
|
|
var builder strings.Builder
|
|
builder.WriteString("User(")
|
|
builder.WriteString(fmt.Sprintf("id=%v, ", u.ID))
|
|
builder.WriteString("age=")
|
|
builder.WriteString(fmt.Sprintf("%v", u.Age))
|
|
builder.WriteString(", ")
|
|
builder.WriteString("name=")
|
|
builder.WriteString(u.Name)
|
|
builder.WriteString(", ")
|
|
builder.WriteString("address=")
|
|
builder.WriteString(u.Address)
|
|
builder.WriteByte(')')
|
|
return builder.String()
|
|
}
|
|
|
|
// Users is a parsable slice of User.
|
|
type Users []*User
|
|
|
|
func (u Users) config(cfg config) {
|
|
for _i := range u {
|
|
u[_i].config = cfg
|
|
}
|
|
}
|