package parser

import (
	"context"
	"fmt"

	contractevents "bit.admedia.com/scm/ad/adpilot-indexing-code-parser.com/internal/contracts/events"
)

// RecordCommitChangedFailure records a permanent commits.changed failure after DLQ exhaustion.
func (s *Service) RecordCommitChangedFailure(ctx context.Context, event contractevents.CommitsChangedEvent, message string) error {
	if s.finalize == nil {
		return nil
	}
	if event.RepoID == "" || event.SnapshotID == "" || event.CommitSHA == "" {
		return nil
	}
	if err := s.finalize.RecordCommitChangedFailure(ctx, event.RepoID, event.SnapshotID, event.CommitSHA, event.EventID, message); err != nil {
		return fmt.Errorf("record commit changed failure: %w", err)
	}
	return nil
}
