35 lines
794 B
Go
35 lines
794 B
Go
package rasrush
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
// Event struct
|
|
type Event struct {
|
|
EventID string `json:"event_id"`
|
|
EventTopic string `json:"event_topic"`
|
|
EventSender string `json:"event_sender"`
|
|
EventMeta MetaData `json:"event_meta"`
|
|
EventData any `json:"event_data"`
|
|
EventTime string `json:"event_time"`
|
|
}
|
|
|
|
// NewEvent creates a new event
|
|
func NewEvent(eventSender, eventTopic string, eventMeta MetaData, eventData any) *Event {
|
|
// check if eventMeta is nil
|
|
if eventMeta == nil {
|
|
eventMeta = NewMetaData()
|
|
}
|
|
// return event
|
|
return &Event{
|
|
EventID: uuid.NewString(),
|
|
EventTopic: eventTopic,
|
|
EventSender: eventSender,
|
|
EventMeta: eventMeta,
|
|
EventData: eventData,
|
|
EventTime: time.Now().UTC().Format(time.RFC3339),
|
|
}
|
|
}
|