package constant

// for workflow

// Dedicated
const (
	// dag
	DagDedicatedCreateCluster  = "mgmt_dedicated_create_cluster"
	DagDedicatedDeleteCluster  = "mgmt_dedicated_delete_cluster"
	DagDedicatedRestoreCluster = "mgmt_dedicated_restore_cluster"

	// dynamic dag
	DagPrefixDedicatedCreateMigrationCluster = "mgmt_dedicated_create_migration_cluster"

	// task
	TaskDedicatedGlobalCreateCluster      = "dedicated_global_create_cluster"
	TaskDedicatedGlobalDeleteCluster      = "dedicated_global_delete_cluster"
	TaskDedicatedGlobalRestoreCluster     = "dedicated_global_restore_cluster"
	TaskDedicatedClusterFinalBackup       = "dedicated_cluster_final_backup"
	TaskDedicatedCreateMigrationCluster   = "dedicated_create_migration_cluster"
	TaskDedicatedSyncSystemVariables      = "dedicated_sync_system_variables"
	TaskDedicatedSyncPdOnlineConfig       = "dedicated_sync_pd_online_config"
	TaskDedicatedPollUntilAvailable       = "dedicated_poll_until_available"
	TaskDedicatedSetMigrationClusterState = "dedicated_set_migration_cluster_state"
	TaskDedicatedCreateNodeGroup          = "dedicated_create_node_group"
)

// Dedicated to Premium precheck.
const (
	DagPrefixDedicatedToPremiumPrecheck    = "mgmt_dedicated_to_premium_precheck"
	TaskRunDedicatedToPremiumPrecheckItem  = "run_dedicated_to_premium_precheck_item"
	TaskFinalizeDedicatedToPremiumPrecheck = "finalize_dedicated_to_premium_precheck"

	KeyDedicatedToPremiumPrecheckID = "dedicated_to_premium_precheck_id"
	KeyPrecheckCategory             = "precheck_category"
	KeyPrecheckCheckKey             = "precheck_check_key"
)

// Serverless
const (
	// dag
	DagServerlessCreateCluster = "mgmt_serverless_create_cluster"
	DagServerlessDeleteCluster = "mgmt_serverless_delete_cluster"

	DagServerlessClaimClusterFromZero = "mgmt_serverless_claim_cluster_from_zero"
	// task
	TaskServerlessGlobalCreateCluster     = "serverless_global_create_cluster"
	TaskServerlessGlobalDeleteCluster     = "serverless_global_delete_cluster"
	TaskServerlessWaitClusterReady        = "serverless_wait_cluster_ready"
	TaskServerlessEnsureZeroSpendingLimit = "serverless_ensure_zero_spending_limit"
	TaskServerlessCreateDataMigrationTask = "serverless_create_data_migration_task"
	TaskServerlessCheckDataMigrationTask  = "serverless_check_data_migration_task"

	KeyZeroClusterID       = "zero_cluster_id"
	KeyDataMigrationTaskID = "data_migration_task_id"
)

// workflow Var keys
const (
	KeyRequest            = "request"
	KeyFinalBackup        = "final_backup"
	KeyRestoreFromCluster = "restore_from_cluster"
	KeyClusterID          = "cluster_id"
	KeyMigrationClusterID = "migration_cluster_id"
	KeyDisplayName        = "display_name"
	KeyNodeCount          = "node_count"
)

// NextGen cluster
const (
	DagNextGenCreateCluster  = "mgmt_nextgen_create_cluster"
	DagNextGenDeleteCluster  = "mgmt_nextgen_delete_cluster"
	DagNextGenRestoreCluster = "mgmt_nextgen_restore_cluster"

	TaskNextGenGlobalCreateCluster          = "mgmt_nextgen_global_create_cluster"
	TaskNextGenFinalBackup                  = "mgmt_nextgen_final_backup"
	TaskNextGenGlobalDeleteCluster          = "mgmt_nextgen_global_delete_cluster"
	TaskNextGenDeleteResourcePoolIfEmpty    = "mgmt_nextgen_delete_resource_pool_if_empty"
	TaskNextGenGlobalRestoreCluster         = "mgmt_nextgen_global_restore_cluster"
	TaskNextGenGlobalWaitClusterReady       = "mgmt_nextgen_global_wait_cluster_ready"
	TaskNextGenGlobalClearRestoreStatus     = "mgmt_nextgen_global_clear_restore_status"
	TaskNextGenGlobalEmitRestoredEvent      = "mgmt_nextgen_global_emit_restored_event"
	TaskNextGenGlobalStopRestoreIfExists    = "mgmt_nextgen_global_stop_restore_if_exists"
	TaskDedicatedShutdownUpgradeCluster     = "mgmt_dedicated_shutdown_upgrade_cluster"
	TaskDedicatedRestoreToExistingCluster   = "mgmt_dedicated_restore_to_existing_cluster"
	TaskDedicatedPollRestoreClusterFinished = "mgmt_dedicated_poll_restore_cluster_finished"

	KeyRestoreID                 = "restore_id"
	KeyResourcePoolID            = "resource_pool_id"
	KeyOrganizationID            = "organization_id"
	KeyServicePlan               = "service_plan"
	KeyDeleteResourcePoolIfEmpty = "delete_resource_pool_if_empty"
)

// DataSynchronization
const (
	// dynamic dag
	DagPrefixDataSynchronizationCreate = "mgmt_data_synchronization_create"

	// tasks (dynamic)
	TaskDataSynchronizationCreateSinkEndpoint     = "data_synchronization_create_sink_endpoint"
	TaskDataSynchronizationApproveSinkEndpoint    = "data_synchronization_approve_sink_endpoint"
	TaskDataSynchronizationWaitSinkEndpointActive = "data_synchronization_wait_sink_endpoint_active"
	TaskDataSynchronizationCreateChangefeed       = "data_synchronization_create_changefeed"
	TaskDataSynchronizationWaitChangefeedRunning  = "data_synchronization_wait_changefeed_running"

	// vars
	KeyDataSynchronizationID        = "data_synchronization_id"
	KeyDataSynchronizationCdcUser   = "data_synchronization_cdc_username"
	KeyDataSynchronizationCdcPasswd = "data_synchronization_cdc_password"
)

// ProjectMigration
const (
	// dynamic dag prefix
	DagPrefixProjectMigration = "mgmt_project_migration"

	// tasks (dynamic)
	TaskProjectMigrationEnsureTargets  = "project_migration_ensure_targets"
	TaskProjectMigrationMigrateProject = "project_migration_migrate_project"
	TaskProjectMigrationComplete       = "project_migration_complete"

	// vars
	KeyProjectMigrationTaskID     = "project_migration_task_id"
	KeyProjectMigrationProjectIdx = "project_migration_project_idx"
)
