package migrate

import (
	modbase "github.com/tidbcloud/aisupport/services/ticket-manager/models/base"
	dispatchmodel "github.com/tidbcloud/aisupport/services/ticket-manager/models/dispatch"

	"gorm.io/gorm"
)

var _ = addRecord("202607151100", migrateDispatchModels)

func migrateDispatchModels(db *gorm.DB) error {
	return db.AutoMigrate(
		&dispatchmodel.Policy{},
		&legacyDispatchPolicyTrigger{},
		&legacyDispatchPolicyTriggerProject{},
		&dispatchmodel.Rule{},
		&dispatchmodel.Context{},
		&dispatchmodel.Execution{},
		&dispatchmodel.RuleExecution{},
	)
}

type legacyDispatchPolicyTrigger struct {
	PolicyID modbase.ID `gorm:"column:policy_id;type:bigint unsigned;not null;primaryKey"`
	Enable   bool       `gorm:"column:enable;type:boolean;not null;default:false"`
}

func (legacyDispatchPolicyTrigger) TableName() string {
	return "dispatch_policy_triggers"
}

type legacyDispatchPolicyTriggerProject struct {
	PolicyID   modbase.ID `gorm:"column:policy_id;type:bigint unsigned;not null;primaryKey"`
	ProjectKey string     `gorm:"column:project_key;type:varchar(32);not null;primaryKey;index:idx_dispatch_policy_trigger_project_key"`
}

func (legacyDispatchPolicyTriggerProject) TableName() string {
	return "dispatch_policy_trigger_projects"
}
