package realtime import ( "context" "encoding/json" "time" ) type Event struct { ID string `json:"id"` UserID string `json:"userId"` ProjectID string `json:"projectId"` ThreadID string `json:"threadId,omitempty"` Type string `json:"type"` Payload json.RawMessage `json:"payload,omitempty"` CreatedAt time.Time `json:"createdAt"` } type Bus interface { Publish(ctx context.Context, event Event) error Subscribe(ctx context.Context, projectID string) (Subscription, error) Close() error } type Subscription interface { C() <-chan Event Close() error }