recommender/internal/dao/gen.go
2024-11-07 18:09:13 +08:00

160 lines
4.0 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 dao
import (
"context"
"database/sql"
"gorm.io/gorm"
"gorm.io/gen"
"gorm.io/plugin/dbresolver"
)
var (
Q = new(Query)
Application *application
ApplicationToken *applicationToken
Post *post
PostTag *postTag
Tag *tag
TagMapping *tagMapping
UserLike *userLike
UserTagScore *userTagScore
)
func SetDefault(db *gorm.DB, opts ...gen.DOOption) {
*Q = *Use(db, opts...)
Application = &Q.Application
ApplicationToken = &Q.ApplicationToken
Post = &Q.Post
PostTag = &Q.PostTag
Tag = &Q.Tag
TagMapping = &Q.TagMapping
UserLike = &Q.UserLike
UserTagScore = &Q.UserTagScore
}
func Use(db *gorm.DB, opts ...gen.DOOption) *Query {
return &Query{
db: db,
Application: newApplication(db, opts...),
ApplicationToken: newApplicationToken(db, opts...),
Post: newPost(db, opts...),
PostTag: newPostTag(db, opts...),
Tag: newTag(db, opts...),
TagMapping: newTagMapping(db, opts...),
UserLike: newUserLike(db, opts...),
UserTagScore: newUserTagScore(db, opts...),
}
}
type Query struct {
db *gorm.DB
Application application
ApplicationToken applicationToken
Post post
PostTag postTag
Tag tag
TagMapping tagMapping
UserLike userLike
UserTagScore userTagScore
}
func (q *Query) Available() bool { return q.db != nil }
func (q *Query) clone(db *gorm.DB) *Query {
return &Query{
db: db,
Application: q.Application.clone(db),
ApplicationToken: q.ApplicationToken.clone(db),
Post: q.Post.clone(db),
PostTag: q.PostTag.clone(db),
Tag: q.Tag.clone(db),
TagMapping: q.TagMapping.clone(db),
UserLike: q.UserLike.clone(db),
UserTagScore: q.UserTagScore.clone(db),
}
}
func (q *Query) ReadDB() *Query {
return q.ReplaceDB(q.db.Clauses(dbresolver.Read))
}
func (q *Query) WriteDB() *Query {
return q.ReplaceDB(q.db.Clauses(dbresolver.Write))
}
func (q *Query) ReplaceDB(db *gorm.DB) *Query {
return &Query{
db: db,
Application: q.Application.replaceDB(db),
ApplicationToken: q.ApplicationToken.replaceDB(db),
Post: q.Post.replaceDB(db),
PostTag: q.PostTag.replaceDB(db),
Tag: q.Tag.replaceDB(db),
TagMapping: q.TagMapping.replaceDB(db),
UserLike: q.UserLike.replaceDB(db),
UserTagScore: q.UserTagScore.replaceDB(db),
}
}
type queryCtx struct {
Application IApplicationDo
ApplicationToken IApplicationTokenDo
Post IPostDo
PostTag IPostTagDo
Tag ITagDo
TagMapping ITagMappingDo
UserLike IUserLikeDo
UserTagScore IUserTagScoreDo
}
func (q *Query) WithContext(ctx context.Context) *queryCtx {
return &queryCtx{
Application: q.Application.WithContext(ctx),
ApplicationToken: q.ApplicationToken.WithContext(ctx),
Post: q.Post.WithContext(ctx),
PostTag: q.PostTag.WithContext(ctx),
Tag: q.Tag.WithContext(ctx),
TagMapping: q.TagMapping.WithContext(ctx),
UserLike: q.UserLike.WithContext(ctx),
UserTagScore: q.UserTagScore.WithContext(ctx),
}
}
func (q *Query) Transaction(fc func(tx *Query) error, opts ...*sql.TxOptions) error {
return q.db.Transaction(func(tx *gorm.DB) error { return fc(q.clone(tx)) }, opts...)
}
func (q *Query) Begin(opts ...*sql.TxOptions) *QueryTx {
tx := q.db.Begin(opts...)
return &QueryTx{Query: q.clone(tx), Error: tx.Error}
}
type QueryTx struct {
*Query
Error error
}
func (q *QueryTx) Commit() error {
return q.db.Commit().Error
}
func (q *QueryTx) Rollback() error {
return q.db.Rollback().Error
}
func (q *QueryTx) SavePoint(name string) error {
return q.db.SavePoint(name).Error
}
func (q *QueryTx) RollbackTo(name string) error {
return q.db.RollbackTo(name).Error
}