config

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 15, 2026 License: MIT Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AutoVerificationConfig

type AutoVerificationConfig struct {
	// Enabled controls whether simulated users bypass verification.
	Enabled bool `json:"enabled"`
	// DelayMs is the delay before auto-approving verification.
	DelayMs int `json:"delay_ms"`
}

AutoVerificationConfig configures automatic verification for simulated users.

type ConfigView

type ConfigView struct {
	Mode             SimulationMode         `json:"mode"`
	Delays           DelayConfig            `json:"delays"`
	Failures         FailureConfig          `json:"failures"`
	AutoVerification AutoVerificationConfig `json:"auto_verification"`
	Personas         PersonaConfig          `json:"personas"`
}

ConfigView is a JSON-safe representation of the configuration (no mutex).

type DelayConfig

type DelayConfig struct {
	// MinDelayMs is the minimum delay for any operation.
	MinDelayMs int `json:"min_delay_ms"`
	// MaxDelayMs is the maximum general delay.
	MaxDelayMs int `json:"max_delay_ms"`

	// Operation-specific delays.
	TransferDelayMs     int `json:"transfer_delay_ms"`
	KYCReviewDelayMs    int `json:"kyc_review_delay_ms"`
	VerificationDelayMs int `json:"verification_delay_ms"`
}

DelayConfig configures operation delays in milliseconds.

type FailureConfig

type FailureConfig struct {
	// Enabled controls whether failures are injected.
	Enabled bool `json:"enabled"`
	// FailureRate is the default failure probability (0.0-1.0).
	FailureRate float64 `json:"failure_rate"`

	// Operation-specific failure rates.
	TransferFailureRate float64 `json:"transfer_failure_rate"`
	KYCRejectRate       float64 `json:"kyc_reject_rate"`
}

FailureConfig configures failure injection.

type PersonaConfig

type PersonaConfig struct {
	// Enabled controls whether personas are active.
	Enabled bool `json:"enabled"`
	// IntervalSeconds is the activity check interval.
	IntervalSeconds int `json:"interval_seconds"`
	// TransactionsPerHour is the target transaction rate.
	TransactionsPerHour int `json:"transactions_per_hour"`
}

PersonaConfig configures persona activity.

type SimulationConfig

type SimulationConfig struct {

	// Mode determines overall behavior profile.
	Mode SimulationMode `json:"mode"`

	// Delays configuration.
	Delays DelayConfig `json:"delays"`

	// Failures configuration.
	Failures FailureConfig `json:"failures"`

	// AutoVerification configuration for simulated users.
	AutoVerification AutoVerificationConfig `json:"auto_verification"`

	// Persona activity configuration.
	Personas PersonaConfig `json:"personas"`
	// contains filtered or unexported fields
}

SimulationConfig holds runtime configuration for simulation behavior.

func NewDefaultConfig

func NewDefaultConfig() *SimulationConfig

NewDefaultConfig returns realistic mode configuration.

func NewDemoConfig

func NewDemoConfig() *SimulationConfig

NewDemoConfig returns demo mode configuration with minimal delays and no failures.

func (*SimulationConfig) Get

Get returns a thread-safe copy of the current configuration. NOTE: This copies the mutex - use GetView() for JSON serialization.

func (*SimulationConfig) GetAutoVerificationDelayMs

func (c *SimulationConfig) GetAutoVerificationDelayMs() int

GetAutoVerificationDelayMs returns the auto-verification delay in milliseconds.

func (*SimulationConfig) GetFailureRate

func (c *SimulationConfig) GetFailureRate() float64

GetFailureRate returns the general failure rate.

func (*SimulationConfig) GetKYCRejectRate

func (c *SimulationConfig) GetKYCRejectRate() float64

GetKYCRejectRate returns the KYC rejection rate.

func (*SimulationConfig) GetKYCReviewDelayMs

func (c *SimulationConfig) GetKYCReviewDelayMs() int

GetKYCReviewDelayMs returns the KYC review delay in milliseconds.

func (*SimulationConfig) GetMaxDelayMs

func (c *SimulationConfig) GetMaxDelayMs() int

GetMaxDelayMs returns the maximum delay in milliseconds.

func (*SimulationConfig) GetMinDelayMs

func (c *SimulationConfig) GetMinDelayMs() int

GetMinDelayMs returns the minimum delay in milliseconds.

func (*SimulationConfig) GetTransferDelayMs

func (c *SimulationConfig) GetTransferDelayMs() int

GetTransferDelayMs returns the transfer delay in milliseconds.

func (*SimulationConfig) GetTransferFailureRate

func (c *SimulationConfig) GetTransferFailureRate() float64

GetTransferFailureRate returns the transfer failure rate.

func (*SimulationConfig) GetVerificationDelayMs

func (c *SimulationConfig) GetVerificationDelayMs() int

GetVerificationDelayMs returns the verification delay in milliseconds.

func (*SimulationConfig) GetView

func (c *SimulationConfig) GetView() ConfigView

GetView returns a JSON-safe view of the current configuration.

func (*SimulationConfig) IsAutoVerificationEnabled

func (c *SimulationConfig) IsAutoVerificationEnabled() bool

IsAutoVerificationEnabled returns true if auto-verification is enabled.

func (*SimulationConfig) IsDemo

func (c *SimulationConfig) IsDemo() bool

IsDemo returns true if running in demo mode.

func (*SimulationConfig) IsFailuresEnabled

func (c *SimulationConfig) IsFailuresEnabled() bool

IsFailuresEnabled returns true if failure injection is enabled.

func (*SimulationConfig) IsRealistic

func (c *SimulationConfig) IsRealistic() bool

IsRealistic returns true if running in realistic mode.

func (*SimulationConfig) SetMode

func (c *SimulationConfig) SetMode(mode SimulationMode)

SetMode switches between realistic and demo modes. This updates all mode-dependent settings including delays, failures, auto-verification, and personas.

func (*SimulationConfig) Update

func (c *SimulationConfig) Update(update func(*SimulationConfig))

Update applies changes to the configuration in a thread-safe manner.

type SimulationMode

type SimulationMode string

SimulationMode defines the operation mode.

const (
	// ModeRealistic enables delays and failures for realistic behavior.
	ModeRealistic SimulationMode = "realistic"
	// ModeDemo uses fast paths with no failures for presentations.
	ModeDemo SimulationMode = "demo"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL