Files
LazyPM/internal/models/action_event.go
2026-03-02 23:06:34 +01:00

30 lines
686 B
Go

package models
import "encoding/json"
type ActionEvent struct {
Source string `json:"source"`
Action string `json:"action"`
Target string `json:"target,omitempty"`
Result string `json:"result,omitempty"`
}
func EncodeActionEvent(event ActionEvent) string {
bytes, err := json.Marshal(event)
if err != nil {
return event.Action
}
return string(bytes)
}
func DecodeActionEvent(raw string) (ActionEvent, bool) {
var event ActionEvent
if err := json.Unmarshal([]byte(raw), &event); err != nil {
return ActionEvent{}, false
}
if event.Source == "" && event.Action == "" && event.Target == "" && event.Result == "" {
return ActionEvent{}, false
}
return event, true
}