linstrom/storage-new/dbgen/users.gen.go
mstar 5e93ecee73
Some checks failed
/ docker (push) Failing after 3m56s
User import now works
2025-04-15 17:18:56 +02:00

1867 lines
48 KiB
Go

// Code generated by gorm.io/gen. DO NOT EDIT.
// Code generated by gorm.io/gen. DO NOT EDIT.
// Code generated by gorm.io/gen. DO NOT EDIT.
package dbgen
import (
"context"
"strings"
"git.mstar.dev/mstar/linstrom/storage-new/models"
"gorm.io/gorm"
"gorm.io/gorm/clause"
"gorm.io/gorm/schema"
"gorm.io/gen"
"gorm.io/gen/field"
"gorm.io/plugin/dbresolver"
)
func newUser(db *gorm.DB, opts ...gen.DOOption) user {
_user := user{}
_user.userDo.UseDB(db, opts...)
_user.userDo.UseModel(&models.User{})
tableName := _user.userDo.TableName()
_user.ALL = field.NewAsterisk(tableName)
_user.ID = field.NewString(tableName, "id")
_user.Username = field.NewString(tableName, "username")
_user.CreatedAt = field.NewTime(tableName, "created_at")
_user.UpdatedAt = field.NewTime(tableName, "updated_at")
_user.DeletedAt = field.NewField(tableName, "deleted_at")
_user.ServerId = field.NewUint(tableName, "server_id")
_user.DisplayName = field.NewString(tableName, "display_name")
_user.Description = field.NewString(tableName, "description")
_user.IsBot = field.NewBool(tableName, "is_bot")
_user.IconId = field.NewField(tableName, "icon_id")
_user.BackgroundId = field.NewField(tableName, "background_id")
_user.BannerId = field.NewField(tableName, "banner_id")
_user.Indexable = field.NewBool(tableName, "indexable")
_user.PublicKeyRsa = field.NewBytes(tableName, "public_key_rsa")
_user.PublicKeyEd = field.NewBytes(tableName, "public_key_ed")
_user.RestrictedFollow = field.NewBool(tableName, "restricted_follow")
_user.Birthday = field.NewField(tableName, "birthday")
_user.Location = field.NewField(tableName, "location")
_user.Verified = field.NewBool(tableName, "verified")
_user.PasskeyId = field.NewBytes(tableName, "passkey_id")
_user.FinishedRegistration = field.NewBool(tableName, "finished_registration")
_user.PrivateKeyRsa = field.NewBytes(tableName, "private_key_rsa")
_user.PrivateKeyEd = field.NewBytes(tableName, "private_key_ed")
_user.RemoteInfoId = field.NewField(tableName, "remote_info_id")
_user.RemoteInfo = userHasOneRemoteInfo{
db: db.Session(&gorm.Session{}),
RelationField: field.NewRelation("RemoteInfo", "models.UserRemoteLinks"),
User: struct {
field.RelationField
Server struct {
field.RelationField
Icon struct {
field.RelationField
}
Metadata struct {
field.RelationField
RemoteServer struct {
field.RelationField
}
}
}
Icon struct {
field.RelationField
}
Background struct {
field.RelationField
}
Banner struct {
field.RelationField
}
RemoteInfo struct {
field.RelationField
}
InfoFields struct {
field.RelationField
User struct {
field.RelationField
}
}
BeingTypes struct {
field.RelationField
User struct {
field.RelationField
}
}
Tags struct {
field.RelationField
User struct {
field.RelationField
}
}
Relations struct {
field.RelationField
User struct {
field.RelationField
}
TargetUser struct {
field.RelationField
}
}
Pronouns struct {
field.RelationField
User struct {
field.RelationField
}
}
Roles struct {
field.RelationField
User struct {
field.RelationField
}
Role struct {
field.RelationField
}
}
AuthMethods struct {
field.RelationField
User struct {
field.RelationField
}
}
}{
RelationField: field.NewRelation("RemoteInfo.User", "models.User"),
Server: struct {
field.RelationField
Icon struct {
field.RelationField
}
Metadata struct {
field.RelationField
RemoteServer struct {
field.RelationField
}
}
}{
RelationField: field.NewRelation("RemoteInfo.User.Server", "models.RemoteServer"),
Icon: struct {
field.RelationField
}{
RelationField: field.NewRelation("RemoteInfo.User.Server.Icon", "models.MediaMetadata"),
},
Metadata: struct {
field.RelationField
RemoteServer struct {
field.RelationField
}
}{
RelationField: field.NewRelation("RemoteInfo.User.Server.Metadata", "models.RemoteServerMetadata"),
RemoteServer: struct {
field.RelationField
}{
RelationField: field.NewRelation("RemoteInfo.User.Server.Metadata.RemoteServer", "models.RemoteServer"),
},
},
},
Icon: struct {
field.RelationField
}{
RelationField: field.NewRelation("RemoteInfo.User.Icon", "models.MediaMetadata"),
},
Background: struct {
field.RelationField
}{
RelationField: field.NewRelation("RemoteInfo.User.Background", "models.MediaMetadata"),
},
Banner: struct {
field.RelationField
}{
RelationField: field.NewRelation("RemoteInfo.User.Banner", "models.MediaMetadata"),
},
RemoteInfo: struct {
field.RelationField
}{
RelationField: field.NewRelation("RemoteInfo.User.RemoteInfo", "models.UserRemoteLinks"),
},
InfoFields: struct {
field.RelationField
User struct {
field.RelationField
}
}{
RelationField: field.NewRelation("RemoteInfo.User.InfoFields", "models.UserInfoField"),
User: struct {
field.RelationField
}{
RelationField: field.NewRelation("RemoteInfo.User.InfoFields.User", "models.User"),
},
},
BeingTypes: struct {
field.RelationField
User struct {
field.RelationField
}
}{
RelationField: field.NewRelation("RemoteInfo.User.BeingTypes", "models.UserToBeing"),
User: struct {
field.RelationField
}{
RelationField: field.NewRelation("RemoteInfo.User.BeingTypes.User", "models.User"),
},
},
Tags: struct {
field.RelationField
User struct {
field.RelationField
}
}{
RelationField: field.NewRelation("RemoteInfo.User.Tags", "models.UserToTag"),
User: struct {
field.RelationField
}{
RelationField: field.NewRelation("RemoteInfo.User.Tags.User", "models.User"),
},
},
Relations: struct {
field.RelationField
User struct {
field.RelationField
}
TargetUser struct {
field.RelationField
}
}{
RelationField: field.NewRelation("RemoteInfo.User.Relations", "models.UserToUserRelation"),
User: struct {
field.RelationField
}{
RelationField: field.NewRelation("RemoteInfo.User.Relations.User", "models.User"),
},
TargetUser: struct {
field.RelationField
}{
RelationField: field.NewRelation("RemoteInfo.User.Relations.TargetUser", "models.User"),
},
},
Pronouns: struct {
field.RelationField
User struct {
field.RelationField
}
}{
RelationField: field.NewRelation("RemoteInfo.User.Pronouns", "models.UserToPronoun"),
User: struct {
field.RelationField
}{
RelationField: field.NewRelation("RemoteInfo.User.Pronouns.User", "models.User"),
},
},
Roles: struct {
field.RelationField
User struct {
field.RelationField
}
Role struct {
field.RelationField
}
}{
RelationField: field.NewRelation("RemoteInfo.User.Roles", "models.UserToRole"),
User: struct {
field.RelationField
}{
RelationField: field.NewRelation("RemoteInfo.User.Roles.User", "models.User"),
},
Role: struct {
field.RelationField
}{
RelationField: field.NewRelation("RemoteInfo.User.Roles.Role", "models.Role"),
},
},
AuthMethods: struct {
field.RelationField
User struct {
field.RelationField
}
}{
RelationField: field.NewRelation("RemoteInfo.User.AuthMethods", "models.UserAuthMethod"),
User: struct {
field.RelationField
}{
RelationField: field.NewRelation("RemoteInfo.User.AuthMethods.User", "models.User"),
},
},
},
}
_user.InfoFields = userHasManyInfoFields{
db: db.Session(&gorm.Session{}),
RelationField: field.NewRelation("InfoFields", "models.UserInfoField"),
}
_user.BeingTypes = userHasManyBeingTypes{
db: db.Session(&gorm.Session{}),
RelationField: field.NewRelation("BeingTypes", "models.UserToBeing"),
}
_user.Tags = userHasManyTags{
db: db.Session(&gorm.Session{}),
RelationField: field.NewRelation("Tags", "models.UserToTag"),
}
_user.Relations = userHasManyRelations{
db: db.Session(&gorm.Session{}),
RelationField: field.NewRelation("Relations", "models.UserToUserRelation"),
}
_user.Pronouns = userHasManyPronouns{
db: db.Session(&gorm.Session{}),
RelationField: field.NewRelation("Pronouns", "models.UserToPronoun"),
}
_user.Roles = userHasManyRoles{
db: db.Session(&gorm.Session{}),
RelationField: field.NewRelation("Roles", "models.UserToRole"),
}
_user.AuthMethods = userHasManyAuthMethods{
db: db.Session(&gorm.Session{}),
RelationField: field.NewRelation("AuthMethods", "models.UserAuthMethod"),
}
_user.Server = userBelongsToServer{
db: db.Session(&gorm.Session{}),
RelationField: field.NewRelation("Server", "models.RemoteServer"),
}
_user.Icon = userBelongsToIcon{
db: db.Session(&gorm.Session{}),
RelationField: field.NewRelation("Icon", "models.MediaMetadata"),
}
_user.Background = userBelongsToBackground{
db: db.Session(&gorm.Session{}),
RelationField: field.NewRelation("Background", "models.MediaMetadata"),
}
_user.Banner = userBelongsToBanner{
db: db.Session(&gorm.Session{}),
RelationField: field.NewRelation("Banner", "models.MediaMetadata"),
}
_user.fillFieldMap()
return _user
}
type user struct {
userDo
ALL field.Asterisk
ID field.String
Username field.String
CreatedAt field.Time
UpdatedAt field.Time
DeletedAt field.Field
ServerId field.Uint
DisplayName field.String
Description field.String
IsBot field.Bool
IconId field.Field
BackgroundId field.Field
BannerId field.Field
Indexable field.Bool
PublicKeyRsa field.Bytes
PublicKeyEd field.Bytes
RestrictedFollow field.Bool
Birthday field.Field
Location field.Field
Verified field.Bool
PasskeyId field.Bytes
FinishedRegistration field.Bool
PrivateKeyRsa field.Bytes
PrivateKeyEd field.Bytes
RemoteInfoId field.Field
RemoteInfo userHasOneRemoteInfo
InfoFields userHasManyInfoFields
BeingTypes userHasManyBeingTypes
Tags userHasManyTags
Relations userHasManyRelations
Pronouns userHasManyPronouns
Roles userHasManyRoles
AuthMethods userHasManyAuthMethods
Server userBelongsToServer
Icon userBelongsToIcon
Background userBelongsToBackground
Banner userBelongsToBanner
fieldMap map[string]field.Expr
}
func (u user) Table(newTableName string) *user {
u.userDo.UseTable(newTableName)
return u.updateTableName(newTableName)
}
func (u user) As(alias string) *user {
u.userDo.DO = *(u.userDo.As(alias).(*gen.DO))
return u.updateTableName(alias)
}
func (u *user) updateTableName(table string) *user {
u.ALL = field.NewAsterisk(table)
u.ID = field.NewString(table, "id")
u.Username = field.NewString(table, "username")
u.CreatedAt = field.NewTime(table, "created_at")
u.UpdatedAt = field.NewTime(table, "updated_at")
u.DeletedAt = field.NewField(table, "deleted_at")
u.ServerId = field.NewUint(table, "server_id")
u.DisplayName = field.NewString(table, "display_name")
u.Description = field.NewString(table, "description")
u.IsBot = field.NewBool(table, "is_bot")
u.IconId = field.NewField(table, "icon_id")
u.BackgroundId = field.NewField(table, "background_id")
u.BannerId = field.NewField(table, "banner_id")
u.Indexable = field.NewBool(table, "indexable")
u.PublicKeyRsa = field.NewBytes(table, "public_key_rsa")
u.PublicKeyEd = field.NewBytes(table, "public_key_ed")
u.RestrictedFollow = field.NewBool(table, "restricted_follow")
u.Birthday = field.NewField(table, "birthday")
u.Location = field.NewField(table, "location")
u.Verified = field.NewBool(table, "verified")
u.PasskeyId = field.NewBytes(table, "passkey_id")
u.FinishedRegistration = field.NewBool(table, "finished_registration")
u.PrivateKeyRsa = field.NewBytes(table, "private_key_rsa")
u.PrivateKeyEd = field.NewBytes(table, "private_key_ed")
u.RemoteInfoId = field.NewField(table, "remote_info_id")
u.fillFieldMap()
return u
}
func (u *user) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
_f, ok := u.fieldMap[fieldName]
if !ok || _f == nil {
return nil, false
}
_oe, ok := _f.(field.OrderExpr)
return _oe, ok
}
func (u *user) fillFieldMap() {
u.fieldMap = make(map[string]field.Expr, 36)
u.fieldMap["id"] = u.ID
u.fieldMap["username"] = u.Username
u.fieldMap["created_at"] = u.CreatedAt
u.fieldMap["updated_at"] = u.UpdatedAt
u.fieldMap["deleted_at"] = u.DeletedAt
u.fieldMap["server_id"] = u.ServerId
u.fieldMap["display_name"] = u.DisplayName
u.fieldMap["description"] = u.Description
u.fieldMap["is_bot"] = u.IsBot
u.fieldMap["icon_id"] = u.IconId
u.fieldMap["background_id"] = u.BackgroundId
u.fieldMap["banner_id"] = u.BannerId
u.fieldMap["indexable"] = u.Indexable
u.fieldMap["public_key_rsa"] = u.PublicKeyRsa
u.fieldMap["public_key_ed"] = u.PublicKeyEd
u.fieldMap["restricted_follow"] = u.RestrictedFollow
u.fieldMap["birthday"] = u.Birthday
u.fieldMap["location"] = u.Location
u.fieldMap["verified"] = u.Verified
u.fieldMap["passkey_id"] = u.PasskeyId
u.fieldMap["finished_registration"] = u.FinishedRegistration
u.fieldMap["private_key_rsa"] = u.PrivateKeyRsa
u.fieldMap["private_key_ed"] = u.PrivateKeyEd
u.fieldMap["remote_info_id"] = u.RemoteInfoId
}
func (u user) clone(db *gorm.DB) user {
u.userDo.ReplaceConnPool(db.Statement.ConnPool)
return u
}
func (u user) replaceDB(db *gorm.DB) user {
u.userDo.ReplaceDB(db)
return u
}
type userHasOneRemoteInfo struct {
db *gorm.DB
field.RelationField
User struct {
field.RelationField
Server struct {
field.RelationField
Icon struct {
field.RelationField
}
Metadata struct {
field.RelationField
RemoteServer struct {
field.RelationField
}
}
}
Icon struct {
field.RelationField
}
Background struct {
field.RelationField
}
Banner struct {
field.RelationField
}
RemoteInfo struct {
field.RelationField
}
InfoFields struct {
field.RelationField
User struct {
field.RelationField
}
}
BeingTypes struct {
field.RelationField
User struct {
field.RelationField
}
}
Tags struct {
field.RelationField
User struct {
field.RelationField
}
}
Relations struct {
field.RelationField
User struct {
field.RelationField
}
TargetUser struct {
field.RelationField
}
}
Pronouns struct {
field.RelationField
User struct {
field.RelationField
}
}
Roles struct {
field.RelationField
User struct {
field.RelationField
}
Role struct {
field.RelationField
}
}
AuthMethods struct {
field.RelationField
User struct {
field.RelationField
}
}
}
}
func (a userHasOneRemoteInfo) Where(conds ...field.Expr) *userHasOneRemoteInfo {
if len(conds) == 0 {
return &a
}
exprs := make([]clause.Expression, 0, len(conds))
for _, cond := range conds {
exprs = append(exprs, cond.BeCond().(clause.Expression))
}
a.db = a.db.Clauses(clause.Where{Exprs: exprs})
return &a
}
func (a userHasOneRemoteInfo) WithContext(ctx context.Context) *userHasOneRemoteInfo {
a.db = a.db.WithContext(ctx)
return &a
}
func (a userHasOneRemoteInfo) Session(session *gorm.Session) *userHasOneRemoteInfo {
a.db = a.db.Session(session)
return &a
}
func (a userHasOneRemoteInfo) Model(m *models.User) *userHasOneRemoteInfoTx {
return &userHasOneRemoteInfoTx{a.db.Model(m).Association(a.Name())}
}
type userHasOneRemoteInfoTx struct{ tx *gorm.Association }
func (a userHasOneRemoteInfoTx) Find() (result *models.UserRemoteLinks, err error) {
return result, a.tx.Find(&result)
}
func (a userHasOneRemoteInfoTx) Append(values ...*models.UserRemoteLinks) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Append(targetValues...)
}
func (a userHasOneRemoteInfoTx) Replace(values ...*models.UserRemoteLinks) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Replace(targetValues...)
}
func (a userHasOneRemoteInfoTx) Delete(values ...*models.UserRemoteLinks) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Delete(targetValues...)
}
func (a userHasOneRemoteInfoTx) Clear() error {
return a.tx.Clear()
}
func (a userHasOneRemoteInfoTx) Count() int64 {
return a.tx.Count()
}
type userHasManyInfoFields struct {
db *gorm.DB
field.RelationField
}
func (a userHasManyInfoFields) Where(conds ...field.Expr) *userHasManyInfoFields {
if len(conds) == 0 {
return &a
}
exprs := make([]clause.Expression, 0, len(conds))
for _, cond := range conds {
exprs = append(exprs, cond.BeCond().(clause.Expression))
}
a.db = a.db.Clauses(clause.Where{Exprs: exprs})
return &a
}
func (a userHasManyInfoFields) WithContext(ctx context.Context) *userHasManyInfoFields {
a.db = a.db.WithContext(ctx)
return &a
}
func (a userHasManyInfoFields) Session(session *gorm.Session) *userHasManyInfoFields {
a.db = a.db.Session(session)
return &a
}
func (a userHasManyInfoFields) Model(m *models.User) *userHasManyInfoFieldsTx {
return &userHasManyInfoFieldsTx{a.db.Model(m).Association(a.Name())}
}
type userHasManyInfoFieldsTx struct{ tx *gorm.Association }
func (a userHasManyInfoFieldsTx) Find() (result []*models.UserInfoField, err error) {
return result, a.tx.Find(&result)
}
func (a userHasManyInfoFieldsTx) Append(values ...*models.UserInfoField) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Append(targetValues...)
}
func (a userHasManyInfoFieldsTx) Replace(values ...*models.UserInfoField) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Replace(targetValues...)
}
func (a userHasManyInfoFieldsTx) Delete(values ...*models.UserInfoField) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Delete(targetValues...)
}
func (a userHasManyInfoFieldsTx) Clear() error {
return a.tx.Clear()
}
func (a userHasManyInfoFieldsTx) Count() int64 {
return a.tx.Count()
}
type userHasManyBeingTypes struct {
db *gorm.DB
field.RelationField
}
func (a userHasManyBeingTypes) Where(conds ...field.Expr) *userHasManyBeingTypes {
if len(conds) == 0 {
return &a
}
exprs := make([]clause.Expression, 0, len(conds))
for _, cond := range conds {
exprs = append(exprs, cond.BeCond().(clause.Expression))
}
a.db = a.db.Clauses(clause.Where{Exprs: exprs})
return &a
}
func (a userHasManyBeingTypes) WithContext(ctx context.Context) *userHasManyBeingTypes {
a.db = a.db.WithContext(ctx)
return &a
}
func (a userHasManyBeingTypes) Session(session *gorm.Session) *userHasManyBeingTypes {
a.db = a.db.Session(session)
return &a
}
func (a userHasManyBeingTypes) Model(m *models.User) *userHasManyBeingTypesTx {
return &userHasManyBeingTypesTx{a.db.Model(m).Association(a.Name())}
}
type userHasManyBeingTypesTx struct{ tx *gorm.Association }
func (a userHasManyBeingTypesTx) Find() (result []*models.UserToBeing, err error) {
return result, a.tx.Find(&result)
}
func (a userHasManyBeingTypesTx) Append(values ...*models.UserToBeing) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Append(targetValues...)
}
func (a userHasManyBeingTypesTx) Replace(values ...*models.UserToBeing) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Replace(targetValues...)
}
func (a userHasManyBeingTypesTx) Delete(values ...*models.UserToBeing) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Delete(targetValues...)
}
func (a userHasManyBeingTypesTx) Clear() error {
return a.tx.Clear()
}
func (a userHasManyBeingTypesTx) Count() int64 {
return a.tx.Count()
}
type userHasManyTags struct {
db *gorm.DB
field.RelationField
}
func (a userHasManyTags) Where(conds ...field.Expr) *userHasManyTags {
if len(conds) == 0 {
return &a
}
exprs := make([]clause.Expression, 0, len(conds))
for _, cond := range conds {
exprs = append(exprs, cond.BeCond().(clause.Expression))
}
a.db = a.db.Clauses(clause.Where{Exprs: exprs})
return &a
}
func (a userHasManyTags) WithContext(ctx context.Context) *userHasManyTags {
a.db = a.db.WithContext(ctx)
return &a
}
func (a userHasManyTags) Session(session *gorm.Session) *userHasManyTags {
a.db = a.db.Session(session)
return &a
}
func (a userHasManyTags) Model(m *models.User) *userHasManyTagsTx {
return &userHasManyTagsTx{a.db.Model(m).Association(a.Name())}
}
type userHasManyTagsTx struct{ tx *gorm.Association }
func (a userHasManyTagsTx) Find() (result []*models.UserToTag, err error) {
return result, a.tx.Find(&result)
}
func (a userHasManyTagsTx) Append(values ...*models.UserToTag) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Append(targetValues...)
}
func (a userHasManyTagsTx) Replace(values ...*models.UserToTag) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Replace(targetValues...)
}
func (a userHasManyTagsTx) Delete(values ...*models.UserToTag) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Delete(targetValues...)
}
func (a userHasManyTagsTx) Clear() error {
return a.tx.Clear()
}
func (a userHasManyTagsTx) Count() int64 {
return a.tx.Count()
}
type userHasManyRelations struct {
db *gorm.DB
field.RelationField
}
func (a userHasManyRelations) Where(conds ...field.Expr) *userHasManyRelations {
if len(conds) == 0 {
return &a
}
exprs := make([]clause.Expression, 0, len(conds))
for _, cond := range conds {
exprs = append(exprs, cond.BeCond().(clause.Expression))
}
a.db = a.db.Clauses(clause.Where{Exprs: exprs})
return &a
}
func (a userHasManyRelations) WithContext(ctx context.Context) *userHasManyRelations {
a.db = a.db.WithContext(ctx)
return &a
}
func (a userHasManyRelations) Session(session *gorm.Session) *userHasManyRelations {
a.db = a.db.Session(session)
return &a
}
func (a userHasManyRelations) Model(m *models.User) *userHasManyRelationsTx {
return &userHasManyRelationsTx{a.db.Model(m).Association(a.Name())}
}
type userHasManyRelationsTx struct{ tx *gorm.Association }
func (a userHasManyRelationsTx) Find() (result []*models.UserToUserRelation, err error) {
return result, a.tx.Find(&result)
}
func (a userHasManyRelationsTx) Append(values ...*models.UserToUserRelation) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Append(targetValues...)
}
func (a userHasManyRelationsTx) Replace(values ...*models.UserToUserRelation) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Replace(targetValues...)
}
func (a userHasManyRelationsTx) Delete(values ...*models.UserToUserRelation) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Delete(targetValues...)
}
func (a userHasManyRelationsTx) Clear() error {
return a.tx.Clear()
}
func (a userHasManyRelationsTx) Count() int64 {
return a.tx.Count()
}
type userHasManyPronouns struct {
db *gorm.DB
field.RelationField
}
func (a userHasManyPronouns) Where(conds ...field.Expr) *userHasManyPronouns {
if len(conds) == 0 {
return &a
}
exprs := make([]clause.Expression, 0, len(conds))
for _, cond := range conds {
exprs = append(exprs, cond.BeCond().(clause.Expression))
}
a.db = a.db.Clauses(clause.Where{Exprs: exprs})
return &a
}
func (a userHasManyPronouns) WithContext(ctx context.Context) *userHasManyPronouns {
a.db = a.db.WithContext(ctx)
return &a
}
func (a userHasManyPronouns) Session(session *gorm.Session) *userHasManyPronouns {
a.db = a.db.Session(session)
return &a
}
func (a userHasManyPronouns) Model(m *models.User) *userHasManyPronounsTx {
return &userHasManyPronounsTx{a.db.Model(m).Association(a.Name())}
}
type userHasManyPronounsTx struct{ tx *gorm.Association }
func (a userHasManyPronounsTx) Find() (result []*models.UserToPronoun, err error) {
return result, a.tx.Find(&result)
}
func (a userHasManyPronounsTx) Append(values ...*models.UserToPronoun) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Append(targetValues...)
}
func (a userHasManyPronounsTx) Replace(values ...*models.UserToPronoun) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Replace(targetValues...)
}
func (a userHasManyPronounsTx) Delete(values ...*models.UserToPronoun) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Delete(targetValues...)
}
func (a userHasManyPronounsTx) Clear() error {
return a.tx.Clear()
}
func (a userHasManyPronounsTx) Count() int64 {
return a.tx.Count()
}
type userHasManyRoles struct {
db *gorm.DB
field.RelationField
}
func (a userHasManyRoles) Where(conds ...field.Expr) *userHasManyRoles {
if len(conds) == 0 {
return &a
}
exprs := make([]clause.Expression, 0, len(conds))
for _, cond := range conds {
exprs = append(exprs, cond.BeCond().(clause.Expression))
}
a.db = a.db.Clauses(clause.Where{Exprs: exprs})
return &a
}
func (a userHasManyRoles) WithContext(ctx context.Context) *userHasManyRoles {
a.db = a.db.WithContext(ctx)
return &a
}
func (a userHasManyRoles) Session(session *gorm.Session) *userHasManyRoles {
a.db = a.db.Session(session)
return &a
}
func (a userHasManyRoles) Model(m *models.User) *userHasManyRolesTx {
return &userHasManyRolesTx{a.db.Model(m).Association(a.Name())}
}
type userHasManyRolesTx struct{ tx *gorm.Association }
func (a userHasManyRolesTx) Find() (result []*models.UserToRole, err error) {
return result, a.tx.Find(&result)
}
func (a userHasManyRolesTx) Append(values ...*models.UserToRole) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Append(targetValues...)
}
func (a userHasManyRolesTx) Replace(values ...*models.UserToRole) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Replace(targetValues...)
}
func (a userHasManyRolesTx) Delete(values ...*models.UserToRole) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Delete(targetValues...)
}
func (a userHasManyRolesTx) Clear() error {
return a.tx.Clear()
}
func (a userHasManyRolesTx) Count() int64 {
return a.tx.Count()
}
type userHasManyAuthMethods struct {
db *gorm.DB
field.RelationField
}
func (a userHasManyAuthMethods) Where(conds ...field.Expr) *userHasManyAuthMethods {
if len(conds) == 0 {
return &a
}
exprs := make([]clause.Expression, 0, len(conds))
for _, cond := range conds {
exprs = append(exprs, cond.BeCond().(clause.Expression))
}
a.db = a.db.Clauses(clause.Where{Exprs: exprs})
return &a
}
func (a userHasManyAuthMethods) WithContext(ctx context.Context) *userHasManyAuthMethods {
a.db = a.db.WithContext(ctx)
return &a
}
func (a userHasManyAuthMethods) Session(session *gorm.Session) *userHasManyAuthMethods {
a.db = a.db.Session(session)
return &a
}
func (a userHasManyAuthMethods) Model(m *models.User) *userHasManyAuthMethodsTx {
return &userHasManyAuthMethodsTx{a.db.Model(m).Association(a.Name())}
}
type userHasManyAuthMethodsTx struct{ tx *gorm.Association }
func (a userHasManyAuthMethodsTx) Find() (result []*models.UserAuthMethod, err error) {
return result, a.tx.Find(&result)
}
func (a userHasManyAuthMethodsTx) Append(values ...*models.UserAuthMethod) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Append(targetValues...)
}
func (a userHasManyAuthMethodsTx) Replace(values ...*models.UserAuthMethod) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Replace(targetValues...)
}
func (a userHasManyAuthMethodsTx) Delete(values ...*models.UserAuthMethod) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Delete(targetValues...)
}
func (a userHasManyAuthMethodsTx) Clear() error {
return a.tx.Clear()
}
func (a userHasManyAuthMethodsTx) Count() int64 {
return a.tx.Count()
}
type userBelongsToServer struct {
db *gorm.DB
field.RelationField
}
func (a userBelongsToServer) Where(conds ...field.Expr) *userBelongsToServer {
if len(conds) == 0 {
return &a
}
exprs := make([]clause.Expression, 0, len(conds))
for _, cond := range conds {
exprs = append(exprs, cond.BeCond().(clause.Expression))
}
a.db = a.db.Clauses(clause.Where{Exprs: exprs})
return &a
}
func (a userBelongsToServer) WithContext(ctx context.Context) *userBelongsToServer {
a.db = a.db.WithContext(ctx)
return &a
}
func (a userBelongsToServer) Session(session *gorm.Session) *userBelongsToServer {
a.db = a.db.Session(session)
return &a
}
func (a userBelongsToServer) Model(m *models.User) *userBelongsToServerTx {
return &userBelongsToServerTx{a.db.Model(m).Association(a.Name())}
}
type userBelongsToServerTx struct{ tx *gorm.Association }
func (a userBelongsToServerTx) Find() (result *models.RemoteServer, err error) {
return result, a.tx.Find(&result)
}
func (a userBelongsToServerTx) Append(values ...*models.RemoteServer) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Append(targetValues...)
}
func (a userBelongsToServerTx) Replace(values ...*models.RemoteServer) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Replace(targetValues...)
}
func (a userBelongsToServerTx) Delete(values ...*models.RemoteServer) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Delete(targetValues...)
}
func (a userBelongsToServerTx) Clear() error {
return a.tx.Clear()
}
func (a userBelongsToServerTx) Count() int64 {
return a.tx.Count()
}
type userBelongsToIcon struct {
db *gorm.DB
field.RelationField
}
func (a userBelongsToIcon) Where(conds ...field.Expr) *userBelongsToIcon {
if len(conds) == 0 {
return &a
}
exprs := make([]clause.Expression, 0, len(conds))
for _, cond := range conds {
exprs = append(exprs, cond.BeCond().(clause.Expression))
}
a.db = a.db.Clauses(clause.Where{Exprs: exprs})
return &a
}
func (a userBelongsToIcon) WithContext(ctx context.Context) *userBelongsToIcon {
a.db = a.db.WithContext(ctx)
return &a
}
func (a userBelongsToIcon) Session(session *gorm.Session) *userBelongsToIcon {
a.db = a.db.Session(session)
return &a
}
func (a userBelongsToIcon) Model(m *models.User) *userBelongsToIconTx {
return &userBelongsToIconTx{a.db.Model(m).Association(a.Name())}
}
type userBelongsToIconTx struct{ tx *gorm.Association }
func (a userBelongsToIconTx) Find() (result *models.MediaMetadata, err error) {
return result, a.tx.Find(&result)
}
func (a userBelongsToIconTx) Append(values ...*models.MediaMetadata) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Append(targetValues...)
}
func (a userBelongsToIconTx) Replace(values ...*models.MediaMetadata) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Replace(targetValues...)
}
func (a userBelongsToIconTx) Delete(values ...*models.MediaMetadata) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Delete(targetValues...)
}
func (a userBelongsToIconTx) Clear() error {
return a.tx.Clear()
}
func (a userBelongsToIconTx) Count() int64 {
return a.tx.Count()
}
type userBelongsToBackground struct {
db *gorm.DB
field.RelationField
}
func (a userBelongsToBackground) Where(conds ...field.Expr) *userBelongsToBackground {
if len(conds) == 0 {
return &a
}
exprs := make([]clause.Expression, 0, len(conds))
for _, cond := range conds {
exprs = append(exprs, cond.BeCond().(clause.Expression))
}
a.db = a.db.Clauses(clause.Where{Exprs: exprs})
return &a
}
func (a userBelongsToBackground) WithContext(ctx context.Context) *userBelongsToBackground {
a.db = a.db.WithContext(ctx)
return &a
}
func (a userBelongsToBackground) Session(session *gorm.Session) *userBelongsToBackground {
a.db = a.db.Session(session)
return &a
}
func (a userBelongsToBackground) Model(m *models.User) *userBelongsToBackgroundTx {
return &userBelongsToBackgroundTx{a.db.Model(m).Association(a.Name())}
}
type userBelongsToBackgroundTx struct{ tx *gorm.Association }
func (a userBelongsToBackgroundTx) Find() (result *models.MediaMetadata, err error) {
return result, a.tx.Find(&result)
}
func (a userBelongsToBackgroundTx) Append(values ...*models.MediaMetadata) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Append(targetValues...)
}
func (a userBelongsToBackgroundTx) Replace(values ...*models.MediaMetadata) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Replace(targetValues...)
}
func (a userBelongsToBackgroundTx) Delete(values ...*models.MediaMetadata) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Delete(targetValues...)
}
func (a userBelongsToBackgroundTx) Clear() error {
return a.tx.Clear()
}
func (a userBelongsToBackgroundTx) Count() int64 {
return a.tx.Count()
}
type userBelongsToBanner struct {
db *gorm.DB
field.RelationField
}
func (a userBelongsToBanner) Where(conds ...field.Expr) *userBelongsToBanner {
if len(conds) == 0 {
return &a
}
exprs := make([]clause.Expression, 0, len(conds))
for _, cond := range conds {
exprs = append(exprs, cond.BeCond().(clause.Expression))
}
a.db = a.db.Clauses(clause.Where{Exprs: exprs})
return &a
}
func (a userBelongsToBanner) WithContext(ctx context.Context) *userBelongsToBanner {
a.db = a.db.WithContext(ctx)
return &a
}
func (a userBelongsToBanner) Session(session *gorm.Session) *userBelongsToBanner {
a.db = a.db.Session(session)
return &a
}
func (a userBelongsToBanner) Model(m *models.User) *userBelongsToBannerTx {
return &userBelongsToBannerTx{a.db.Model(m).Association(a.Name())}
}
type userBelongsToBannerTx struct{ tx *gorm.Association }
func (a userBelongsToBannerTx) Find() (result *models.MediaMetadata, err error) {
return result, a.tx.Find(&result)
}
func (a userBelongsToBannerTx) Append(values ...*models.MediaMetadata) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Append(targetValues...)
}
func (a userBelongsToBannerTx) Replace(values ...*models.MediaMetadata) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Replace(targetValues...)
}
func (a userBelongsToBannerTx) Delete(values ...*models.MediaMetadata) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Delete(targetValues...)
}
func (a userBelongsToBannerTx) Clear() error {
return a.tx.Clear()
}
func (a userBelongsToBannerTx) Count() int64 {
return a.tx.Count()
}
type userDo struct{ gen.DO }
type IUserDo interface {
gen.SubQuery
Debug() IUserDo
WithContext(ctx context.Context) IUserDo
WithResult(fc func(tx gen.Dao)) gen.ResultInfo
ReplaceDB(db *gorm.DB)
ReadDB() IUserDo
WriteDB() IUserDo
As(alias string) gen.Dao
Session(config *gorm.Session) IUserDo
Columns(cols ...field.Expr) gen.Columns
Clauses(conds ...clause.Expression) IUserDo
Not(conds ...gen.Condition) IUserDo
Or(conds ...gen.Condition) IUserDo
Select(conds ...field.Expr) IUserDo
Where(conds ...gen.Condition) IUserDo
Order(conds ...field.Expr) IUserDo
Distinct(cols ...field.Expr) IUserDo
Omit(cols ...field.Expr) IUserDo
Join(table schema.Tabler, on ...field.Expr) IUserDo
LeftJoin(table schema.Tabler, on ...field.Expr) IUserDo
RightJoin(table schema.Tabler, on ...field.Expr) IUserDo
Group(cols ...field.Expr) IUserDo
Having(conds ...gen.Condition) IUserDo
Limit(limit int) IUserDo
Offset(offset int) IUserDo
Count() (count int64, err error)
Scopes(funcs ...func(gen.Dao) gen.Dao) IUserDo
Unscoped() IUserDo
Create(values ...*models.User) error
CreateInBatches(values []*models.User, batchSize int) error
Save(values ...*models.User) error
First() (*models.User, error)
Take() (*models.User, error)
Last() (*models.User, error)
Find() ([]*models.User, error)
FindInBatch(batchSize int, fc func(tx gen.Dao, batch int) error) (results []*models.User, err error)
FindInBatches(result *[]*models.User, batchSize int, fc func(tx gen.Dao, batch int) error) error
Pluck(column field.Expr, dest interface{}) error
Delete(...*models.User) (info gen.ResultInfo, err error)
Update(column field.Expr, value interface{}) (info gen.ResultInfo, err error)
UpdateSimple(columns ...field.AssignExpr) (info gen.ResultInfo, err error)
Updates(value interface{}) (info gen.ResultInfo, err error)
UpdateColumn(column field.Expr, value interface{}) (info gen.ResultInfo, err error)
UpdateColumnSimple(columns ...field.AssignExpr) (info gen.ResultInfo, err error)
UpdateColumns(value interface{}) (info gen.ResultInfo, err error)
UpdateFrom(q gen.SubQuery) gen.Dao
Attrs(attrs ...field.AssignExpr) IUserDo
Assign(attrs ...field.AssignExpr) IUserDo
Joins(fields ...field.RelationField) IUserDo
Preload(fields ...field.RelationField) IUserDo
FirstOrInit() (*models.User, error)
FirstOrCreate() (*models.User, error)
FindByPage(offset int, limit int) (result []*models.User, count int64, err error)
ScanByPage(result interface{}, offset int, limit int) (count int64, err error)
Scan(result interface{}) (err error)
Returning(value interface{}, columns ...string) IUserDo
UnderlyingDB() *gorm.DB
schema.Tabler
GetByUsernameUnrestricted(username string) (result *models.User, err error)
GetByUsername(username string) (result *models.User, err error)
GetPagedTruePublic(pageNr uint) (result []models.User, err error)
GetPagedAllDeleted(pageNr uint) (result []models.User, err error)
GetPagedAllNonDeleted(pageNr uint) (result []models.User, err error)
GdprUsers() (err error)
}
// Get a user by a username, ignoring all restrictions on that user
//
// SELECT * FROM @@table WHERE username = @username AND deleted_at IS NULL LIMIT 1
func (u userDo) GetByUsernameUnrestricted(username string) (result *models.User, err error) {
var params []interface{}
var generateSQL strings.Builder
params = append(params, username)
generateSQL.WriteString("SELECT * FROM users WHERE username = ? AND deleted_at IS NULL LIMIT 1 ")
var executeSQL *gorm.DB
executeSQL = u.UnderlyingDB().Raw(generateSQL.String(), params...).Take(&result) // ignore_security_alert
err = executeSQL.Error
return
}
// Get a user by the username.
// Restricted to users visible to ActivityPub
//
// SELECT * FROM @@table WHERE
//
// username = @username AND
// deleted_at IS NULL AND
// finished_registration = true AND
// verified = true
//
// LIMIT 1
func (u userDo) GetByUsername(username string) (result *models.User, err error) {
var params []interface{}
var generateSQL strings.Builder
params = append(params, username)
generateSQL.WriteString("SELECT * FROM users WHERE username = ? AND deleted_at IS NULL AND finished_registration = true AND verified = true LIMIT 1 ")
var executeSQL *gorm.DB
executeSQL = u.UnderlyingDB().Raw(generateSQL.String(), params...).Take(&result) // ignore_security_alert
err = executeSQL.Error
return
}
// Get all true public accounts (verified & no restricted follow & indexable)
// in a paged manner, sorted by date saved
//
// SELECT * FROM @@table WHERE
//
// deleted_at IS NULL AND
// verified = true AND
// restricted_follow = false AND
// indexable = true
//
// ORDER BY created_at ASC
// LIMIT 50
// OFFSET @pageNr * 50
func (u userDo) GetPagedTruePublic(pageNr uint) (result []models.User, err error) {
var params []interface{}
var generateSQL strings.Builder
params = append(params, pageNr)
generateSQL.WriteString("SELECT * FROM users WHERE deleted_at IS NULL AND verified = true AND restricted_follow = false AND indexable = true ORDER BY created_at ASC LIMIT 50 OFFSET ? * 50 ")
var executeSQL *gorm.DB
executeSQL = u.UnderlyingDB().Raw(generateSQL.String(), params...).Find(&result) // ignore_security_alert
err = executeSQL.Error
return
}
// Get all deleted accounts in a paged manner, sorted by date saved
//
// SELECT * FROM @@table WHERE
//
// deleted_at IS NOT NULL AND
//
// ORDER BY created_at ASC
// LIMIT 50
// OFFSET @pageNr * 50
func (u userDo) GetPagedAllDeleted(pageNr uint) (result []models.User, err error) {
var params []interface{}
var generateSQL strings.Builder
params = append(params, pageNr)
generateSQL.WriteString("SELECT * FROM users WHERE deleted_at IS NOT NULL AND ORDER BY created_at ASC LIMIT 50 OFFSET ? * 50 ")
var executeSQL *gorm.DB
executeSQL = u.UnderlyingDB().Raw(generateSQL.String(), params...).Find(&result) // ignore_security_alert
err = executeSQL.Error
return
}
// Get all accounts that aren't deleted in a paged manner, sorted by date saved
//
// SELECT * FROM @@table WHERE
//
// deleted_at IS NULL
//
// ORDER BY created_at ASC
// LIMIT 50
// OFFSET @pageNr * 50
func (u userDo) GetPagedAllNonDeleted(pageNr uint) (result []models.User, err error) {
var params []interface{}
var generateSQL strings.Builder
params = append(params, pageNr)
generateSQL.WriteString("SELECT * FROM users WHERE deleted_at IS NULL ORDER BY created_at ASC LIMIT 50 OFFSET ? * 50 ")
var executeSQL *gorm.DB
executeSQL = u.UnderlyingDB().Raw(generateSQL.String(), params...).Find(&result) // ignore_security_alert
err = executeSQL.Error
return
}
// Gdpr deleted users
//
// DELETE FROM @@table WHERE deleted_at IS NOT NULL AND deleted_at + interval '30 days' < NOW()
func (u userDo) GdprUsers() (err error) {
var generateSQL strings.Builder
generateSQL.WriteString("DELETE FROM users WHERE deleted_at IS NOT NULL AND deleted_at + interval '30 days' < NOW() ")
var executeSQL *gorm.DB
executeSQL = u.UnderlyingDB().Exec(generateSQL.String()) // ignore_security_alert
err = executeSQL.Error
return
}
func (u userDo) Debug() IUserDo {
return u.withDO(u.DO.Debug())
}
func (u userDo) WithContext(ctx context.Context) IUserDo {
return u.withDO(u.DO.WithContext(ctx))
}
func (u userDo) ReadDB() IUserDo {
return u.Clauses(dbresolver.Read)
}
func (u userDo) WriteDB() IUserDo {
return u.Clauses(dbresolver.Write)
}
func (u userDo) Session(config *gorm.Session) IUserDo {
return u.withDO(u.DO.Session(config))
}
func (u userDo) Clauses(conds ...clause.Expression) IUserDo {
return u.withDO(u.DO.Clauses(conds...))
}
func (u userDo) Returning(value interface{}, columns ...string) IUserDo {
return u.withDO(u.DO.Returning(value, columns...))
}
func (u userDo) Not(conds ...gen.Condition) IUserDo {
return u.withDO(u.DO.Not(conds...))
}
func (u userDo) Or(conds ...gen.Condition) IUserDo {
return u.withDO(u.DO.Or(conds...))
}
func (u userDo) Select(conds ...field.Expr) IUserDo {
return u.withDO(u.DO.Select(conds...))
}
func (u userDo) Where(conds ...gen.Condition) IUserDo {
return u.withDO(u.DO.Where(conds...))
}
func (u userDo) Order(conds ...field.Expr) IUserDo {
return u.withDO(u.DO.Order(conds...))
}
func (u userDo) Distinct(cols ...field.Expr) IUserDo {
return u.withDO(u.DO.Distinct(cols...))
}
func (u userDo) Omit(cols ...field.Expr) IUserDo {
return u.withDO(u.DO.Omit(cols...))
}
func (u userDo) Join(table schema.Tabler, on ...field.Expr) IUserDo {
return u.withDO(u.DO.Join(table, on...))
}
func (u userDo) LeftJoin(table schema.Tabler, on ...field.Expr) IUserDo {
return u.withDO(u.DO.LeftJoin(table, on...))
}
func (u userDo) RightJoin(table schema.Tabler, on ...field.Expr) IUserDo {
return u.withDO(u.DO.RightJoin(table, on...))
}
func (u userDo) Group(cols ...field.Expr) IUserDo {
return u.withDO(u.DO.Group(cols...))
}
func (u userDo) Having(conds ...gen.Condition) IUserDo {
return u.withDO(u.DO.Having(conds...))
}
func (u userDo) Limit(limit int) IUserDo {
return u.withDO(u.DO.Limit(limit))
}
func (u userDo) Offset(offset int) IUserDo {
return u.withDO(u.DO.Offset(offset))
}
func (u userDo) Scopes(funcs ...func(gen.Dao) gen.Dao) IUserDo {
return u.withDO(u.DO.Scopes(funcs...))
}
func (u userDo) Unscoped() IUserDo {
return u.withDO(u.DO.Unscoped())
}
func (u userDo) Create(values ...*models.User) error {
if len(values) == 0 {
return nil
}
return u.DO.Create(values)
}
func (u userDo) CreateInBatches(values []*models.User, batchSize int) error {
return u.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 (u userDo) Save(values ...*models.User) error {
if len(values) == 0 {
return nil
}
return u.DO.Save(values)
}
func (u userDo) First() (*models.User, error) {
if result, err := u.DO.First(); err != nil {
return nil, err
} else {
return result.(*models.User), nil
}
}
func (u userDo) Take() (*models.User, error) {
if result, err := u.DO.Take(); err != nil {
return nil, err
} else {
return result.(*models.User), nil
}
}
func (u userDo) Last() (*models.User, error) {
if result, err := u.DO.Last(); err != nil {
return nil, err
} else {
return result.(*models.User), nil
}
}
func (u userDo) Find() ([]*models.User, error) {
result, err := u.DO.Find()
return result.([]*models.User), err
}
func (u userDo) FindInBatch(batchSize int, fc func(tx gen.Dao, batch int) error) (results []*models.User, err error) {
buf := make([]*models.User, 0, batchSize)
err = u.DO.FindInBatches(&buf, batchSize, func(tx gen.Dao, batch int) error {
defer func() { results = append(results, buf...) }()
return fc(tx, batch)
})
return results, err
}
func (u userDo) FindInBatches(result *[]*models.User, batchSize int, fc func(tx gen.Dao, batch int) error) error {
return u.DO.FindInBatches(result, batchSize, fc)
}
func (u userDo) Attrs(attrs ...field.AssignExpr) IUserDo {
return u.withDO(u.DO.Attrs(attrs...))
}
func (u userDo) Assign(attrs ...field.AssignExpr) IUserDo {
return u.withDO(u.DO.Assign(attrs...))
}
func (u userDo) Joins(fields ...field.RelationField) IUserDo {
for _, _f := range fields {
u = *u.withDO(u.DO.Joins(_f))
}
return &u
}
func (u userDo) Preload(fields ...field.RelationField) IUserDo {
for _, _f := range fields {
u = *u.withDO(u.DO.Preload(_f))
}
return &u
}
func (u userDo) FirstOrInit() (*models.User, error) {
if result, err := u.DO.FirstOrInit(); err != nil {
return nil, err
} else {
return result.(*models.User), nil
}
}
func (u userDo) FirstOrCreate() (*models.User, error) {
if result, err := u.DO.FirstOrCreate(); err != nil {
return nil, err
} else {
return result.(*models.User), nil
}
}
func (u userDo) FindByPage(offset int, limit int) (result []*models.User, count int64, err error) {
result, err = u.Offset(offset).Limit(limit).Find()
if err != nil {
return
}
if size := len(result); 0 < limit && 0 < size && size < limit {
count = int64(size + offset)
return
}
count, err = u.Offset(-1).Limit(-1).Count()
return
}
func (u userDo) ScanByPage(result interface{}, offset int, limit int) (count int64, err error) {
count, err = u.Count()
if err != nil {
return
}
err = u.Offset(offset).Limit(limit).Scan(result)
return
}
func (u userDo) Scan(result interface{}) (err error) {
return u.DO.Scan(result)
}
func (u userDo) Delete(models ...*models.User) (result gen.ResultInfo, err error) {
return u.DO.Delete(models)
}
func (u *userDo) withDO(do gen.Dao) *userDo {
u.DO = *do.(*gen.DO)
return u
}