package db

import (
	"github.com/tidbcloud/cluster-service-ng/pkg/storage/mysql/schema"
	"gorm.io/gorm"
)

func init() {
	AddDBMigrateRecord("20260806001", func(db *gorm.DB) error {
		if err := db.AutoMigrate(&schema.PauseResumeOperation{}); err != nil {
			return err
		}
		if err := db.AutoMigrate(&schema.SharedPool{}); err != nil {
			return err
		}
		if db.Name() != "mysql" {
			return nil
		}
		statements := []string{
			"ALTER TABLE shared_pools MODIFY pause_resume_state ENUM('pausing','paused','resuming') NULL",
			"ALTER TABLE shared_pool_pause_resume_operations MODIFY type ENUM('pause','resume') NOT NULL",
			"ALTER TABLE shared_pool_pause_resume_operations MODIFY status ENUM('running','succeeded','failed') NOT NULL",
			"ALTER TABLE shared_pool_pause_resume_operations MODIFY stage ENUM('precheck','flush_wal','apply_suspend','wait_suspended','apply_resume','wait_available') NOT NULL",
		}
		for _, statement := range statements {
			if err := db.Exec(statement).Error; err != nil {
				return err
			}
		}
		return nil
	})
}
