/ ent / user.go
user.go
  1  // Code generated by ent, DO NOT EDIT.
  2  
  3  package ent
  4  
  5  import (
  6  	"fmt"
  7  	"strings"
  8  	"time"
  9  
 10  	"entgo.io/ent"
 11  	"entgo.io/ent/dialect/sql"
 12  	"github.com/google/uuid"
 13  	"github.com/mrusme/journalist/ent/user"
 14  )
 15  
 16  // User is the model entity for the User schema.
 17  type User struct {
 18  	config `json:"-"`
 19  	// ID of the ent.
 20  	ID uuid.UUID `json:"id,omitempty"`
 21  	// Username holds the value of the "username" field.
 22  	Username string `json:"username,omitempty"`
 23  	// Password holds the value of the "password" field.
 24  	Password string `json:"-"`
 25  	// Role holds the value of the "role" field.
 26  	Role string `json:"role,omitempty"`
 27  	// CreatedAt holds the value of the "created_at" field.
 28  	CreatedAt time.Time `json:"created_at,omitempty"`
 29  	// UpdatedAt holds the value of the "updated_at" field.
 30  	UpdatedAt time.Time `json:"updated_at,omitempty"`
 31  	// DeletedAt holds the value of the "deleted_at" field.
 32  	DeletedAt *time.Time `json:"deleted_at,omitempty"`
 33  	// Edges holds the relations/edges for other nodes in the graph.
 34  	// The values are being populated by the UserQuery when eager-loading is set.
 35  	Edges        UserEdges `json:"edges"`
 36  	selectValues sql.SelectValues
 37  }
 38  
 39  // UserEdges holds the relations/edges for other nodes in the graph.
 40  type UserEdges struct {
 41  	// Tokens holds the value of the tokens edge.
 42  	Tokens []*Token `json:"tokens,omitempty"`
 43  	// SubscribedFeeds holds the value of the subscribed_feeds edge.
 44  	SubscribedFeeds []*Feed `json:"subscribed_feeds,omitempty"`
 45  	// ReadItems holds the value of the read_items edge.
 46  	ReadItems []*Item `json:"read_items,omitempty"`
 47  	// Subscriptions holds the value of the subscriptions edge.
 48  	Subscriptions []*Subscription `json:"subscriptions,omitempty"`
 49  	// Reads holds the value of the reads edge.
 50  	Reads []*Read `json:"reads,omitempty"`
 51  	// loadedTypes holds the information for reporting if a
 52  	// type was loaded (or requested) in eager-loading or not.
 53  	loadedTypes [5]bool
 54  }
 55  
 56  // TokensOrErr returns the Tokens value or an error if the edge
 57  // was not loaded in eager-loading.
 58  func (e UserEdges) TokensOrErr() ([]*Token, error) {
 59  	if e.loadedTypes[0] {
 60  		return e.Tokens, nil
 61  	}
 62  	return nil, &NotLoadedError{edge: "tokens"}
 63  }
 64  
 65  // SubscribedFeedsOrErr returns the SubscribedFeeds value or an error if the edge
 66  // was not loaded in eager-loading.
 67  func (e UserEdges) SubscribedFeedsOrErr() ([]*Feed, error) {
 68  	if e.loadedTypes[1] {
 69  		return e.SubscribedFeeds, nil
 70  	}
 71  	return nil, &NotLoadedError{edge: "subscribed_feeds"}
 72  }
 73  
 74  // ReadItemsOrErr returns the ReadItems value or an error if the edge
 75  // was not loaded in eager-loading.
 76  func (e UserEdges) ReadItemsOrErr() ([]*Item, error) {
 77  	if e.loadedTypes[2] {
 78  		return e.ReadItems, nil
 79  	}
 80  	return nil, &NotLoadedError{edge: "read_items"}
 81  }
 82  
 83  // SubscriptionsOrErr returns the Subscriptions value or an error if the edge
 84  // was not loaded in eager-loading.
 85  func (e UserEdges) SubscriptionsOrErr() ([]*Subscription, error) {
 86  	if e.loadedTypes[3] {
 87  		return e.Subscriptions, nil
 88  	}
 89  	return nil, &NotLoadedError{edge: "subscriptions"}
 90  }
 91  
 92  // ReadsOrErr returns the Reads value or an error if the edge
 93  // was not loaded in eager-loading.
 94  func (e UserEdges) ReadsOrErr() ([]*Read, error) {
 95  	if e.loadedTypes[4] {
 96  		return e.Reads, nil
 97  	}
 98  	return nil, &NotLoadedError{edge: "reads"}
 99  }
