// Package events passes events between the parts of JobSearch that cause // them, such as the fetcher, and the parts that react to them, such as the // WebSocket hub, so neither depends on the other. It holds the event types // and their payloads. package events // Event types: an Event's Type, which says what its Payload is. const ( // OpportunitiesUpdated is published when a save stores new // opportunities or new releases of stored ones. Its payload is an // OpportunitiesUpdatedPayload. OpportunitiesUpdated = "OpportunitiesUpdated" // OpportunityMarksUpdated is published when an opportunity's marks are // changed over the API. Its payload is the opportunity's // types.OpportunityMarks after the change, which include its UUID. OpportunityMarksUpdated = "OpportunityMarksUpdated" ) // ---------- OpportunitiesUpdated ---------- // OpportunitiesUpdatedPayload lists the opportunities a save changed by UUID: // New were stored for the first time, and Updated were already stored and // gained at least one new release. Summary counts them. type OpportunitiesUpdatedPayload struct { New []string `json:"new"` Updated []string `json:"updated"` Summary OpportunitiesSummary `json:"summary"` } // OpportunitiesSummary counts the opportunities in an // OpportunitiesUpdatedPayload. type OpportunitiesSummary struct { New int `json:"new"` Updated int `json:"updated"` }