package migrate

import (
	"github.com/pingcap/errors"
	"github.com/pingcap/log"
	"github.com/tidbcloud/dataflow-service-ng/app/repo/entity"
	"go.uber.org/zap"
	"gorm.io/gorm"
)

var _ = AddDataflowDBMigrateRecord(
	"202604151700",
	func(db *gorm.DB) error {
		tables := []struct {
			model interface{}
			name  string
		}{
			{&entity.PremiumDMTask{}, "premium_dm_tasks"},
			{&entity.PremiumDMSource{}, "premium_dm_sources"},
			{&entity.PremiumDMPrecheck{}, "premium_dm_prechecks"},
			{&entity.PremiumDMPrecheckItem{}, "premium_dm_precheck_items"},
		}
		for _, t := range tables {
			if err := db.AutoMigrate(t.model); err != nil {
				errMsg := "do auto migrate on table '" + t.name + "' failed"
				log.Error(errMsg, zap.Error(err))
				return errors.Annotate(err, errMsg)
			}
			log.Info("do auto migrate on table '" + t.name + "' successfully")
		}
		return nil
	},
)