100  
101  // scanValues returns the types for scanning values from sql.Rows.
102  func (*User) scanValues(columns []string) ([]any, error) {
103  	values := make([]any, len(columns))
104  	for i := range columns {
105  		switch columns[i] {
106  		case user.FieldUsername, user.FieldPassword, user.FieldRole:
107  			values[i] = new(sql.NullString)
108  		case user.FieldCreatedAt, user.FieldUpdatedAt, user.FieldDeletedAt:
109  			values[i] = new(sql.NullTime)
110  		case user.FieldID:
111  			values[i] = new(uuid.UUID)
112  		default:
113  			values[i] = new(sql.UnknownType)
114  		}
115  	}
116  	return values, nil
117  }
118  
119  // assignValues assigns the values that were returned from sql.Rows (after scanning)
120  // to the User fields.
121  func (u *User) assignValues(columns []string, values []any) error {
122  	if m, n := len(values), len(columns); m < n {
123  		return fmt.Errorf("mismatch number of scan values: %d != %d", m, n)
124  	}
125  	for i := range columns {
126  		switch columns[i] {
127  		case user.FieldID:
128  			if value, ok := values[i].(*uuid.UUID); !ok {
129  				return fmt.Errorf("unexpected type %T for field id", values[i])
130  			} else if value != nil {
131  				u.ID = *value
132  			}
133  		case user.FieldUsername:
134  			if value, ok := values[i].(*sql.NullString); !ok {
135  				return fmt.Errorf("unexpected type %T for field username", values[i])
136  			} else if value.Valid {
137  				u.Username = value.String
138  			}
139  		case user.FieldPassword:
140  			if value, ok := values[i].(*sql.NullString); !ok {
141  				return fmt.Errorf("unexpected type %T for field password", values[i])
142  			} else if value.Valid {
143  				u.Password = value.String
144  			}
145  		case user.FieldRole:
146  			if value, ok := values[i].(*sql.NullString); !ok {
147  				return fmt.Errorf("unexpected type %T for field role", values[i])
148  			} else if value.Valid {
149  				u.Role = value.String
150  			}
151  		case user.FieldCreatedAt:
152  			if value, ok := values[i].(*sql.NullTime); !ok {
153  				return fmt.Errorf("unexpected type %T for field created_at", values[i])
154  			} else if value.Valid {
155  				u.CreatedAt = value.Time
156  			}
157  		case user.FieldUpdatedAt:
158  			if value, ok := values[i].(*sql.NullTime); !ok {
159  				return fmt.Errorf("unexpected type %T for field updated_at", values[i])
160  			} else if value.Valid {
161  				u.UpdatedAt = value.Time
162  			}
163  		case user.FieldDeletedAt:
164  			if value, ok := values[i].(*sql.NullTime); !ok {
165  				return fmt.Errorf("unexpected type %T for field deleted_at", values[i])
166  			} else if value.Valid {
167  				u.DeletedAt = new(time.Time)
168  				*u.DeletedAt = value.Time
169  			}
170  		default:
171  			u.selectValues.Set(columns[i], values[i])
172  		}
173  	}
174  	return nil
175  }
176  
177  // Value returns the ent.Value that was dynamically selected and assigned to the User.
178  // This includes values selected through modifiers, order, etc.
179  func (u *User) Value(name string) (ent.Value, error) {
180  	return u.selectValues.Get(name)
181  }
182  
183  // QueryTokens queries the "tokens" edge of the User entity.
184  func (u *User) QueryTokens() *TokenQuery {
185  	return NewUserClient(u.config).QueryTokens(u)
186  }
187  
188  // QuerySubscribedFeeds queries the "subscribed_feeds" edge of the User entity.
189  func (u *User) QuerySubscribedFeeds() *FeedQuery {
190  	return NewUserClient(u.config).QuerySubscribedFeeds(u)
191  }
192  
193  // QueryReadItems queries the "read_items" edge of the User entity.
194  func (u *User) QueryReadItems() *ItemQuery {
195  	return NewUserClient(u.config).QueryReadItems(u)
196  }
197  
198  // QuerySubscriptions queries the "subscriptions" edge of the User entity.
199  func (u *User) QuerySubscriptions() *SubscriptionQuery {
200  	return NewUserClient(u.config).QuerySubscriptions(u)
201  }
202  
203  // QueryReads queries the "reads" edge of the User entity.
204  func (u *User) QueryReads() *ReadQuery {
205  	return NewUserClient(u.config).QueryReads(u)
206  }
207  
208  // Update returns a builder for updating this User.
209  // Note that you need to call User.Unwrap() before calling this method if this User
210  // was returned from a transaction, and the transaction was committed or rolled back.
211  func (u *User) Update() *UserUpdateOne {
212  	return NewUserClient(u.config).UpdateOne(u)
213  }
214  
215  // Unwrap unwraps the User entity that was returned from a transaction after it was closed,
216  // so that all future queries will be executed through the driver which created the transaction.
217  func (u *User) Unwrap() *User {
218  	_tx, ok := u.config.driver.(*txDriver)
219  	if !ok {
220  		panic("ent: User is not a transactional entity")
221  	}
222  	u.config.driver = _tx.drv
223  	return u
224  }
225  
226  // String implements the fmt.Stringer.
227  func (u *User) String() string {
228  	var builder strings.Builder
229  	builder.WriteString("User(")
230  	builder.WriteString(fmt.Sprintf("id=%v, ", u.ID))
231  	builder.WriteString("username=")
232  	builder.WriteString(u.Username)
233  	builder.WriteString(", ")
234  	builder.WriteString("password=<sensitive>")
235  	builder.WriteString(", ")
236  	builder.WriteString("role=")
237  	builder.WriteString(u.Role)
238  	builder.WriteString(", ")
239  	builder.WriteString("created_at=")
240  	builder.WriteString(u.CreatedAt.Format(time.ANSIC))
241  	builder.WriteString(", ")
242  	builder.WriteString("updated_at=")
243  	builder.WriteString(u.UpdatedAt.Format(time.ANSIC))
244  	builder.WriteString(", ")
245  	if v := u.DeletedAt; v != nil {
246  		builder.WriteString("deleted_at=")
247  		builder.WriteString(v.Format(time.ANSIC))
248  	}
249  	builder.WriteByte(')')
250  	return builder.String()
251  }
252  
253  // Users is a parsable slice of User.
254  type Users []*User