package console

import (
	"github.com/tidbcloud/dataflow-service/app/models/domain"
	"github.com/tidbcloud/dataflow-service/app/repo/entity"
	"github.com/tidbcloud/dataflow-service/idl/pbgen/proto/dataflow"
)

func DomainRestoreStatusToDataflow(
	restore domain.RestoreStatusEnum,
) dataflow.RestoreStatus {
	switch restore {
	case domain.RestoreStatusEnumPending:
		return dataflow.RestoreStatus_RESTORE_STATUS_PENDING
	case domain.RestoreStatusEnumRunning:
		return dataflow.RestoreStatus_RESTORE_STATUS_RUNNING
	case domain.RestoreStatusEnumFailed:
		return dataflow.RestoreStatus_RESTORE_STATUS_FAILED
	case domain.RestoreStatusEnumSuccess:
		return dataflow.RestoreStatus_RESTORE_STATUS_SUCCESS
	default:
		return dataflow.RestoreStatus_RESTORE_STATUS_UNSPECIFIED
	}
}

// entityStatusToCRRFProtoStatus maps entity CRRFSettingStatus string to proto CRRFStatus enum.
func entityStatusToCRRFProtoStatus(status entity.CRRFSettingStatus) dataflow.CRRFStatus {
	switch status {
	case entity.CRRFSettingStatusDisabled:
		return dataflow.CRRFStatus_CRRF_STATUS_DISABLED
	case entity.CRRFSettingStatusEnabling:
		return dataflow.CRRFStatus_CRRF_STATUS_ENABLING
	case entity.CRRFSettingStatusEnabled:
		return dataflow.CRRFStatus_CRRF_STATUS_ENABLED
	case entity.CRRFSettingStatusDisabling:
		return dataflow.CRRFStatus_CRRF_STATUS_DISABLING
	case entity.CRRFSettingStatusFailed:
		return dataflow.CRRFStatus_CRRF_STATUS_FAILED
	default:
		return dataflow.CRRFStatus_CRRF_STATUS_UNSPECIFIED
	}
}
