package main import ( "fmt" "repo-pattern/app/lib/cfg" "repo-pattern/app/lib/db" "repo-pattern/app/lib/logging" "repo-pattern/app/models" "repo-pattern/app/repository" "repo-pattern/app/repository/smartfilter" "time" "gorm.io/gorm" ) var ( TRUE = true FALSE = false ) func doMagic(db *gorm.DB) { var err error query := db // id := "6dc096ab-5c03-427e-b808-c669f7446131" // serialNumber := "222" // serialNumberContains := "323" // issuer := "FINA" location, _ := time.LoadLocation("UTC") createdTime := time.Date(2024, 5, 26, 16, 8, 0, 0, location) f := smartfilter.SmartCertFilter[models.Cert]{ // Alive: &FALSE, // Id: &id, // SerialNumber: &serialNumber, // SerialNumberContains: &serialNumberContains, // IssuerContains: &issuer, CreatedAt_Lt: &createdTime, } query, err = f.ToQuery(query) if err != nil { panic(err) } var certs []models.Cert query.Order("created_at").Find(&certs) for n, cert := range certs { fmt.Printf(">> [%d] %+v %s\n", n, cert.Id, cert.CreatedAt) } } func main() { cfg.Init() logging.Init() defer logging.Log.Sync() db := db.InitDB() repository.Dao = repository.CreateDAO(db) doMagic(db) fmt.Println("Running...") }