feat: phone validation
Some checks failed
build quyun / Build (push) Failing after 1m25s

This commit is contained in:
2025-12-20 11:47:45 +08:00
parent fdbf26d751
commit 0e4af79b53
31 changed files with 1130 additions and 984 deletions

View File

@@ -26,6 +26,6 @@ field_type:
status: fields.OrderStatus
meta: types.JSONType[fields.OrderMeta]
medias:
media:
metas: types.JSONType[fields.MediaMetas]
field_relate:

View File

@@ -0,0 +1,13 @@
-- +goose Up
-- +goose StatementBegin
-- add phone field to users table
ALTER TABLE public.users
ADD phone varchar(15) DEFAULT '' NOT NULL;
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
ALTER TABLE public.users
DROP COLUMN phone;
-- +goose StatementEnd

View File

@@ -14,10 +14,10 @@ import (
"go.ipao.vip/gen/types"
)
const TableNameMedia = "medias"
const TableNameMedium = "media"
// Media mapped from table <medias>
type Media struct {
// Medium mapped from table <media>
type Medium struct {
ID int64 `gorm:"column:id;type:bigint;primaryKey;autoIncrement:true" json:"id"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp without time zone;not null;default:now()" json:"created_at"`
Name string `gorm:"column:name;type:character varying(255);not null" json:"name"`
@@ -30,29 +30,29 @@ type Media struct {
// Quick operations without importing query package
// Update applies changed fields to the database using the default DB.
func (m *Media) Update(ctx context.Context) (gen.ResultInfo, error) {
return Q.Media.WithContext(ctx).Updates(m)
func (m *Medium) Update(ctx context.Context) (gen.ResultInfo, error) {
return Q.Medium.WithContext(ctx).Updates(m)
}
// Save upserts the model using the default DB.
func (m *Media) Save(ctx context.Context) error { return Q.Media.WithContext(ctx).Save(m) }
func (m *Medium) Save(ctx context.Context) error { return Q.Medium.WithContext(ctx).Save(m) }
// Create inserts the model using the default DB.
func (m *Media) Create(ctx context.Context) error { return Q.Media.WithContext(ctx).Create(m) }
func (m *Medium) Create(ctx context.Context) error { return Q.Medium.WithContext(ctx).Create(m) }
// Delete removes the row represented by the model using the default DB.
func (m *Media) Delete(ctx context.Context) (gen.ResultInfo, error) {
return Q.Media.WithContext(ctx).Delete(m)
func (m *Medium) Delete(ctx context.Context) (gen.ResultInfo, error) {
return Q.Medium.WithContext(ctx).Delete(m)
}
// ForceDelete permanently deletes the row (ignores soft delete) using the default DB.
func (m *Media) ForceDelete(ctx context.Context) (gen.ResultInfo, error) {
return Q.Media.WithContext(ctx).Unscoped().Delete(m)
func (m *Medium) ForceDelete(ctx context.Context) (gen.ResultInfo, error) {
return Q.Medium.WithContext(ctx).Unscoped().Delete(m)
}
// Reload reloads the model from database by its primary key and overwrites current fields.
func (m *Media) Reload(ctx context.Context) error {
fresh, err := Q.Media.WithContext(ctx).GetByID(m.ID)
func (m *Medium) Reload(ctx context.Context) error {
fresh, err := Q.Medium.WithContext(ctx).GetByID(m.ID)
if err != nil {
return err
}

View File

@@ -17,30 +17,30 @@ import (
"gorm.io/plugin/dbresolver"
)
func newMedia(db *gorm.DB, opts ...gen.DOOption) mediaQuery {
_mediaQuery := mediaQuery{}
func newMedium(db *gorm.DB, opts ...gen.DOOption) mediumQuery {
_mediumQuery := mediumQuery{}
_mediaQuery.mediaQueryDo.UseDB(db, opts...)
_mediaQuery.mediaQueryDo.UseModel(&Media{})
_mediumQuery.mediumQueryDo.UseDB(db, opts...)
_mediumQuery.mediumQueryDo.UseModel(&Medium{})
tableName := _mediaQuery.mediaQueryDo.TableName()
_mediaQuery.ALL = field.NewAsterisk(tableName)
_mediaQuery.ID = field.NewInt64(tableName, "id")
_mediaQuery.CreatedAt = field.NewTime(tableName, "created_at")
_mediaQuery.Name = field.NewString(tableName, "name")
_mediaQuery.MimeType = field.NewString(tableName, "mime_type")
_mediaQuery.Size = field.NewInt64(tableName, "size")
_mediaQuery.Path = field.NewString(tableName, "path")
_mediaQuery.Metas = field.NewJSONB(tableName, "metas")
_mediaQuery.Hash = field.NewString(tableName, "hash")
tableName := _mediumQuery.mediumQueryDo.TableName()
_mediumQuery.ALL = field.NewAsterisk(tableName)
_mediumQuery.ID = field.NewInt64(tableName, "id")
_mediumQuery.CreatedAt = field.NewTime(tableName, "created_at")
_mediumQuery.Name = field.NewString(tableName, "name")
_mediumQuery.MimeType = field.NewString(tableName, "mime_type")
_mediumQuery.Size = field.NewInt64(tableName, "size")
_mediumQuery.Path = field.NewString(tableName, "path")
_mediumQuery.Metas = field.NewJSONB(tableName, "metas")
_mediumQuery.Hash = field.NewString(tableName, "hash")
_mediaQuery.fillFieldMap()
_mediumQuery.fillFieldMap()
return _mediaQuery
return _mediumQuery
}
type mediaQuery struct {
mediaQueryDo mediaQueryDo
type mediumQuery struct {
mediumQueryDo mediumQueryDo
ALL field.Asterisk
ID field.Int64
@@ -55,17 +55,17 @@ type mediaQuery struct {
fieldMap map[string]field.Expr
}
func (m mediaQuery) Table(newTableName string) *mediaQuery {
m.mediaQueryDo.UseTable(newTableName)
func (m mediumQuery) Table(newTableName string) *mediumQuery {
m.mediumQueryDo.UseTable(newTableName)
return m.updateTableName(newTableName)
}
func (m mediaQuery) As(alias string) *mediaQuery {
m.mediaQueryDo.DO = *(m.mediaQueryDo.As(alias).(*gen.DO))
func (m mediumQuery) As(alias string) *mediumQuery {
m.mediumQueryDo.DO = *(m.mediumQueryDo.As(alias).(*gen.DO))
return m.updateTableName(alias)
}
func (m *mediaQuery) updateTableName(table string) *mediaQuery {
func (m *mediumQuery) updateTableName(table string) *mediumQuery {
m.ALL = field.NewAsterisk(table)
m.ID = field.NewInt64(table, "id")
m.CreatedAt = field.NewTime(table, "created_at")
@@ -81,21 +81,21 @@ func (m *mediaQuery) updateTableName(table string) *mediaQuery {
return m
}
func (m *mediaQuery) QueryContext(ctx context.Context) (*mediaQuery, *mediaQueryDo) {
return m, m.mediaQueryDo.WithContext(ctx)
func (m *mediumQuery) QueryContext(ctx context.Context) (*mediumQuery, *mediumQueryDo) {
return m, m.mediumQueryDo.WithContext(ctx)
}
func (m *mediaQuery) WithContext(ctx context.Context) *mediaQueryDo {
return m.mediaQueryDo.WithContext(ctx)
func (m *mediumQuery) WithContext(ctx context.Context) *mediumQueryDo {
return m.mediumQueryDo.WithContext(ctx)
}
func (m mediaQuery) TableName() string { return m.mediaQueryDo.TableName() }
func (m mediumQuery) TableName() string { return m.mediumQueryDo.TableName() }
func (m mediaQuery) Alias() string { return m.mediaQueryDo.Alias() }
func (m mediumQuery) Alias() string { return m.mediumQueryDo.Alias() }
func (m mediaQuery) Columns(cols ...field.Expr) gen.Columns { return m.mediaQueryDo.Columns(cols...) }
func (m mediumQuery) Columns(cols ...field.Expr) gen.Columns { return m.mediumQueryDo.Columns(cols...) }
func (m *mediaQuery) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
func (m *mediumQuery) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
_f, ok := m.fieldMap[fieldName]
if !ok || _f == nil {
return nil, false
@@ -104,7 +104,7 @@ func (m *mediaQuery) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
return _oe, ok
}
func (m *mediaQuery) fillFieldMap() {
func (m *mediumQuery) fillFieldMap() {
m.fieldMap = make(map[string]field.Expr, 8)
m.fieldMap["id"] = m.ID
m.fieldMap["created_at"] = m.CreatedAt
@@ -116,161 +116,161 @@ func (m *mediaQuery) fillFieldMap() {
m.fieldMap["hash"] = m.Hash
}
func (m mediaQuery) clone(db *gorm.DB) mediaQuery {
m.mediaQueryDo.ReplaceConnPool(db.Statement.ConnPool)
func (m mediumQuery) clone(db *gorm.DB) mediumQuery {
m.mediumQueryDo.ReplaceConnPool(db.Statement.ConnPool)
return m
}
func (m mediaQuery) replaceDB(db *gorm.DB) mediaQuery {
m.mediaQueryDo.ReplaceDB(db)
func (m mediumQuery) replaceDB(db *gorm.DB) mediumQuery {
m.mediumQueryDo.ReplaceDB(db)
return m
}
type mediaQueryDo struct{ gen.DO }
type mediumQueryDo struct{ gen.DO }
func (m mediaQueryDo) Debug() *mediaQueryDo {
func (m mediumQueryDo) Debug() *mediumQueryDo {
return m.withDO(m.DO.Debug())
}
func (m mediaQueryDo) WithContext(ctx context.Context) *mediaQueryDo {
func (m mediumQueryDo) WithContext(ctx context.Context) *mediumQueryDo {
return m.withDO(m.DO.WithContext(ctx))
}
func (m mediaQueryDo) ReadDB() *mediaQueryDo {
func (m mediumQueryDo) ReadDB() *mediumQueryDo {
return m.Clauses(dbresolver.Read)
}
func (m mediaQueryDo) WriteDB() *mediaQueryDo {
func (m mediumQueryDo) WriteDB() *mediumQueryDo {
return m.Clauses(dbresolver.Write)
}
func (m mediaQueryDo) Session(config *gorm.Session) *mediaQueryDo {
func (m mediumQueryDo) Session(config *gorm.Session) *mediumQueryDo {
return m.withDO(m.DO.Session(config))
}
func (m mediaQueryDo) Clauses(conds ...clause.Expression) *mediaQueryDo {
func (m mediumQueryDo) Clauses(conds ...clause.Expression) *mediumQueryDo {
return m.withDO(m.DO.Clauses(conds...))
}
func (m mediaQueryDo) Returning(value interface{}, columns ...string) *mediaQueryDo {
func (m mediumQueryDo) Returning(value interface{}, columns ...string) *mediumQueryDo {
return m.withDO(m.DO.Returning(value, columns...))
}
func (m mediaQueryDo) Not(conds ...gen.Condition) *mediaQueryDo {
func (m mediumQueryDo) Not(conds ...gen.Condition) *mediumQueryDo {
return m.withDO(m.DO.Not(conds...))
}
func (m mediaQueryDo) Or(conds ...gen.Condition) *mediaQueryDo {
func (m mediumQueryDo) Or(conds ...gen.Condition) *mediumQueryDo {
return m.withDO(m.DO.Or(conds...))
}
func (m mediaQueryDo) Select(conds ...field.Expr) *mediaQueryDo {
func (m mediumQueryDo) Select(conds ...field.Expr) *mediumQueryDo {
return m.withDO(m.DO.Select(conds...))
}
func (m mediaQueryDo) Where(conds ...gen.Condition) *mediaQueryDo {
func (m mediumQueryDo) Where(conds ...gen.Condition) *mediumQueryDo {
return m.withDO(m.DO.Where(conds...))
}
func (m mediaQueryDo) Order(conds ...field.Expr) *mediaQueryDo {
func (m mediumQueryDo) Order(conds ...field.Expr) *mediumQueryDo {
return m.withDO(m.DO.Order(conds...))
}
func (m mediaQueryDo) Distinct(cols ...field.Expr) *mediaQueryDo {
func (m mediumQueryDo) Distinct(cols ...field.Expr) *mediumQueryDo {
return m.withDO(m.DO.Distinct(cols...))
}
func (m mediaQueryDo) Omit(cols ...field.Expr) *mediaQueryDo {
func (m mediumQueryDo) Omit(cols ...field.Expr) *mediumQueryDo {
return m.withDO(m.DO.Omit(cols...))
}
func (m mediaQueryDo) Join(table schema.Tabler, on ...field.Expr) *mediaQueryDo {
func (m mediumQueryDo) Join(table schema.Tabler, on ...field.Expr) *mediumQueryDo {
return m.withDO(m.DO.Join(table, on...))
}
func (m mediaQueryDo) LeftJoin(table schema.Tabler, on ...field.Expr) *mediaQueryDo {
func (m mediumQueryDo) LeftJoin(table schema.Tabler, on ...field.Expr) *mediumQueryDo {
return m.withDO(m.DO.LeftJoin(table, on...))
}
func (m mediaQueryDo) RightJoin(table schema.Tabler, on ...field.Expr) *mediaQueryDo {
func (m mediumQueryDo) RightJoin(table schema.Tabler, on ...field.Expr) *mediumQueryDo {
return m.withDO(m.DO.RightJoin(table, on...))
}
func (m mediaQueryDo) Group(cols ...field.Expr) *mediaQueryDo {
func (m mediumQueryDo) Group(cols ...field.Expr) *mediumQueryDo {
return m.withDO(m.DO.Group(cols...))
}
func (m mediaQueryDo) Having(conds ...gen.Condition) *mediaQueryDo {
func (m mediumQueryDo) Having(conds ...gen.Condition) *mediumQueryDo {
return m.withDO(m.DO.Having(conds...))
}
func (m mediaQueryDo) Limit(limit int) *mediaQueryDo {
func (m mediumQueryDo) Limit(limit int) *mediumQueryDo {
return m.withDO(m.DO.Limit(limit))
}
func (m mediaQueryDo) Offset(offset int) *mediaQueryDo {
func (m mediumQueryDo) Offset(offset int) *mediumQueryDo {
return m.withDO(m.DO.Offset(offset))
}
func (m mediaQueryDo) Scopes(funcs ...func(gen.Dao) gen.Dao) *mediaQueryDo {
func (m mediumQueryDo) Scopes(funcs ...func(gen.Dao) gen.Dao) *mediumQueryDo {
return m.withDO(m.DO.Scopes(funcs...))
}
func (m mediaQueryDo) Unscoped() *mediaQueryDo {
func (m mediumQueryDo) Unscoped() *mediumQueryDo {
return m.withDO(m.DO.Unscoped())
}
func (m mediaQueryDo) Create(values ...*Media) error {
func (m mediumQueryDo) Create(values ...*Medium) error {
if len(values) == 0 {
return nil
}
return m.DO.Create(values)
}
func (m mediaQueryDo) CreateInBatches(values []*Media, batchSize int) error {
func (m mediumQueryDo) CreateInBatches(values []*Medium, batchSize int) error {
return m.DO.CreateInBatches(values, batchSize)
}
// Save : !!! underlying implementation is different with GORM
// The method is equivalent to executing the statement: db.Clauses(clause.OnConflict{UpdateAll: true}).Create(values)
func (m mediaQueryDo) Save(values ...*Media) error {
func (m mediumQueryDo) Save(values ...*Medium) error {
if len(values) == 0 {
return nil
}
return m.DO.Save(values)
}
func (m mediaQueryDo) First() (*Media, error) {
func (m mediumQueryDo) First() (*Medium, error) {
if result, err := m.DO.First(); err != nil {
return nil, err
} else {
return result.(*Media), nil
return result.(*Medium), nil
}
}
func (m mediaQueryDo) Take() (*Media, error) {
func (m mediumQueryDo) Take() (*Medium, error) {
if result, err := m.DO.Take(); err != nil {
return nil, err
} else {
return result.(*Media), nil
return result.(*Medium), nil
}
}
func (m mediaQueryDo) Last() (*Media, error) {
func (m mediumQueryDo) Last() (*Medium, error) {
if result, err := m.DO.Last(); err != nil {
return nil, err
} else {
return result.(*Media), nil
return result.(*Medium), nil
}
}
func (m mediaQueryDo) Find() ([]*Media, error) {
func (m mediumQueryDo) Find() ([]*Medium, error) {
result, err := m.DO.Find()
return result.([]*Media), err
return result.([]*Medium), err
}
func (m mediaQueryDo) FindInBatch(batchSize int, fc func(tx gen.Dao, batch int) error) (results []*Media, err error) {
buf := make([]*Media, 0, batchSize)
func (m mediumQueryDo) FindInBatch(batchSize int, fc func(tx gen.Dao, batch int) error) (results []*Medium, err error) {
buf := make([]*Medium, 0, batchSize)
err = m.DO.FindInBatches(&buf, batchSize, func(tx gen.Dao, batch int) error {
defer func() { results = append(results, buf...) }()
return fc(tx, batch)
@@ -278,49 +278,49 @@ func (m mediaQueryDo) FindInBatch(batchSize int, fc func(tx gen.Dao, batch int)
return results, err
}
func (m mediaQueryDo) FindInBatches(result *[]*Media, batchSize int, fc func(tx gen.Dao, batch int) error) error {
func (m mediumQueryDo) FindInBatches(result *[]*Medium, batchSize int, fc func(tx gen.Dao, batch int) error) error {
return m.DO.FindInBatches(result, batchSize, fc)
}
func (m mediaQueryDo) Attrs(attrs ...field.AssignExpr) *mediaQueryDo {
func (m mediumQueryDo) Attrs(attrs ...field.AssignExpr) *mediumQueryDo {
return m.withDO(m.DO.Attrs(attrs...))
}
func (m mediaQueryDo) Assign(attrs ...field.AssignExpr) *mediaQueryDo {
func (m mediumQueryDo) Assign(attrs ...field.AssignExpr) *mediumQueryDo {
return m.withDO(m.DO.Assign(attrs...))
}
func (m mediaQueryDo) Joins(fields ...field.RelationField) *mediaQueryDo {
func (m mediumQueryDo) Joins(fields ...field.RelationField) *mediumQueryDo {
for _, _f := range fields {
m = *m.withDO(m.DO.Joins(_f))
}
return &m
}
func (m mediaQueryDo) Preload(fields ...field.RelationField) *mediaQueryDo {
func (m mediumQueryDo) Preload(fields ...field.RelationField) *mediumQueryDo {
for _, _f := range fields {
m = *m.withDO(m.DO.Preload(_f))
}
return &m
}
func (m mediaQueryDo) FirstOrInit() (*Media, error) {
func (m mediumQueryDo) FirstOrInit() (*Medium, error) {
if result, err := m.DO.FirstOrInit(); err != nil {
return nil, err
} else {
return result.(*Media), nil
return result.(*Medium), nil
}
}
func (m mediaQueryDo) FirstOrCreate() (*Media, error) {
func (m mediumQueryDo) FirstOrCreate() (*Medium, error) {
if result, err := m.DO.FirstOrCreate(); err != nil {
return nil, err
} else {
return result.(*Media), nil
return result.(*Medium), nil
}
}
func (m mediaQueryDo) FindByPage(offset int, limit int) (result []*Media, count int64, err error) {
func (m mediumQueryDo) FindByPage(offset int, limit int) (result []*Medium, count int64, err error) {
result, err = m.Offset(offset).Limit(limit).Find()
if err != nil {
return
@@ -335,7 +335,7 @@ func (m mediaQueryDo) FindByPage(offset int, limit int) (result []*Media, count
return
}
func (m mediaQueryDo) ScanByPage(result interface{}, offset int, limit int) (count int64, err error) {
func (m mediumQueryDo) ScanByPage(result interface{}, offset int, limit int) (count int64, err error) {
count, err = m.Count()
if err != nil {
return
@@ -345,35 +345,35 @@ func (m mediaQueryDo) ScanByPage(result interface{}, offset int, limit int) (cou
return
}
func (m mediaQueryDo) Scan(result interface{}) (err error) {
func (m mediumQueryDo) Scan(result interface{}) (err error) {
return m.DO.Scan(result)
}
func (m mediaQueryDo) Delete(models ...*Media) (result gen.ResultInfo, err error) {
func (m mediumQueryDo) Delete(models ...*Medium) (result gen.ResultInfo, err error) {
return m.DO.Delete(models)
}
// ForceDelete performs a permanent delete (ignores soft-delete) for current scope.
func (m mediaQueryDo) ForceDelete() (gen.ResultInfo, error) {
func (m mediumQueryDo) ForceDelete() (gen.ResultInfo, error) {
return m.Unscoped().Delete()
}
// Inc increases the given column by step for current scope.
func (m mediaQueryDo) Inc(column field.Expr, step int64) (gen.ResultInfo, error) {
func (m mediumQueryDo) Inc(column field.Expr, step int64) (gen.ResultInfo, error) {
// column = column + step
e := field.NewUnsafeFieldRaw("?+?", column.RawExpr(), step)
return m.DO.UpdateColumn(column, e)
}
// Dec decreases the given column by step for current scope.
func (m mediaQueryDo) Dec(column field.Expr, step int64) (gen.ResultInfo, error) {
func (m mediumQueryDo) Dec(column field.Expr, step int64) (gen.ResultInfo, error) {
// column = column - step
e := field.NewUnsafeFieldRaw("?-?", column.RawExpr(), step)
return m.DO.UpdateColumn(column, e)
}
// Sum returns SUM(column) for current scope.
func (m mediaQueryDo) Sum(column field.Expr) (float64, error) {
func (m mediumQueryDo) Sum(column field.Expr) (float64, error) {
var _v float64
agg := field.NewUnsafeFieldRaw("SUM(?)", column.RawExpr())
if err := m.Select(agg).Scan(&_v); err != nil {
@@ -383,7 +383,7 @@ func (m mediaQueryDo) Sum(column field.Expr) (float64, error) {
}
// Avg returns AVG(column) for current scope.
func (m mediaQueryDo) Avg(column field.Expr) (float64, error) {
func (m mediumQueryDo) Avg(column field.Expr) (float64, error) {
var _v float64
agg := field.NewUnsafeFieldRaw("AVG(?)", column.RawExpr())
if err := m.Select(agg).Scan(&_v); err != nil {
@@ -393,7 +393,7 @@ func (m mediaQueryDo) Avg(column field.Expr) (float64, error) {
}
// Min returns MIN(column) for current scope.
func (m mediaQueryDo) Min(column field.Expr) (float64, error) {
func (m mediumQueryDo) Min(column field.Expr) (float64, error) {
var _v float64
agg := field.NewUnsafeFieldRaw("MIN(?)", column.RawExpr())
if err := m.Select(agg).Scan(&_v); err != nil {
@@ -403,7 +403,7 @@ func (m mediaQueryDo) Min(column field.Expr) (float64, error) {
}
// Max returns MAX(column) for current scope.
func (m mediaQueryDo) Max(column field.Expr) (float64, error) {
func (m mediumQueryDo) Max(column field.Expr) (float64, error) {
var _v float64
agg := field.NewUnsafeFieldRaw("MAX(?)", column.RawExpr())
if err := m.Select(agg).Scan(&_v); err != nil {
@@ -413,7 +413,7 @@ func (m mediaQueryDo) Max(column field.Expr) (float64, error) {
}
// PluckMap returns a map[key]value for selected key/value expressions within current scope.
func (m mediaQueryDo) PluckMap(key, val field.Expr) (map[interface{}]interface{}, error) {
func (m mediumQueryDo) PluckMap(key, val field.Expr) (map[interface{}]interface{}, error) {
do := m.Select(key, val)
rows, err := do.DO.Rows()
if err != nil {
@@ -433,7 +433,7 @@ func (m mediaQueryDo) PluckMap(key, val field.Expr) (map[interface{}]interface{}
}
// Exists returns true if any record matches the given conditions.
func (m mediaQueryDo) Exists(conds ...gen.Condition) (bool, error) {
func (m mediumQueryDo) Exists(conds ...gen.Condition) (bool, error) {
cnt, err := m.Where(conds...).Count()
if err != nil {
return false, err
@@ -442,7 +442,7 @@ func (m mediaQueryDo) Exists(conds ...gen.Condition) (bool, error) {
}
// PluckIDs returns all primary key values under current scope.
func (m mediaQueryDo) PluckIDs() ([]int64, error) {
func (m mediumQueryDo) PluckIDs() ([]int64, error) {
ids := make([]int64, 0, 16)
pk := field.NewInt64(m.TableName(), "id")
if err := m.DO.Pluck(pk, &ids); err != nil {
@@ -452,28 +452,28 @@ func (m mediaQueryDo) PluckIDs() ([]int64, error) {
}
// GetByID finds a single record by primary key.
func (m mediaQueryDo) GetByID(id int64) (*Media, error) {
func (m mediumQueryDo) GetByID(id int64) (*Medium, error) {
pk := field.NewInt64(m.TableName(), "id")
return m.Where(pk.Eq(id)).First()
}
// GetByIDs finds records by primary key list.
func (m mediaQueryDo) GetByIDs(ids ...int64) ([]*Media, error) {
func (m mediumQueryDo) GetByIDs(ids ...int64) ([]*Medium, error) {
if len(ids) == 0 {
return []*Media{}, nil
return []*Medium{}, nil
}
pk := field.NewInt64(m.TableName(), "id")
return m.Where(pk.In(ids...)).Find()
}
// DeleteByID deletes records by primary key.
func (m mediaQueryDo) DeleteByID(id int64) (gen.ResultInfo, error) {
func (m mediumQueryDo) DeleteByID(id int64) (gen.ResultInfo, error) {
pk := field.NewInt64(m.TableName(), "id")
return m.Where(pk.Eq(id)).Delete()
}
// DeleteByIDs deletes records by a list of primary keys.
func (m mediaQueryDo) DeleteByIDs(ids ...int64) (gen.ResultInfo, error) {
func (m mediumQueryDo) DeleteByIDs(ids ...int64) (gen.ResultInfo, error) {
if len(ids) == 0 {
return gen.ResultInfo{RowsAffected: 0, Error: nil}, nil
}
@@ -481,7 +481,7 @@ func (m mediaQueryDo) DeleteByIDs(ids ...int64) (gen.ResultInfo, error) {
return m.Where(pk.In(ids...)).Delete()
}
func (m *mediaQueryDo) withDO(do gen.Dao) *mediaQueryDo {
func (m *mediumQueryDo) withDO(do gen.Dao) *mediumQueryDo {
m.DO = *do.(*gen.DO)
return m
}

View File

@@ -17,7 +17,7 @@ import (
var (
Q = new(Query)
MediaQuery *mediaQuery
MediumQuery *mediumQuery
OrderQuery *orderQuery
PostQuery *postQuery
UserQuery *userQuery
@@ -26,7 +26,7 @@ var (
func SetDefault(db *gorm.DB, opts ...gen.DOOption) {
*Q = *Use(db, opts...)
MediaQuery = &Q.Media
MediumQuery = &Q.Medium
OrderQuery = &Q.Order
PostQuery = &Q.Post
UserQuery = &Q.User
@@ -36,7 +36,7 @@ func SetDefault(db *gorm.DB, opts ...gen.DOOption) {
func Use(db *gorm.DB, opts ...gen.DOOption) *Query {
return &Query{
db: db,
Media: newMedia(db, opts...),
Medium: newMedium(db, opts...),
Order: newOrder(db, opts...),
Post: newPost(db, opts...),
User: newUser(db, opts...),
@@ -47,7 +47,7 @@ func Use(db *gorm.DB, opts ...gen.DOOption) *Query {
type Query struct {
db *gorm.DB
Media mediaQuery
Medium mediumQuery
Order orderQuery
Post postQuery
User userQuery
@@ -59,7 +59,7 @@ func (q *Query) Available() bool { return q.db != nil }
func (q *Query) clone(db *gorm.DB) *Query {
return &Query{
db: db,
Media: q.Media.clone(db),
Medium: q.Medium.clone(db),
Order: q.Order.clone(db),
Post: q.Post.clone(db),
User: q.User.clone(db),
@@ -78,7 +78,7 @@ func (q *Query) WriteDB() *Query {
func (q *Query) ReplaceDB(db *gorm.DB) *Query {
return &Query{
db: db,
Media: q.Media.replaceDB(db),
Medium: q.Medium.replaceDB(db),
Order: q.Order.replaceDB(db),
Post: q.Post.replaceDB(db),
User: q.User.replaceDB(db),
@@ -87,7 +87,7 @@ func (q *Query) ReplaceDB(db *gorm.DB) *Query {
}
type queryCtx struct {
Media *mediaQueryDo
Medium *mediumQueryDo
Order *orderQueryDo
Post *postQueryDo
User *userQueryDo
@@ -96,7 +96,7 @@ type queryCtx struct {
func (q *Query) WithContext(ctx context.Context) *queryCtx {
return &queryCtx{
Media: q.Media.WithContext(ctx),
Medium: q.Medium.WithContext(ctx),
Order: q.Order.WithContext(ctx),
Post: q.Post.WithContext(ctx),
User: q.User.WithContext(ctx),

View File

@@ -30,6 +30,7 @@ type User struct {
Metas types.JSONType[fields.UserMetas] `gorm:"column:metas;type:jsonb;not null;default:{}" json:"metas"`
AuthToken types.JSONType[fields.UserAuthToken] `gorm:"column:auth_token;type:jsonb;not null;default:{}" json:"auth_token"`
Balance int64 `gorm:"column:balance;type:bigint;not null" json:"balance"`
Phone string `gorm:"column:phone;type:character varying(15);not null" json:"phone"`
}
// Quick operations without importing query package

View File

@@ -36,6 +36,7 @@ func newUser(db *gorm.DB, opts ...gen.DOOption) userQuery {
_userQuery.Metas = field.NewJSONB(tableName, "metas")
_userQuery.AuthToken = field.NewJSONB(tableName, "auth_token")
_userQuery.Balance = field.NewInt64(tableName, "balance")
_userQuery.Phone = field.NewString(tableName, "phone")
_userQuery.fillFieldMap()
@@ -57,6 +58,7 @@ type userQuery struct {
Metas field.JSONB
AuthToken field.JSONB
Balance field.Int64
Phone field.String
fieldMap map[string]field.Expr
}
@@ -84,6 +86,7 @@ func (u *userQuery) updateTableName(table string) *userQuery {
u.Metas = field.NewJSONB(table, "metas")
u.AuthToken = field.NewJSONB(table, "auth_token")
u.Balance = field.NewInt64(table, "balance")
u.Phone = field.NewString(table, "phone")
u.fillFieldMap()
@@ -114,7 +117,7 @@ func (u *userQuery) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
}
func (u *userQuery) fillFieldMap() {
u.fieldMap = make(map[string]field.Expr, 11)
u.fieldMap = make(map[string]field.Expr, 12)
u.fieldMap["id"] = u.ID
u.fieldMap["created_at"] = u.CreatedAt
u.fieldMap["updated_at"] = u.UpdatedAt
@@ -126,6 +129,7 @@ func (u *userQuery) fillFieldMap() {
u.fieldMap["metas"] = u.Metas
u.fieldMap["auth_token"] = u.AuthToken
u.fieldMap["balance"] = u.Balance
u.fieldMap["phone"] = u.Phone
}
func (u userQuery) clone(db *gorm.DB) userQuery {