github.com/ngocphuongnb/tetua@v0.0.7-alpha/packages/entrepository/ent/role.go (about)

     1  // Code generated by entc, DO NOT EDIT.
     2  
     3  package ent
     4  
     5  import (
     6  	"fmt"
     7  	"strings"
     8  	"time"
     9  
    10  	"entgo.io/ent/dialect/sql"
    11  	"github.com/ngocphuongnb/tetua/packages/entrepository/ent/role"
    12  )
    13  
    14  // Role is the model entity for the Role schema.
    15  type Role struct {
    16  	config `json:"-" validate:"-"`
    17  	// ID of the ent.
    18  	ID int `json:"id,omitempty"`
    19  	// CreatedAt holds the value of the "created_at" field.
    20  	CreatedAt time.Time `json:"omitempty"`
    21  	// UpdatedAt holds the value of the "updated_at" field.
    22  	UpdatedAt time.Time `json:"omitempty"`
    23  	// DeletedAt holds the value of the "deleted_at" field.
    24  	DeletedAt time.Time `json:"omitempty"`
    25  	// Name holds the value of the "name" field.
    26  	Name string `json:"name,omitempty" validate:"max=255"`
    27  	// Description holds the value of the "description" field.
    28  	Description string `json:"description,omitempty" validate:"max=255"`
    29  	// Root holds the value of the "root" field.
    30  	Root bool `json:"root,omitempty"`
    31  	// Edges holds the relations/edges for other nodes in the graph.
    32  	// The values are being populated by the RoleQuery when eager-loading is set.
    33  	Edges RoleEdges `json:"edges"`
    34  }
    35  
    36  // RoleEdges holds the relations/edges for other nodes in the graph.
    37  type RoleEdges struct {
    38  	// Permissions holds the value of the permissions edge.
    39  	Permissions []*Permission `json:"permissions,omitempty"`
    40  	// Users holds the value of the users edge.
    41  	Users []*User `json:"users,omitempty"`
    42  	// loadedTypes holds the information for reporting if a
    43  	// type was loaded (or requested) in eager-loading or not.
    44  	loadedTypes [2]bool
    45  }
    46  
    47  // PermissionsOrErr returns the Permissions value or an error if the edge
    48  // was not loaded in eager-loading.
    49  func (e RoleEdges) PermissionsOrErr() ([]*Permission, error) {
    50  	if e.loadedTypes[0] {
    51  		return e.Permissions, nil
    52  	}
    53  	return nil, &NotLoadedError{edge: "permissions"}
    54  }
    55  
    56  // UsersOrErr returns the Users value or an error if the edge
    57  // was not loaded in eager-loading.
    58  func (e RoleEdges) UsersOrErr() ([]*User, error) {
    59  	if e.loadedTypes[1] {
    60  		return e.Users, nil
    61  	}
    62  	return nil, &NotLoadedError{edge: "users"}
    63  }
    64  
    65  // scanValues returns the types for scanning values from sql.Rows.
    66  func (*Role) scanValues(columns []string) ([]interface{}, error) {
    67  	values := make([]interface{}, len(columns))
    68  	for i := range columns {
    69  		switch columns[i] {
    70  		case role.FieldRoot:
    71  			values[i] = new(sql.NullBool)
    72  		case role.FieldID:
    73  			values[i] = new(sql.NullInt64)
    74  		case role.FieldName, role.FieldDescription:
    75  			values[i] = new(sql.NullString)
    76  		case role.FieldCreatedAt, role.FieldUpdatedAt, role.FieldDeletedAt:
    77  			values[i] = new(sql.NullTime)
    78  		default:
    79  			return nil, fmt.Errorf("unexpected column %q for type Role", columns[i])
    80  		}
    81  	}
    82  	return values, nil
    83  }
    84  
    85  // assignValues assigns the values that were returned from sql.Rows (after scanning)
    86  // to the Role fields.
    87  func (r *Role) assignValues(columns []string, values []interface{}) error {
    88  	if m, n := len(values), len(columns); m < n {
    89  		return fmt.Errorf("mismatch number of scan values: %d != %d", m, n)
    90  	}
    91  	for i := range columns {
    92  		switch columns[i] {
    93  		case role.FieldID:
    94  			value, ok := values[i].(*sql.NullInt64)
    95  			if !ok {
    96  				return fmt.Errorf("unexpected type %T for field id", value)
    97  			}
    98  			r.ID = int(value.Int64)
    99  		case role.FieldCreatedAt:
   100  			if value, ok := values[i].(*sql.NullTime); !ok {
   101  				return fmt.Errorf("unexpected type %T for field created_at", values[i])
   102  			} else if value.Valid {
   103  				r.CreatedAt = value.Time
   104  			}
   105  		case role.FieldUpdatedAt:
   106  			if value, ok := values[i].(*sql.NullTime); !ok {
   107  				return fmt.Errorf("unexpected type %T for field updated_at", values[i])
   108  			} else if value.Valid {
   109  				r.UpdatedAt = value.Time
   110  			}
   111  		case role.FieldDeletedAt:
   112  			if value, ok := values[i].(*sql.NullTime); !ok {
   113  				return fmt.Errorf("unexpected type %T for field deleted_at", values[i])
   114  			} else if value.Valid {
   115  				r.DeletedAt = value.Time
   116  			}
   117  		case role.FieldName:
   118  			if value, ok := values[i].(*sql.NullString); !ok {
   119  				return fmt.Errorf("unexpected type %T for field name", values[i])
   120  			} else if value.Valid {
   121  				r.Name = value.String
   122  			}
   123  		case role.FieldDescription:
   124  			if value, ok := values[i].(*sql.NullString); !ok {
   125  				return fmt.Errorf("unexpected type %T for field description", values[i])
   126  			} else if value.Valid {
   127  				r.Description = value.String
   128  			}
   129  		case role.FieldRoot:
   130  			if value, ok := values[i].(*sql.NullBool); !ok {
   131  				return fmt.Errorf("unexpected type %T for field root", values[i])
   132  			} else if value.Valid {
   133  				r.Root = value.Bool
   134  			}
   135  		}
   136  	}
   137  	return nil
   138  }
   139  
   140  // QueryPermissions queries the "permissions" edge of the Role entity.
   141  func (r *Role) QueryPermissions() *PermissionQuery {
   142  	return (&RoleClient{config: r.config}).QueryPermissions(r)
   143  }
   144  
   145  // QueryUsers queries the "users" edge of the Role entity.
   146  func (r *Role) QueryUsers() *UserQuery {
   147  	return (&RoleClient{config: r.config}).QueryUsers(r)
   148  }
   149  
   150  // Update returns a builder for updating this Role.
   151  // Note that you need to call Role.Unwrap() before calling this method if this Role
   152  // was returned from a transaction, and the transaction was committed or rolled back.
   153  func (r *Role) Update() *RoleUpdateOne {
   154  	return (&RoleClient{config: r.config}).UpdateOne(r)
   155  }
   156  
   157  // Unwrap unwraps the Role entity that was returned from a transaction after it was closed,
   158  // so that all future queries will be executed through the driver which created the transaction.
   159  func (r *Role) Unwrap() *Role {
   160  	tx, ok := r.config.driver.(*txDriver)
   161  	if !ok {
   162  		panic("ent: Role is not a transactional entity")
   163  	}
   164  	r.config.driver = tx.drv
   165  	return r
   166  }
   167  
   168  // String implements the fmt.Stringer.
   169  func (r *Role) String() string {
   170  	var builder strings.Builder
   171  	builder.WriteString("Role(")
   172  	builder.WriteString(fmt.Sprintf("id=%v", r.ID))
   173  	builder.WriteString(", created_at=")
   174  	builder.WriteString(r.CreatedAt.Format(time.ANSIC))
   175  	builder.WriteString(", updated_at=")
   176  	builder.WriteString(r.UpdatedAt.Format(time.ANSIC))
   177  	builder.WriteString(", deleted_at=")
   178  	builder.WriteString(r.DeletedAt.Format(time.ANSIC))
   179  	builder.WriteString(", name=")
   180  	builder.WriteString(r.Name)
   181  	builder.WriteString(", description=")
   182  	builder.WriteString(r.Description)
   183  	builder.WriteString(", root=")
   184  	builder.WriteString(fmt.Sprintf("%v", r.Root))
   185  	builder.WriteByte(')')
   186  	return builder.String()
   187  }
   188  
   189  // Roles is a parsable slice of Role.
   190  type Roles []*Role
   191  
   192  func (r Roles) config(cfg config) {
   193  	for _i := range r {
   194  		r[_i].config = cfg
   195  	}
   196  }