package value_objects import ( "errors" ) var ( ErrInvalidItemID = errors.New("invalid item ID") ) type ItemID struct { BaseUUID } func NewItemID(value string) (ItemID, error) { baseUUID, err := NewBaseUUID(value) if err != nil { return ItemID{}, ErrInvalidItemID } return ItemID{BaseUUID: baseUUID}, nil } func NewRandomItemID() (ItemID, error) { baseUUID, err := NewRandomBaseUUID() if err != nil { return ItemID{}, ErrInvalidItemID } return ItemID{BaseUUID: baseUUID}, nil } func NewItemIDFromString(value string) (ItemID, error) { return NewItemID(value) } func (i ItemID) Equals(other ItemID) bool { return i.BaseUUID.Equals(other.BaseUUID) }