package migrate

import (
	"gorm.io/gorm"

	"github.com/tidbcloud/tidb-management-service/serverless-global-service/infra/persistence/model"
)

// Add ServicePlans to region.
var _ = AddDBMigrateRecord(
	"202508261800",
	func(db *gorm.DB) error {
		return db.Transaction(func(tx *gorm.DB) error {
			err := db.Exec(
				"ALTER TABLE regions ADD COLUMN service_plan ENUM('Starter','Essential','Premium','BYOC') NOT NULL DEFAULT 'Starter' AFTER provider_id;",
			).Error
			if err != nil {
				return err
			}
			err = db.Exec(
				"ALTER TABLE regions DROP INDEX idx_name_provider, ADD UNIQUE KEY idx_name_provider_service_plan (name, provider_id, service_plan);",
			).Error
			if err != nil {
				return err
			}
			if err := tx.AutoMigrate(&model.Region{}); err != nil {
				return err
			}
			return nil
		})
	},
)
