package events // Publisher — минимальный интерфейс для встраивания шины в Core/Worker/Analyst. // // Core публикует доменные события через него; конкретная шина подставляется // при сборке приложения. На время тестов или до создания UI можно // использовать NilPublisher — безопасную no-op реализацию. type Publisher interface { Publish(e Event) } // NilPublisher — no-op издатель, чтобы компоненты могли работать без UI. type NilPublisher struct{} // Publish ничего не делает (совместимо с Publisher). func (NilPublisher) Publish(Event) {} // CompileTime-проверка: *Bus реализует Publisher. var _ Publisher = (*Bus)(nil) var _ Publisher = NilPublisher{}