package records

import (
	"context"
	"time"

	"github.com/nexuscrm/kernel/pkg/perftiming"
)

func logRecordStageTiming(ctx context.Context, operation, stage, objectName, recordID string, started time.Time, err error, fields int) {
	if !perftiming.Enabled(ctx) && err == nil {
		return
	}
	perftiming.Event(ctx, "record_stage_timing", started, err).
		Str("operation", operation).
		Str("stage", stage).
		Str("object", objectName).
		Str("record_id", recordID).
		Int("fields", fields).
		Bool("has_error", err != nil).
		Msg("Record stage timing")
}

func logRecordTxBoundaryDecision(ctx context.Context, operation, objectName, decision, reason string, started time.Time, fields int) {
	if !perftiming.Enabled(ctx) {
		return
	}
	perftiming.Event(ctx, "record_tx_boundary_decision", started, nil).
		Str("operation", operation).
		Str("object", objectName).
		Str("decision", decision).
		Str("reason", reason).
		Int("fields", fields).
		Msg("Record transaction boundary decision")
}
