package migrate

import "gorm.io/gorm"

var _ = addRecord("202607211200", migrateDropLegacyTicketTriageColumns)

type legacyTicketTriageColumns struct {
	TriagePriority string `gorm:"column:triage_priority"`
	TriageType     string `gorm:"column:triage_type"`
	TriageModule   string `gorm:"column:triage_module"`
	TriageTagsJSON string `gorm:"column:triage_tags_json"`
}

func (legacyTicketTriageColumns) TableName() string {
	return "tickets"
}

func migrateDropLegacyTicketTriageColumns(db *gorm.DB) error {
	columns, err := db.Migrator().ColumnTypes(&legacyTicketTriageColumns{})
	if err != nil {
		return err
	}
	existing := make(map[string]struct{}, len(columns))
	for _, column := range columns {
		existing[column.Name()] = struct{}{}
	}
	for _, column := range []string{"triage_priority", "triage_type", "triage_module", "triage_tags_json"} {
		if _, ok := existing[column]; !ok {
			continue
		}
		if err := db.Migrator().DropColumn(&legacyTicketTriageColumns{}, column); err != nil {
			return err
		}
	}
	return nil
}
