-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathevents.go
78 lines (67 loc) · 2.2 KB
/
events.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package esgallery
import (
"github.com/modernice/goes/codec"
"github.com/modernice/media-entity/gallery"
)
// Gallery events
const (
StackAdded = "esgallery.stack_added"
StackRemoved = "esgallery.stack_removed"
StackCleared = "esgallery.stack_cleared"
VariantsAdded = "esgallery.variants_added"
VariantAdded = "esgallery.variant_added"
VariantRemoved = "esgallery.variant_removed"
VariantReplaced = "esgallery.variant_replaced"
StackTagged = "esgallery.stack_tagged"
StackUntagged = "esgallery.stack_untagged"
Sorted = "esgallery.sorted"
Cleared = "esgallery.cleared"
)
// Non-aggregate events
const (
StackProcessed = "esgallery.stack_processed"
)
// ProcessorTriggerEvents are the events that can trigger a [*Processor].
var ProcessorTriggerEvents = []string{
StackAdded,
// VariantReplaced,
}
type VariantsAddedData[StackID, ImageID ID] struct {
StackID StackID
Variants []gallery.Image[ImageID]
}
type VariantAddedData[StackID, ImageID ID] struct {
StackID StackID
Variant gallery.Image[ImageID]
}
type VariantRemovedData[StackID, ImageID ID] struct {
StackID StackID
ImageID ImageID
}
type VariantReplacedData[StackID, ImageID ID] struct {
StackID StackID
Variant gallery.Image[ImageID]
}
type StackTaggedData[StackID ID] struct {
StackID StackID
Tags gallery.Tags
}
type StackUntaggedData[StackID ID] struct {
StackID StackID
Tags gallery.Tags
}
// RegisterEvents registers the [*Gallery] events into an event registry.
func RegisterEvents[StackID, ImageID ID](r codec.Registerer) {
codec.Register[gallery.Stack[StackID, ImageID]](r, StackAdded)
codec.Register[StackID](r, StackRemoved)
codec.Register[StackID](r, StackCleared)
codec.Register[VariantsAddedData[StackID, ImageID]](r, VariantsAdded)
codec.Register[VariantAddedData[StackID, ImageID]](r, VariantAdded)
codec.Register[VariantRemovedData[StackID, ImageID]](r, VariantRemoved)
codec.Register[VariantReplacedData[StackID, ImageID]](r, VariantReplaced)
codec.Register[StackTaggedData[StackID]](r, StackTagged)
codec.Register[StackUntaggedData[StackID]](r, StackUntagged)
codec.Register[[]StackID](r, Sorted)
codec.Register[struct{}](r, Cleared)
codec.Register[StackID](r, StackProcessed)
}