diff --git a/domain/entity/base_aggregate_root.go b/domain/entity/base_aggregate_root.go index 2b6f407..e43e918 100644 --- a/domain/entity/base_aggregate_root.go +++ b/domain/entity/base_aggregate_root.go @@ -4,24 +4,16 @@ import "github.com/tonybka/go-base-ddd/domain/event" type BaseAggregateRoot struct { BaseEntity - - domainEvents []event.IBaseDomainEvent } func NewBaseAggregateRoot(rootEntityId uint) BaseAggregateRoot { base := NewBaseEntity(rootEntityId) - events := make([]event.IBaseDomainEvent, 0) return BaseAggregateRoot{ - BaseEntity: base, - domainEvents: events, + BaseEntity: base, } } -func (aggregate *BaseAggregateRoot) AddEvent(event event.IBaseDomainEvent) { - aggregate.domainEvents = append(aggregate.domainEvents, event) -} - -func (aggregate *BaseAggregateRoot) PendingEvents() []event.IBaseDomainEvent { - return aggregate.domainEvents +func (base *BaseAggregateRoot) AddEvent(tableName string, domainEvent event.IBaseDomainEvent) { + event.EventSource.AddEvent(tableName, domainEvent) } diff --git a/domain/entity/base_entity.go b/domain/entity/base_entity.go index 293d19a..227f565 100644 --- a/domain/entity/base_entity.go +++ b/domain/entity/base_entity.go @@ -2,8 +2,6 @@ package entity import ( "time" - - "github.com/tonybka/go-base-ddd/domain/event" ) type BaseEntity struct { @@ -15,7 +13,3 @@ type BaseEntity struct { func NewBaseEntity(id uint) BaseEntity { return BaseEntity{ID: id, CreatedAt: time.Now()} } - -func (base *BaseEntity) AddEvent(tableName string, domainEvent event.IBaseDomainEvent) { - event.EventSource.AddEvent(tableName, domainEvent) -} diff --git a/samples/account.go b/samples/account.go index 2c38caa..0ab3eba 100644 --- a/samples/account.go +++ b/samples/account.go @@ -8,7 +8,7 @@ import ( const DBTblNameAccounts = "accounts" type Account struct { - entity.BaseEntity + entity.BaseAggregateRoot AccountName string } diff --git a/samples/account_repository_test.go b/samples/account_repository_test.go index 26937d9..60dbd91 100644 --- a/samples/account_repository_test.go +++ b/samples/account_repository_test.go @@ -84,8 +84,8 @@ func (ts *AccountRepositoryTestSuite) TestCreateAccount() { randId := rand.Intn(99999) account := Account{ - BaseEntity: entity.NewBaseEntity(uint(randId)), - AccountName: tests.RandomString(), + BaseAggregateRoot: entity.NewBaseAggregateRoot(uint(randId)), + AccountName: tests.RandomString(), } result, err := ts.accountRepo.Create(account) @@ -119,8 +119,8 @@ func (ts *AccountRepositoryTestSuite) TestAccountWithEvent() { randId := rand.Intn(99999) account := Account{ - BaseEntity: entity.NewBaseEntity(uint(randId)), - AccountName: tests.RandomString(), + BaseAggregateRoot: entity.NewBaseAggregateRoot(uint(randId)), + AccountName: tests.RandomString(), } account.AddEvent(DBTblNameAccounts, NewAccountCreatedEvent(uint(randId), nil))