package constant

type WorkloadParamName string

const (
	BrStorageURL WorkloadParamName = "br_storage_url"
	// This is not a typo, it's the param name in tcms, and will be transformed to storage_url when parsed to tiworkload
	ImportStorageURL    WorkloadParamName = "br_storage_url"
	DataSource          WorkloadParamName = "data_source"
	Duration            WorkloadParamName = "duration"
	MaxConnectionNumber WorkloadParamName = "max_connection_number"
	MinRU               WorkloadParamName = "min_ru"
	MaxRU               WorkloadParamName = "max_ru"

	Thread         WorkloadParamName = "thread"
	ClientCount    WorkloadParamName = "client_cnt"
	ClientResource WorkloadParamName = "client_resource"

	ClusterType  WorkloadParamName = "cluster_type"
	WorkloadName WorkloadParamName = "workload_name"

	SQLStatement WorkloadParamName = "sql_statement"

	// Failure injection constants
	InjectFailure   WorkloadParamName = "inject_failure"
	RollbackFailure WorkloadParamName = "rollback_failure"
)

var NumericWorkloadParams = []WorkloadParamName{
	Duration,
	MaxConnectionNumber,
	MinRU,
	MaxRU,
	Thread,
	ClientCount,
}

var StringWorkloadParams = []WorkloadParamName{
	BrStorageURL,
	DataSource,
	SQLStatement,
	ClientResource,
}
