aboutsummaryrefslogtreecommitdiffstats
path: root/entity/interface.go
blob: 3035ac88d4a4328381ad13d2b449681d242a9f61 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package entity

type Interface interface {
	// Id return the Entity identifier
	//
	// This Id need to be immutable without having to store the entity somewhere (ie, an entity only in memory
	// should have a valid Id, and it should not change if further edit are done on this entity).
	// How to achieve that is up to the entity itself. A common way would be to take a hash of an immutable data at
	// the root of the entity.
	// It is acceptable to use such a hash and keep mutating that data as long as Id() is not called.
	Id() Id
	// Validate check if the Entity data is valid
	Validate() error
}