package impl

import (
	"context"

	"github.com/tidbcloud/dataflow-service/app/repo/entity"
	"github.com/tidbcloud/pkgv2/bizerr"
)

type dedicatedReplayClusterProvider struct {
	sourceAuditLogAddr *entity.AuditLogAddr
}

// PrepareTaskSourceAuditLogs leaves manual Dedicated task material unchanged.
func (p *dedicatedReplayClusterProvider) PrepareTaskSourceAuditLogs(_ entity.ReplayTaskList) bizerr.BizError {
	return nil
}

// PrepareSourceAuditLog returns Dedicated replay-level source material unchanged
// for auto mode.
// Example:
//   - source_audit_credential.aws.s3_url=s3://bucket/path -> same AWS material.
func (p *dedicatedReplayClusterProvider) PrepareSourceAuditLog(_ context.Context) (*entity.AuditLogAddr, bizerr.BizError) {
	return p.sourceAuditLogAddr, nil
}

// PrepareTargetEndpoint leaves the target endpoint empty because Dedicated
// infra-provider resolves the target by cluster identity.
// Example:
//   - Dedicated -> Dedicated replay -> target_endpoint is not set by dataflow.
func (p *dedicatedReplayClusterProvider) PrepareTargetEndpoint() (string, bizerr.BizError) {
	return "", nil
}
