package cvt

import (
	"fmt"

	"github.com/tidbcloud/dataflow-service/idl/pbgen/proto/dataflow"
	"github.com/tidbcloud/idl/pbgen/proto/openapi/dp"
)

func BackupType2OpenAPI(backup dataflow.BackupType) dp.BackupTypeEnum {
	switch backup {
	case dataflow.BackupType_AUTO:
		return dp.BackupTypeEnum_AUTO
	case dataflow.BackupType_MANUAL:
		return dp.BackupTypeEnum_MANUAL
	}
	panic("unsupported backup type")
}

func BackupStatus2OpenAPIList(status dataflow.Backup_ExternalStatus) dp.ListBackupItem_StatusEnum {
	switch status {
	case dataflow.Backup_RUNNING:
		return dp.ListBackupItem_RUNNING
	case dataflow.Backup_SUCCESS:
		return dp.ListBackupItem_SUCCESS
	case dataflow.Backup_FAILED:
		return dp.ListBackupItem_FAILED
	case dataflow.Backup_PENDING:
		return dp.ListBackupItem_PENDING
	}
	panic(fmt.Sprintf("unsupported backup status: %s", status))
}

func BackupStatus2OpenAPIGet(status dataflow.Backup_ExternalStatus) dp.GetBackupOfClusterResp_StatusEnum {
	switch status {
	case dataflow.Backup_RUNNING:
		return dp.GetBackupOfClusterResp_RUNNING
	case dataflow.Backup_SUCCESS:
		return dp.GetBackupOfClusterResp_SUCCESS
	case dataflow.Backup_FAILED:
		return dp.GetBackupOfClusterResp_FAILED
	case dataflow.Backup_PENDING:
		return dp.GetBackupOfClusterResp_PENDING
	}
	panic(fmt.Sprintf("unsupported backup status: %s", status))
}
