package events

import (
	"bit.admedia.com/scm/ad/adpilot-indexing-code-parser.com/internal/contracts/metadata"
)

// DocsParseCompletedEvent is published when docs fan-in completes for a snapshot.
type DocsParseCompletedEvent struct {
	metadata.Envelope
	RepoID             string `json:"repo_id"`
	SnapshotID         string `json:"snapshot_id"`
	ProcessedDocsFiles int    `json:"processed_docs_files,omitempty"`
	ExpectedDocsFiles  int    `json:"expected_docs_files,omitempty"`
}

// NewDocsParseCompletedEvent creates a v1 docs-parse-completed event.
func NewDocsParseCompletedEvent(eventID, repoID, snapshotID string, processed, expected int) DocsParseCompletedEvent {
	return DocsParseCompletedEvent{
		Envelope:           metadata.NewEnvelope(eventID),
		RepoID:             repoID,
		SnapshotID:         snapshotID,
		ProcessedDocsFiles: processed,
		ExpectedDocsFiles:  expected,
	}
}
