package migration

import (
	"fmt"

	"gorm.io/gorm"
)

var _ = AddDBMigrateRecord(
	"release_20251021",
	func(db *gorm.DB) error {
		// Modify EndpointID column to VARCHAR(512) to support Azure private endpoint resource IDs
		// Azure resource IDs can be up to 195+ characters, e.g.:
		// /subscriptions/99549169-6cee-4263-8491-924a3011ee31/resourceGroups/dedicated-dev-eastus2-231d6fcce0972f536fb94fd962-193562e3/providers/Microsoft.Network/privateEndpoints/endpoint-3200444-4b1f4ded
		// ref: https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/resource-name-rules#microsoftnetwork
		// VARCHAR(512) allows up to 512 characters while staying within MySQL's 3072 byte index limit (512 * 4 bytes for utf8mb4 = 2048 bytes)
		if err := db.Exec("ALTER TABLE private_link_endpoints MODIFY COLUMN endpoint_id VARCHAR(512) NOT NULL").Error; err != nil {
			return fmt.Errorf("failed to modify endpoint_id column: %w", err)
		}
		return nil
	},
)
