| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | package mainimport (	"flag"	"fmt"	"github.com/0xJacky/Nginx-UI/model"	"github.com/0xJacky/Nginx-UI/settings"	"gorm.io/driver/sqlite"	"gorm.io/gen"	"gorm.io/gorm"	"gorm.io/gorm/logger"	"log"	"path")func main() {	// specify the output directory (default: "./query")	// ### if you want to query without context constrain, set mode gen.WithoutContext ###	g := gen.NewGenerator(gen.Config{		OutPath: "../../query",		Mode:    gen.WithoutContext | gen.WithDefaultQuery,		//if you want the nullable field generation property to be pointer type, set FieldNullable true		FieldNullable: true,		//if you want to assign field which has default value in `Create` API, set FieldCoverable true, reference: https://gorm.io/docs/create.html#Default-Values		FieldCoverable: true,		// if you want to generate field with unsigned integer type, set FieldSignable true		/* FieldSignable: true,*/		//if you want to generate index tags from database, set FieldWithIndexTag true		/* FieldWithIndexTag: true,*/		//if you want to generate type tags from database, set FieldWithTypeTag true		/* FieldWithTypeTag: true,*/		//if you need unit tests for query code, set WithUnitTest true		/* WithUnitTest: true, */	})	// reuse the database connection in Project or create a connection here	// if you want to use GenerateModel/GenerateModelAs, UseDB is necessary or it will panic	var confPath string	flag.StringVar(&confPath, "config", "app.ini", "Specify the configuration file")	flag.Parse()	settings.Init(confPath)	dbPath := path.Join(path.Dir(settings.ConfPath), fmt.Sprintf("%s.db", settings.ServerSettings.Database))	var err error	db, err := gorm.Open(sqlite.Open(dbPath), &gorm.Config{		Logger:                                   logger.Default.LogMode(logger.Info),		PrepareStmt:                              true,		DisableForeignKeyConstraintWhenMigrating: true,	})	if err != nil {		log.Fatalln(err)	}	g.UseDB(db)	// apply basic crud api on structs or table models which is specified by table name with function	// GenerateModel/GenerateModelAs. And generator will generate table models' code when calling Excute.	g.ApplyBasic(model.GenerateAllModel()...)	// apply diy interfaces on structs or table models	g.ApplyInterface(func(method model.Method) {}, model.GenerateAllModel()...)	// execute the action of code generation	g.Execute()}
 |