package entity

import (
	"context"
	"fmt"

	"github.com/tidbcloud/dataflow-service/pkg/log"
)

func (s *CRRFSetting) Disable(ctx context.Context) (changed bool, err error) {
	logger := log.GetLogger(ctx)

	if s.Status == CRRFSettingStatusDisabled {
		logger.Info("crrf setting already disabled, idempotent skip")
		return false, nil
	}
	if s.Status != CRRFSettingStatusDisabling {
		return false, fmt.Errorf("crrf setting status is not disabling, cannot disable, current status: %s", s.Status)
	}

	s.Status = CRRFSettingStatusDisabled
	s.MasterRegion = ""
	s.SecondaryRegion = ""
	s.MasterBucketID = 0
	s.SecondaryBucketID = 0
	s.LogBackupID = 0
	s.ErrMsg = nil

	return true, nil
}
