package migrate

import (
	"github.com/pingcap/log"
	"go.uber.org/zap"
	"gorm.io/gorm"
)

var _ = AddDBMigrateRecord(
	"202412122139",
	func(db *gorm.DB) error {
		ddl := "CREATE TABLE IF NOT EXISTS `project_canaries` (" +
			" `project_id` bigint unsigned NOT NULL," +
			" `created_at` timestamp NOT NULL," +
			" PRIMARY KEY (`project_id`)" +
			")"
		err := db.Exec(ddl).Error
		if err != nil {
			log.Error("create table project_canaries failed", zap.Error(err))
		}

		err = db.Exec("ALTER TABLE cluster_tidb_pools ADD COLUMN `project_id` bigint unsigned DEFAULT NULL").Error
		if err != nil {
			log.Error("add column `project_id` failed", zap.Error(err))
		}

		err = db.Exec("ALTER TABLE clusters ADD INDEX `idx_project_id` (`project_id`)").Error
		if err != nil {
			log.Error("add index idx_project_id failed", zap.Error(err))
		}

		err = db.Exec("ALTER TABLE clusters ADD INDEX `idx_canary_mark` (`canary_mark`)").Error
		if err != nil {
			log.Error("add index idx_canary_mark failed", zap.Error(err))
		}

		return nil
	},
)
