File tree Expand file tree Collapse file tree 3 files changed +35
-1
lines changed Expand file tree Collapse file tree 3 files changed +35
-1
lines changed Original file line number Diff line number Diff line change @@ -4,8 +4,28 @@ import "github.com/tonybka/go-base-ddd/domain/event"
4
4
5
5
type BaseAggregateRoot struct {
6
6
BaseEntity
7
+
8
+ domainEvents []event.IBaseDomainEvent
9
+ }
10
+
11
+ func NewBaseAggregateRoot () (BaseAggregateRoot , error ) {
12
+ base , err := NewBaseEntity ()
13
+ if err != nil {
14
+ return BaseAggregateRoot {}, nil
15
+ }
16
+
17
+ events := make ([]event.IBaseDomainEvent , 0 )
18
+
19
+ return BaseAggregateRoot {
20
+ BaseEntity : base ,
21
+ domainEvents : events ,
22
+ }, nil
7
23
}
8
24
9
25
func (aggregate * BaseAggregateRoot ) AddEvent (event event.IBaseDomainEvent ) {
26
+ aggregate .domainEvents = append (aggregate .domainEvents , event )
27
+ }
10
28
29
+ func (aggregate * BaseAggregateRoot ) PendingEvents () []event.IBaseDomainEvent {
30
+ return aggregate .domainEvents
11
31
}
Original file line number Diff line number Diff line change @@ -5,3 +5,13 @@ import "github.com/google/uuid"
5
5
type BaseEntity struct {
6
6
ID uuid.UUID
7
7
}
8
+
9
+ func NewBaseEntity () (BaseEntity , error ) {
10
+ id , err := uuid .NewUUID ()
11
+
12
+ if err != nil {
13
+ return BaseEntity {}, err
14
+ }
15
+
16
+ return BaseEntity {ID : id }, nil
17
+ }
Original file line number Diff line number Diff line change 1
1
package event
2
2
3
- type IBaseDomainEvent struct {
3
+ import "time"
4
+
5
+ type IBaseDomainEvent interface {
6
+ EventName () string
7
+ OccurredAt () time.Time
4
8
}
You can’t perform that action at this time.
0 commit comments