You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
2.0 KiB
��
55 lines
2.0 KiB
��
// Package events provides domain event interfaces and types for the KnowFoolery application.
|
|
package events
|
|
|
|
// EventType represents the type of a domain event.
|
|
type EventType string
|
|
|
|
// Game session events
|
|
const (
|
|
// GameSessionStarted is emitted when a new game session starts.
|
|
GameSessionStarted EventType = "game_session.started"
|
|
// GameSessionEnded is emitted when a game session ends.
|
|
GameSessionEnded EventType = "game_session.ended"
|
|
// GameSessionTimedOut is emitted when a game session times out.
|
|
GameSessionTimedOut EventType = "game_session.timed_out"
|
|
// AnswerSubmitted is emitted when a player submits an answer.
|
|
AnswerSubmitted EventType = "game_session.answer_submitted"
|
|
// HintRequested is emitted when a player requests a hint.
|
|
HintRequested EventType = "game_session.hint_requested"
|
|
// QuestionAnswered is emitted when a question is fully answered (correct or max attempts).
|
|
QuestionAnswered EventType = "game_session.question_answered"
|
|
)
|
|
|
|
// User events
|
|
const (
|
|
// UserRegistered is emitted when a new user registers.
|
|
UserRegistered EventType = "user.registered"
|
|
// UserEmailVerified is emitted when a user verifies their email.
|
|
UserEmailVerified EventType = "user.email_verified"
|
|
// UserDeleted is emitted when a user account is deleted.
|
|
UserDeleted EventType = "user.deleted"
|
|
)
|
|
|
|
// Question events
|
|
const (
|
|
// QuestionCreated is emitted when a new question is created.
|
|
QuestionCreated EventType = "question.created"
|
|
// QuestionUpdated is emitted when a question is updated.
|
|
QuestionUpdated EventType = "question.updated"
|
|
// QuestionDeleted is emitted when a question is deleted.
|
|
QuestionDeleted EventType = "question.deleted"
|
|
)
|
|
|
|
// Leaderboard events
|
|
const (
|
|
// ScoreUpdated is emitted when a score is updated on the leaderboard.
|
|
ScoreUpdated EventType = "leaderboard.score_updated"
|
|
// LeaderboardRefreshed is emitted when the leaderboard is refreshed.
|
|
LeaderboardRefreshed EventType = "leaderboard.refreshed"
|
|
)
|
|
|
|
// String returns the string representation of the event type.
|
|
func (t EventType) String() string {
|
|
return string(t)
|
|
}
|