1package entity
2
3type Interface interface {
4 // Id return the Entity identifier
5 //
6 // This Id need to be immutable without having to store the entity somewhere (ie, an entity only in memory
7 // should have a valid Id, and it should not change if further edit are done on this entity).
8 // How to achieve that is up to the entity itself. A common way would be to take a hash of an immutable data at
9 // the root of the entity.
10 // It is acceptable to use such a hash and keep mutating that data as long as Id() is not called.
11 Id() Id
12}
13
14// type Commitable interface {
15// Interface
16// NeedCommit() bool
17// CommitAsNeeded(repo repository.ClockedRepo) error
18// Commit(repo repository.ClockedRepo) error
19// }
20
21//
22// type Operation interface {
23//
24// }