From 85265abb480bbc1e174c0b9cac6a975c9d7ef437 Mon Sep 17 00:00:00 2001 From: unclesam <2036253946@qq.com> Date: Wed, 8 Jul 2026 03:49:01 +0800 Subject: [PATCH] =?UTF-8?q?feat(user):=20=E6=B7=BB=E5=8A=A0=E6=98=B5?= =?UTF-8?q?=E7=A7=B0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- go.sum | 20 +++++++++ internal/ent/migrate/schema.go | 1 + internal/ent/mutation.go | 75 ++++++++++++++++++++++++++++++- internal/ent/runtime.go | 10 +++-- internal/ent/schema/user.go | 3 ++ internal/ent/user.go | 13 +++++- internal/ent/user/user.go | 10 +++++ internal/ent/user/where.go | 80 ++++++++++++++++++++++++++++++++++ internal/ent/user_create.go | 23 ++++++++++ internal/ent/user_update.go | 62 ++++++++++++++++++++++++++ 10 files changed, 292 insertions(+), 5 deletions(-) diff --git a/go.sum b/go.sum index 3487575..cb3fb4d 100644 --- a/go.sum +++ b/go.sum @@ -34,12 +34,20 @@ github.com/casbin/govaluate v1.10.0 h1:ffGw51/hYH3w3rZcxO/KcaUIDOLP84w7nsidMVgaD github.com/casbin/govaluate v1.10.0/go.mod h1:G/UnbIjZk/0uMNaLwZZmFQrR72tYRZWQkO70si/iR7A= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/clipperhouse/displaywidth v0.6.2 h1:ZDpTkFfpHOKte4RG5O/BOyf3ysnvFswpyYrV7z2uAKo= +github.com/clipperhouse/displaywidth v0.6.2/go.mod h1:R+kHuzaYWFkTm7xoMmK1lFydbci4X2CicfbGstSGg0o= +github.com/clipperhouse/stringish v0.1.1 h1:+NSqMOr3GR6k1FdRhhnXrLfztGzuG+VuFDfatpWHKCs= +github.com/clipperhouse/stringish v0.1.1/go.mod h1:v/WhFtE1q0ovMta2+m+UbpZ+2/HEXNWYXQgCt4hdOzA= +github.com/clipperhouse/uax29/v2 v2.3.0 h1:SNdx9DVUqMoBuBoW3iLOj4FQv3dN5mDtuqwuhIGpJy4= +github.com/clipperhouse/uax29/v2 v2.3.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g= github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M= github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.10.1 h1:b0/UzAf9yR5rhf3RPm9gf3ehBPpf0oZKIjtpKrx59Ho= @@ -103,8 +111,12 @@ github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/lib/pq v1.12.3 h1:tTWxr2YLKwIvK90ZXEw8GP7UFHtcbTtty8zsI+YjrfQ= github.com/lib/pq v1.12.3/go.mod h1:/p+8NSbOcwzAEI7wiMXFlgydTwcgTr3OSKMsD2BitpA= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= +github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/mattn/go-sqlite3 v1.14.28 h1:ThEiQrnbtumT+QMknw63Befp/ce/nUPgBPMlRFEum7A= github.com/mattn/go-sqlite3 v1.14.28/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= @@ -114,6 +126,14 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 h1:zrbMGy9YXpIeTnGj4EljqMiZsIcE09mmF8XsD5AYOJc= +github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6/go.mod h1:rEKTHC9roVVicUIfZK7DYrdIoM0EOr8mK1Hj5s3JjH0= +github.com/olekukonko/errors v1.1.0 h1:RNuGIh15QdDenh+hNvKrJkmxxjV4hcS50Db478Ou5sM= +github.com/olekukonko/errors v1.1.0/go.mod h1:ppzxA5jBKcO1vIpCXQ9ZqgDh8iwODz6OXIGKU8r5m4Y= +github.com/olekukonko/ll v0.1.4-0.20260115111900-9e59c2286df0 h1:jrYnow5+hy3WRDCBypUFvVKNSPPCdqgSXIE9eJDD8LM= +github.com/olekukonko/ll v0.1.4-0.20260115111900-9e59c2286df0/go.mod h1:b52bVQRRPObe+yyBl0TxNfhesL0nedD4Cht0/zx55Ew= +github.com/olekukonko/tablewriter v1.1.3 h1:VSHhghXxrP0JHl+0NnKid7WoEmd9/urKRJLysb70nnA= +github.com/olekukonko/tablewriter v1.1.3/go.mod h1:9VU0knjhmMkXjnMKrZ3+L2JhhtsQ/L38BbL3CRNE8tM= github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= diff --git a/internal/ent/migrate/schema.go b/internal/ent/migrate/schema.go index b72a2f7..6bb0b77 100644 --- a/internal/ent/migrate/schema.go +++ b/internal/ent/migrate/schema.go @@ -27,6 +27,7 @@ var ( {Name: "updated_at", Type: field.TypeTime}, {Name: "username", Type: field.TypeString, Unique: true}, {Name: "password", Type: field.TypeString}, + {Name: "nickname", Type: field.TypeString, Nullable: true, Size: 64}, {Name: "email", Type: field.TypeString, Nullable: true}, {Name: "ip", Type: field.TypeString, Nullable: true}, {Name: "addr", Type: field.TypeString, Nullable: true, Size: 500}, diff --git a/internal/ent/mutation.go b/internal/ent/mutation.go index 5fbdec1..349d030 100644 --- a/internal/ent/mutation.go +++ b/internal/ent/mutation.go @@ -512,6 +512,7 @@ type UserMutation struct { updated_at *time.Time username *string password *string + nickname *string email *string ip *string addr *string @@ -766,6 +767,55 @@ func (m *UserMutation) ResetPassword() { m.password = nil } +// SetNickname sets the "nickname" field. +func (m *UserMutation) SetNickname(s string) { + m.nickname = &s +} + +// Nickname returns the value of the "nickname" field in the mutation. +func (m *UserMutation) Nickname() (r string, exists bool) { + v := m.nickname + if v == nil { + return + } + return *v, true +} + +// OldNickname returns the old "nickname" field's value of the User entity. +// If the User object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *UserMutation) OldNickname(ctx context.Context) (v string, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldNickname is only allowed on UpdateOne operations") + } + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldNickname requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldNickname: %w", err) + } + return oldValue.Nickname, nil +} + +// ClearNickname clears the value of the "nickname" field. +func (m *UserMutation) ClearNickname() { + m.nickname = nil + m.clearedFields[user.FieldNickname] = struct{}{} +} + +// NicknameCleared returns if the "nickname" field was cleared in this mutation. +func (m *UserMutation) NicknameCleared() bool { + _, ok := m.clearedFields[user.FieldNickname] + return ok +} + +// ResetNickname resets all changes to the "nickname" field. +func (m *UserMutation) ResetNickname() { + m.nickname = nil + delete(m.clearedFields, user.FieldNickname) +} + // SetEmail sets the "email" field. func (m *UserMutation) SetEmail(s string) { m.email = &s @@ -1001,7 +1051,7 @@ func (m *UserMutation) Type() string { // order to get all numeric fields that were incremented/decremented, call // AddedFields(). func (m *UserMutation) Fields() []string { - fields := make([]string, 0, 7) + fields := make([]string, 0, 8) if m.created_at != nil { fields = append(fields, user.FieldCreatedAt) } @@ -1014,6 +1064,9 @@ func (m *UserMutation) Fields() []string { if m.password != nil { fields = append(fields, user.FieldPassword) } + if m.nickname != nil { + fields = append(fields, user.FieldNickname) + } if m.email != nil { fields = append(fields, user.FieldEmail) } @@ -1039,6 +1092,8 @@ func (m *UserMutation) Field(name string) (ent.Value, bool) { return m.Username() case user.FieldPassword: return m.Password() + case user.FieldNickname: + return m.Nickname() case user.FieldEmail: return m.Email() case user.FieldIP: @@ -1062,6 +1117,8 @@ func (m *UserMutation) OldField(ctx context.Context, name string) (ent.Value, er return m.OldUsername(ctx) case user.FieldPassword: return m.OldPassword(ctx) + case user.FieldNickname: + return m.OldNickname(ctx) case user.FieldEmail: return m.OldEmail(ctx) case user.FieldIP: @@ -1105,6 +1162,13 @@ func (m *UserMutation) SetField(name string, value ent.Value) error { } m.SetPassword(v) return nil + case user.FieldNickname: + v, ok := value.(string) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetNickname(v) + return nil case user.FieldEmail: v, ok := value.(string) if !ok { @@ -1156,6 +1220,9 @@ func (m *UserMutation) AddField(name string, value ent.Value) error { // mutation. func (m *UserMutation) ClearedFields() []string { var fields []string + if m.FieldCleared(user.FieldNickname) { + fields = append(fields, user.FieldNickname) + } if m.FieldCleared(user.FieldEmail) { fields = append(fields, user.FieldEmail) } @@ -1179,6 +1246,9 @@ func (m *UserMutation) FieldCleared(name string) bool { // error if the field is not defined in the schema. func (m *UserMutation) ClearField(name string) error { switch name { + case user.FieldNickname: + m.ClearNickname() + return nil case user.FieldEmail: m.ClearEmail() return nil @@ -1208,6 +1278,9 @@ func (m *UserMutation) ResetField(name string) error { case user.FieldPassword: m.ResetPassword() return nil + case user.FieldNickname: + m.ResetNickname() + return nil case user.FieldEmail: m.ResetEmail() return nil diff --git a/internal/ent/runtime.go b/internal/ent/runtime.go index 9fe03cd..4e171cd 100644 --- a/internal/ent/runtime.go +++ b/internal/ent/runtime.go @@ -42,16 +42,20 @@ func init() { userDescUsername := userFields[0].Descriptor() // user.UsernameValidator is a validator for the "username" field. It is called by the builders before save. user.UsernameValidator = userDescUsername.Validators[0].(func(string) error) + // userDescNickname is the schema descriptor for nickname field. + userDescNickname := userFields[2].Descriptor() + // user.NicknameValidator is a validator for the "nickname" field. It is called by the builders before save. + user.NicknameValidator = userDescNickname.Validators[0].(func(string) error) // userDescEmail is the schema descriptor for email field. - userDescEmail := userFields[2].Descriptor() + userDescEmail := userFields[3].Descriptor() // user.EmailValidator is a validator for the "email" field. It is called by the builders before save. user.EmailValidator = userDescEmail.Validators[0].(func(string) error) // userDescIP is the schema descriptor for ip field. - userDescIP := userFields[3].Descriptor() + userDescIP := userFields[4].Descriptor() // user.IPValidator is a validator for the "ip" field. It is called by the builders before save. user.IPValidator = userDescIP.Validators[0].(func(string) error) // userDescAddr is the schema descriptor for addr field. - userDescAddr := userFields[4].Descriptor() + userDescAddr := userFields[5].Descriptor() // user.AddrValidator is a validator for the "addr" field. It is called by the builders before save. user.AddrValidator = userDescAddr.Validators[0].(func(string) error) } diff --git a/internal/ent/schema/user.go b/internal/ent/schema/user.go index b16b22b..c48c7b2 100644 --- a/internal/ent/schema/user.go +++ b/internal/ent/schema/user.go @@ -27,6 +27,9 @@ func (User) Fields() []ent.Field { NotEmpty(), field.String("password"). Sensitive(), + field.String("nickname"). + Optional(). + MaxLen(64), field.String("email"). Optional(). Match(regexp.MustCompile(`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`)), // 邮箱格式正则校验 diff --git a/internal/ent/user.go b/internal/ent/user.go index 11b5791..c3ee385 100644 --- a/internal/ent/user.go +++ b/internal/ent/user.go @@ -25,6 +25,8 @@ type User struct { Username string `json:"username,omitempty"` // Password holds the value of the "password" field. Password string `json:"-"` + // Nickname holds the value of the "nickname" field. + Nickname string `json:"nickname,omitempty"` // Email holds the value of the "email" field. Email string `json:"email,omitempty"` // IP holds the value of the "ip" field. @@ -62,7 +64,7 @@ func (*User) scanValues(columns []string) ([]any, error) { switch columns[i] { case user.FieldID: values[i] = new(sql.NullInt64) - case user.FieldUsername, user.FieldPassword, user.FieldEmail, user.FieldIP, user.FieldAddr: + case user.FieldUsername, user.FieldPassword, user.FieldNickname, user.FieldEmail, user.FieldIP, user.FieldAddr: values[i] = new(sql.NullString) case user.FieldCreatedAt, user.FieldUpdatedAt: values[i] = new(sql.NullTime) @@ -111,6 +113,12 @@ func (_m *User) assignValues(columns []string, values []any) error { } else if value.Valid { _m.Password = value.String } + case user.FieldNickname: + if value, ok := values[i].(*sql.NullString); !ok { + return fmt.Errorf("unexpected type %T for field nickname", values[i]) + } else if value.Valid { + _m.Nickname = value.String + } case user.FieldEmail: if value, ok := values[i].(*sql.NullString); !ok { return fmt.Errorf("unexpected type %T for field email", values[i]) @@ -181,6 +189,9 @@ func (_m *User) String() string { builder.WriteString(", ") builder.WriteString("password=") builder.WriteString(", ") + builder.WriteString("nickname=") + builder.WriteString(_m.Nickname) + builder.WriteString(", ") builder.WriteString("email=") builder.WriteString(_m.Email) builder.WriteString(", ") diff --git a/internal/ent/user/user.go b/internal/ent/user/user.go index 6cca783..76997b3 100644 --- a/internal/ent/user/user.go +++ b/internal/ent/user/user.go @@ -22,6 +22,8 @@ const ( FieldUsername = "username" // FieldPassword holds the string denoting the password field in the database. FieldPassword = "password" + // FieldNickname holds the string denoting the nickname field in the database. + FieldNickname = "nickname" // FieldEmail holds the string denoting the email field in the database. FieldEmail = "email" // FieldIP holds the string denoting the ip field in the database. @@ -46,6 +48,7 @@ var Columns = []string{ FieldUpdatedAt, FieldUsername, FieldPassword, + FieldNickname, FieldEmail, FieldIP, FieldAddr, @@ -76,6 +79,8 @@ var ( UpdateDefaultUpdatedAt func() time.Time // UsernameValidator is a validator for the "username" field. It is called by the builders before save. UsernameValidator func(string) error + // NicknameValidator is a validator for the "nickname" field. It is called by the builders before save. + NicknameValidator func(string) error // EmailValidator is a validator for the "email" field. It is called by the builders before save. EmailValidator func(string) error // IPValidator is a validator for the "ip" field. It is called by the builders before save. @@ -112,6 +117,11 @@ func ByPassword(opts ...sql.OrderTermOption) OrderOption { return sql.OrderByField(FieldPassword, opts...).ToFunc() } +// ByNickname orders the results by the nickname field. +func ByNickname(opts ...sql.OrderTermOption) OrderOption { + return sql.OrderByField(FieldNickname, opts...).ToFunc() +} + // ByEmail orders the results by the email field. func ByEmail(opts ...sql.OrderTermOption) OrderOption { return sql.OrderByField(FieldEmail, opts...).ToFunc() diff --git a/internal/ent/user/where.go b/internal/ent/user/where.go index b0b0813..5f05945 100644 --- a/internal/ent/user/where.go +++ b/internal/ent/user/where.go @@ -75,6 +75,11 @@ func Password(v string) predicate.User { return predicate.User(sql.FieldEQ(FieldPassword, v)) } +// Nickname applies equality check predicate on the "nickname" field. It's identical to NicknameEQ. +func Nickname(v string) predicate.User { + return predicate.User(sql.FieldEQ(FieldNickname, v)) +} + // Email applies equality check predicate on the "email" field. It's identical to EmailEQ. func Email(v string) predicate.User { return predicate.User(sql.FieldEQ(FieldEmail, v)) @@ -300,6 +305,81 @@ func PasswordContainsFold(v string) predicate.User { return predicate.User(sql.FieldContainsFold(FieldPassword, v)) } +// NicknameEQ applies the EQ predicate on the "nickname" field. +func NicknameEQ(v string) predicate.User { + return predicate.User(sql.FieldEQ(FieldNickname, v)) +} + +// NicknameNEQ applies the NEQ predicate on the "nickname" field. +func NicknameNEQ(v string) predicate.User { + return predicate.User(sql.FieldNEQ(FieldNickname, v)) +} + +// NicknameIn applies the In predicate on the "nickname" field. +func NicknameIn(vs ...string) predicate.User { + return predicate.User(sql.FieldIn(FieldNickname, vs...)) +} + +// NicknameNotIn applies the NotIn predicate on the "nickname" field. +func NicknameNotIn(vs ...string) predicate.User { + return predicate.User(sql.FieldNotIn(FieldNickname, vs...)) +} + +// NicknameGT applies the GT predicate on the "nickname" field. +func NicknameGT(v string) predicate.User { + return predicate.User(sql.FieldGT(FieldNickname, v)) +} + +// NicknameGTE applies the GTE predicate on the "nickname" field. +func NicknameGTE(v string) predicate.User { + return predicate.User(sql.FieldGTE(FieldNickname, v)) +} + +// NicknameLT applies the LT predicate on the "nickname" field. +func NicknameLT(v string) predicate.User { + return predicate.User(sql.FieldLT(FieldNickname, v)) +} + +// NicknameLTE applies the LTE predicate on the "nickname" field. +func NicknameLTE(v string) predicate.User { + return predicate.User(sql.FieldLTE(FieldNickname, v)) +} + +// NicknameContains applies the Contains predicate on the "nickname" field. +func NicknameContains(v string) predicate.User { + return predicate.User(sql.FieldContains(FieldNickname, v)) +} + +// NicknameHasPrefix applies the HasPrefix predicate on the "nickname" field. +func NicknameHasPrefix(v string) predicate.User { + return predicate.User(sql.FieldHasPrefix(FieldNickname, v)) +} + +// NicknameHasSuffix applies the HasSuffix predicate on the "nickname" field. +func NicknameHasSuffix(v string) predicate.User { + return predicate.User(sql.FieldHasSuffix(FieldNickname, v)) +} + +// NicknameIsNil applies the IsNil predicate on the "nickname" field. +func NicknameIsNil() predicate.User { + return predicate.User(sql.FieldIsNull(FieldNickname)) +} + +// NicknameNotNil applies the NotNil predicate on the "nickname" field. +func NicknameNotNil() predicate.User { + return predicate.User(sql.FieldNotNull(FieldNickname)) +} + +// NicknameEqualFold applies the EqualFold predicate on the "nickname" field. +func NicknameEqualFold(v string) predicate.User { + return predicate.User(sql.FieldEqualFold(FieldNickname, v)) +} + +// NicknameContainsFold applies the ContainsFold predicate on the "nickname" field. +func NicknameContainsFold(v string) predicate.User { + return predicate.User(sql.FieldContainsFold(FieldNickname, v)) +} + // EmailEQ applies the EQ predicate on the "email" field. func EmailEQ(v string) predicate.User { return predicate.User(sql.FieldEQ(FieldEmail, v)) diff --git a/internal/ent/user_create.go b/internal/ent/user_create.go index 4a35442..193a615 100644 --- a/internal/ent/user_create.go +++ b/internal/ent/user_create.go @@ -61,6 +61,20 @@ func (_c *UserCreate) SetPassword(v string) *UserCreate { return _c } +// SetNickname sets the "nickname" field. +func (_c *UserCreate) SetNickname(v string) *UserCreate { + _c.mutation.SetNickname(v) + return _c +} + +// SetNillableNickname sets the "nickname" field if the given value is not nil. +func (_c *UserCreate) SetNillableNickname(v *string) *UserCreate { + if v != nil { + _c.SetNickname(*v) + } + return _c +} + // SetEmail sets the "email" field. func (_c *UserCreate) SetEmail(v string) *UserCreate { _c.mutation.SetEmail(v) @@ -182,6 +196,11 @@ func (_c *UserCreate) check() error { if _, ok := _c.mutation.Password(); !ok { return &ValidationError{Name: "password", err: errors.New(`ent: missing required field "User.password"`)} } + if v, ok := _c.mutation.Nickname(); ok { + if err := user.NicknameValidator(v); err != nil { + return &ValidationError{Name: "nickname", err: fmt.Errorf(`ent: validator failed for field "User.nickname": %w`, err)} + } + } if v, ok := _c.mutation.Email(); ok { if err := user.EmailValidator(v); err != nil { return &ValidationError{Name: "email", err: fmt.Errorf(`ent: validator failed for field "User.email": %w`, err)} @@ -239,6 +258,10 @@ func (_c *UserCreate) createSpec() (*User, *sqlgraph.CreateSpec) { _spec.SetField(user.FieldPassword, field.TypeString, value) _node.Password = value } + if value, ok := _c.mutation.Nickname(); ok { + _spec.SetField(user.FieldNickname, field.TypeString, value) + _node.Nickname = value + } if value, ok := _c.mutation.Email(); ok { _spec.SetField(user.FieldEmail, field.TypeString, value) _node.Email = value diff --git a/internal/ent/user_update.go b/internal/ent/user_update.go index 56b83f7..653537e 100644 --- a/internal/ent/user_update.go +++ b/internal/ent/user_update.go @@ -63,6 +63,26 @@ func (_u *UserUpdate) SetNillablePassword(v *string) *UserUpdate { return _u } +// SetNickname sets the "nickname" field. +func (_u *UserUpdate) SetNickname(v string) *UserUpdate { + _u.mutation.SetNickname(v) + return _u +} + +// SetNillableNickname sets the "nickname" field if the given value is not nil. +func (_u *UserUpdate) SetNillableNickname(v *string) *UserUpdate { + if v != nil { + _u.SetNickname(*v) + } + return _u +} + +// ClearNickname clears the value of the "nickname" field. +func (_u *UserUpdate) ClearNickname() *UserUpdate { + _u.mutation.ClearNickname() + return _u +} + // SetEmail sets the "email" field. func (_u *UserUpdate) SetEmail(v string) *UserUpdate { _u.mutation.SetEmail(v) @@ -207,6 +227,11 @@ func (_u *UserUpdate) check() error { return &ValidationError{Name: "username", err: fmt.Errorf(`ent: validator failed for field "User.username": %w`, err)} } } + if v, ok := _u.mutation.Nickname(); ok { + if err := user.NicknameValidator(v); err != nil { + return &ValidationError{Name: "nickname", err: fmt.Errorf(`ent: validator failed for field "User.nickname": %w`, err)} + } + } if v, ok := _u.mutation.Email(); ok { if err := user.EmailValidator(v); err != nil { return &ValidationError{Name: "email", err: fmt.Errorf(`ent: validator failed for field "User.email": %w`, err)} @@ -246,6 +271,12 @@ func (_u *UserUpdate) sqlSave(ctx context.Context) (_node int, err error) { if value, ok := _u.mutation.Password(); ok { _spec.SetField(user.FieldPassword, field.TypeString, value) } + if value, ok := _u.mutation.Nickname(); ok { + _spec.SetField(user.FieldNickname, field.TypeString, value) + } + if _u.mutation.NicknameCleared() { + _spec.ClearField(user.FieldNickname, field.TypeString) + } if value, ok := _u.mutation.Email(); ok { _spec.SetField(user.FieldEmail, field.TypeString, value) } @@ -363,6 +394,26 @@ func (_u *UserUpdateOne) SetNillablePassword(v *string) *UserUpdateOne { return _u } +// SetNickname sets the "nickname" field. +func (_u *UserUpdateOne) SetNickname(v string) *UserUpdateOne { + _u.mutation.SetNickname(v) + return _u +} + +// SetNillableNickname sets the "nickname" field if the given value is not nil. +func (_u *UserUpdateOne) SetNillableNickname(v *string) *UserUpdateOne { + if v != nil { + _u.SetNickname(*v) + } + return _u +} + +// ClearNickname clears the value of the "nickname" field. +func (_u *UserUpdateOne) ClearNickname() *UserUpdateOne { + _u.mutation.ClearNickname() + return _u +} + // SetEmail sets the "email" field. func (_u *UserUpdateOne) SetEmail(v string) *UserUpdateOne { _u.mutation.SetEmail(v) @@ -520,6 +571,11 @@ func (_u *UserUpdateOne) check() error { return &ValidationError{Name: "username", err: fmt.Errorf(`ent: validator failed for field "User.username": %w`, err)} } } + if v, ok := _u.mutation.Nickname(); ok { + if err := user.NicknameValidator(v); err != nil { + return &ValidationError{Name: "nickname", err: fmt.Errorf(`ent: validator failed for field "User.nickname": %w`, err)} + } + } if v, ok := _u.mutation.Email(); ok { if err := user.EmailValidator(v); err != nil { return &ValidationError{Name: "email", err: fmt.Errorf(`ent: validator failed for field "User.email": %w`, err)} @@ -576,6 +632,12 @@ func (_u *UserUpdateOne) sqlSave(ctx context.Context) (_node *User, err error) { if value, ok := _u.mutation.Password(); ok { _spec.SetField(user.FieldPassword, field.TypeString, value) } + if value, ok := _u.mutation.Nickname(); ok { + _spec.SetField(user.FieldNickname, field.TypeString, value) + } + if _u.mutation.NicknameCleared() { + _spec.ClearField(user.FieldNickname, field.TypeString) + } if value, ok := _u.mutation.Email(); ok { _spec.SetField(user.FieldEmail, field.TypeString, value) }