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