github.com/ngocphuongnb/tetua@v0.0.7-alpha/packages/entrepository/ent/user.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/file"
    12  	"github.com/ngocphuongnb/tetua/packages/entrepository/ent/user"
    13  )
    14  
    15  // User is the model entity for the User schema.
    16  type User struct {
    17  	config `json:"-"`
    18  	// ID of the ent.
    19  	ID int `json:"id,omitempty"`
    20  	// CreatedAt holds the value of the "created_at" field.
    21  	CreatedAt time.Time `json:"omitempty"`
    22  	// UpdatedAt holds the value of the "updated_at" field.
    23  	UpdatedAt time.Time `json:"omitempty"`
    24  	// DeletedAt holds the value of the "deleted_at" field.
    25  	DeletedAt time.Time `json:"omitempty"`
    26  	// Username holds the value of the "username" field.
    27  	Username string `json:"username,omitempty"`
    28  	// DisplayName holds the value of the "display_name" field.
    29  	DisplayName string `json:"display_name,omitempty"`
    30  	// URL holds the value of the "url" field.
    31  	URL string `json:"url,omitempty"`
    32  	// Provider holds the value of the "provider" field.
    33  	Provider string `json:"provider,omitempty"`
    34  	// ProviderID holds the value of the "provider_id" field.
    35  	ProviderID string `json:"provider_id,omitempty"`
    36  	// ProviderUsername holds the value of the "provider_username" field.
    37  	ProviderUsername string `json:"provider_username,omitempty"`
    38  	// ProviderAvatar holds the value of the "provider_avatar" field.
    39  	ProviderAvatar string `json:"provider_avatar,omitempty"`
    40  	// Email holds the value of the "email" field.
    41  	Email string `json:"email,omitempty"`
    42  	// Password holds the value of the "password" field.
    43  	Password string `json:"password,omitempty"`
    44  	// Bio holds the value of the "bio" field.
    45  	Bio string `json:"bio,omitempty"`
    46  	// BioHTML holds the value of the "bio_html" field.
    47  	BioHTML string `json:"bio_html,omitempty"`
    48  	// Active holds the value of the "active" field.
    49  	Active bool `json:"active,omitempty"`
    50  	// AvatarImageID holds the value of the "avatar_image_id" field.
    51  	AvatarImageID int `json:"avatar_image_id,omitempty"`
    52  	// Edges holds the relations/edges for other nodes in the graph.
    53  	// The values are being populated by the UserQuery when eager-loading is set.
    54  	Edges UserEdges `json:"edges"`
    55  }
    56  
    57  // UserEdges holds the relations/edges for other nodes in the graph.
    58  type UserEdges struct {
    59  	// Posts holds the value of the posts edge.
    60  	Posts []*Post `json:"posts,omitempty"`
    61  	// Files holds the value of the files edge.
    62  	Files []*File `json:"files,omitempty"`
    63  	// Comments holds the value of the comments edge.
    64  	Comments []*Comment `json:"comments,omitempty"`
    65  	// Roles holds the value of the roles edge.
    66  	Roles []*Role `json:"roles,omitempty"`
    67  	// AvatarImage holds the value of the avatar_image edge.
    68  	AvatarImage *File `json:"avatar_image,omitempty"`
    69  	// loadedTypes holds the information for reporting if a
    70  	// type was loaded (or requested) in eager-loading or not.
    71  	loadedTypes [5]bool
    72  }
    73  
    74  // PostsOrErr returns the Posts value or an error if the edge
    75  // was not loaded in eager-loading.
    76  func (e UserEdges) PostsOrErr() ([]*Post, error) {
    77  	if e.loadedTypes[0] {
    78  		return e.Posts, nil
    79  	}
    80  	return nil, &NotLoadedError{edge: "posts"}
    81  }
    82  
    83  // FilesOrErr returns the Files value or an error if the edge
    84  // was not loaded in eager-loading.
    85  func (e UserEdges) FilesOrErr() ([]*File, error) {
    86  	if e.loadedTypes[1] {
    87  		return e.Files, nil
    88  	}
    89  	return nil, &NotLoadedError{edge: "files"}
    90  }
    91  
    92  // CommentsOrErr returns the Comments value or an error if the edge
    93  // was not loaded in eager-loading.
    94  func (e UserEdges) CommentsOrErr() ([]*Comment, error) {
    95  	if e.loadedTypes[2] {
    96  		return e.Comments, nil
    97  	}
    98  	return nil, &NotLoadedError{edge: "comments"}
    99  }
   100  
   101  // RolesOrErr returns the Roles value or an error if the edge
   102  // was not loaded in eager-loading.
   103  func (e UserEdges) RolesOrErr() ([]*Role, error) {
   104  	if e.loadedTypes[3] {
   105  		return e.Roles, nil
   106  	}
   107  	return nil, &NotLoadedError{edge: "roles"}
   108  }
   109  
   110  // AvatarImageOrErr returns the AvatarImage value or an error if the edge
   111  // was not loaded in eager-loading, or loaded but was not found.
   112  func (e UserEdges) AvatarImageOrErr() (*File, error) {
   113  	if e.loadedTypes[4] {
   114  		if e.AvatarImage == nil {
   115  			// The edge avatar_image was loaded in eager-loading,
   116  			// but was not found.
   117  			return nil, &NotFoundError{label: file.Label}
   118  		}
   119  		return e.AvatarImage, nil
   120  	}
   121  	return nil, &NotLoadedError{edge: "avatar_image"}
   122  }
   123  
   124  // scanValues returns the types for scanning values from sql.Rows.
   125  func (*User) scanValues(columns []string) ([]interface{}, error) {
   126  	values := make([]interface{}, len(columns))
   127  	for i := range columns {
   128  		switch columns[i] {
   129  		case user.FieldActive:
   130  			values[i] = new(sql.NullBool)
   131  		case user.FieldID, user.FieldAvatarImageID:
   132  			values[i] = new(sql.NullInt64)
   133  		case user.FieldUsername, user.FieldDisplayName, user.FieldURL, user.FieldProvider, user.FieldProviderID, user.FieldProviderUsername, user.FieldProviderAvatar, user.FieldEmail, user.FieldPassword, user.FieldBio, user.FieldBioHTML:
   134  			values[i] = new(sql.NullString)
   135  		case user.FieldCreatedAt, user.FieldUpdatedAt, user.FieldDeletedAt:
   136  			values[i] = new(sql.NullTime)
   137  		default:
   138  			return nil, fmt.Errorf("unexpected column %q for type User", columns[i])
   139  		}
   140  	}
   141  	return values, nil
   142  }
   143  
   144  // assignValues assigns the values that were returned from sql.Rows (after scanning)
   145  // to the User fields.
   146  func (u *User) assignValues(columns []string, values []interface{}) error {
   147  	if m, n := len(values), len(columns); m < n {
   148  		return fmt.Errorf("mismatch number of scan values: %d != %d", m, n)
   149  	}
   150  	for i := range columns {
   151  		switch columns[i] {
   152  		case user.FieldID:
   153  			value, ok := values[i].(*sql.NullInt64)
   154  			if !ok {
   155  				return fmt.Errorf("unexpected type %T for field id", value)
   156  			}
   157  			u.ID = int(value.Int64)
   158  		case user.FieldCreatedAt:
   159  			if value, ok := values[i].(*sql.NullTime); !ok {
   160  				return fmt.Errorf("unexpected type %T for field created_at", values[i])
   161  			} else if value.Valid {
   162  				u.CreatedAt = value.Time
   163  			}
   164  		case user.FieldUpdatedAt:
   165  			if value, ok := values[i].(*sql.NullTime); !ok {
   166  				return fmt.Errorf("unexpected type %T for field updated_at", values[i])
   167  			} else if value.Valid {
   168  				u.UpdatedAt = value.Time
   169  			}
   170  		case user.FieldDeletedAt:
   171  			if value, ok := values[i].(*sql.NullTime); !ok {
   172  				return fmt.Errorf("unexpected type %T for field deleted_at", values[i])
   173  			} else if value.Valid {
   174  				u.DeletedAt = value.Time
   175  			}
   176  		case user.FieldUsername:
   177  			if value, ok := values[i].(*sql.NullString); !ok {
   178  				return fmt.Errorf("unexpected type %T for field username", values[i])
   179  			} else if value.Valid {
   180  				u.Username = value.String
   181  			}
   182  		case user.FieldDisplayName:
   183  			if value, ok := values[i].(*sql.NullString); !ok {
   184  				return fmt.Errorf("unexpected type %T for field display_name", values[i])
   185  			} else if value.Valid {
   186  				u.DisplayName = value.String
   187  			}
   188  		case user.FieldURL:
   189  			if value, ok := values[i].(*sql.NullString); !ok {
   190  				return fmt.Errorf("unexpected type %T for field url", values[i])
   191  			} else if value.Valid {
   192  				u.URL = value.String
   193  			}
   194  		case user.FieldProvider:
   195  			if value, ok := values[i].(*sql.NullString); !ok {
   196  				return fmt.Errorf("unexpected type %T for field provider", values[i])
   197  			} else if value.Valid {
   198  				u.Provider = value.String
   199  			}
   200  		case user.FieldProviderID:
   201  			if value, ok := values[i].(*sql.NullString); !ok {
   202  				return fmt.Errorf("unexpected type %T for field provider_id", values[i])
   203  			} else if value.Valid {
   204  				u.ProviderID = value.String
   205  			}
   206  		case user.FieldProviderUsername:
   207  			if value, ok := values[i].(*sql.NullString); !ok {
   208  				return fmt.Errorf("unexpected type %T for field provider_username", values[i])
   209  			} else if value.Valid {
   210  				u.ProviderUsername = value.String
   211  			}
   212  		case user.FieldProviderAvatar:
   213  			if value, ok := values[i].(*sql.NullString); !ok {
   214  				return fmt.Errorf("unexpected type %T for field provider_avatar", values[i])
   215  			} else if value.Valid {
   216  				u.ProviderAvatar = value.String
   217  			}
   218  		case user.FieldEmail:
   219  			if value, ok := values[i].(*sql.NullString); !ok {
   220  				return fmt.Errorf("unexpected type %T for field email", values[i])
   221  			} else if value.Valid {
   222  				u.Email = value.String
   223  			}
   224  		case user.FieldPassword:
   225  			if value, ok := values[i].(*sql.NullString); !ok {
   226  				return fmt.Errorf("unexpected type %T for field password", values[i])
   227  			} else if value.Valid {
   228  				u.Password = value.String
   229  			}
   230  		case user.FieldBio:
   231  			if value, ok := values[i].(*sql.NullString); !ok {
   232  				return fmt.Errorf("unexpected type %T for field bio", values[i])
   233  			} else if value.Valid {
   234  				u.Bio = value.String
   235  			}
   236  		case user.FieldBioHTML:
   237  			if value, ok := values[i].(*sql.NullString); !ok {
   238  				return fmt.Errorf("unexpected type %T for field bio_html", values[i])
   239  			} else if value.Valid {
   240  				u.BioHTML = value.String
   241  			}
   242  		case user.FieldActive:
   243  			if value, ok := values[i].(*sql.NullBool); !ok {
   244  				return fmt.Errorf("unexpected type %T for field active", values[i])
   245  			} else if value.Valid {
   246  				u.Active = value.Bool
   247  			}
   248  		case user.FieldAvatarImageID:
   249  			if value, ok := values[i].(*sql.NullInt64); !ok {
   250  				return fmt.Errorf("unexpected type %T for field avatar_image_id", values[i])
   251  			} else if value.Valid {
   252  				u.AvatarImageID = int(value.Int64)
   253  			}
   254  		}
   255  	}
   256  	return nil
   257  }
   258  
   259  // QueryPosts queries the "posts" edge of the User entity.
   260  func (u *User) QueryPosts() *PostQuery {
   261  	return (&UserClient{config: u.config}).QueryPosts(u)
   262  }
   263  
   264  // QueryFiles queries the "files" edge of the User entity.
   265  func (u *User) QueryFiles() *FileQuery {
   266  	return (&UserClient{config: u.config}).QueryFiles(u)
   267  }
   268  
   269  // QueryComments queries the "comments" edge of the User entity.
   270  func (u *User) QueryComments() *CommentQuery {
   271  	return (&UserClient{config: u.config}).QueryComments(u)
   272  }
   273  
   274  // QueryRoles queries the "roles" edge of the User entity.
   275  func (u *User) QueryRoles() *RoleQuery {
   276  	return (&UserClient{config: u.config}).QueryRoles(u)
   277  }
   278  
   279  // QueryAvatarImage queries the "avatar_image" edge of the User entity.
   280  func (u *User) QueryAvatarImage() *FileQuery {
   281  	return (&UserClient{config: u.config}).QueryAvatarImage(u)
   282  }
   283  
   284  // Update returns a builder for updating this User.
   285  // Note that you need to call User.Unwrap() before calling this method if this User
   286  // was returned from a transaction, and the transaction was committed or rolled back.
   287  func (u *User) Update() *UserUpdateOne {
   288  	return (&UserClient{config: u.config}).UpdateOne(u)
   289  }
   290  
   291  // Unwrap unwraps the User entity that was returned from a transaction after it was closed,
   292  // so that all future queries will be executed through the driver which created the transaction.
   293  func (u *User) Unwrap() *User {
   294  	tx, ok := u.config.driver.(*txDriver)
   295  	if !ok {
   296  		panic("ent: User is not a transactional entity")
   297  	}
   298  	u.config.driver = tx.drv
   299  	return u
   300  }
   301  
   302  // String implements the fmt.Stringer.
   303  func (u *User) String() string {
   304  	var builder strings.Builder
   305  	builder.WriteString("User(")
   306  	builder.WriteString(fmt.Sprintf("id=%v", u.ID))
   307  	builder.WriteString(", created_at=")
   308  	builder.WriteString(u.CreatedAt.Format(time.ANSIC))
   309  	builder.WriteString(", updated_at=")
   310  	builder.WriteString(u.UpdatedAt.Format(time.ANSIC))
   311  	builder.WriteString(", deleted_at=")
   312  	builder.WriteString(u.DeletedAt.Format(time.ANSIC))
   313  	builder.WriteString(", username=")
   314  	builder.WriteString(u.Username)
   315  	builder.WriteString(", display_name=")
   316  	builder.WriteString(u.DisplayName)
   317  	builder.WriteString(", url=")
   318  	builder.WriteString(u.URL)
   319  	builder.WriteString(", provider=")
   320  	builder.WriteString(u.Provider)
   321  	builder.WriteString(", provider_id=")
   322  	builder.WriteString(u.ProviderID)
   323  	builder.WriteString(", provider_username=")
   324  	builder.WriteString(u.ProviderUsername)
   325  	builder.WriteString(", provider_avatar=")
   326  	builder.WriteString(u.ProviderAvatar)
   327  	builder.WriteString(", email=")
   328  	builder.WriteString(u.Email)
   329  	builder.WriteString(", password=")
   330  	builder.WriteString(u.Password)
   331  	builder.WriteString(", bio=")
   332  	builder.WriteString(u.Bio)
   333  	builder.WriteString(", bio_html=")
   334  	builder.WriteString(u.BioHTML)
   335  	builder.WriteString(", active=")
   336  	builder.WriteString(fmt.Sprintf("%v", u.Active))
   337  	builder.WriteString(", avatar_image_id=")
   338  	builder.WriteString(fmt.Sprintf("%v", u.AvatarImageID))
   339  	builder.WriteByte(')')
   340  	return builder.String()
   341  }
   342  
   343  // Users is a parsable slice of User.
   344  type Users []*User
   345  
   346  func (u Users) config(cfg config) {
   347  	for _i := range u {
   348  		u[_i].config = cfg
   349  	}
   350  }