package value_objects import ( "errors" ) var ( ErrInvalidUserID = errors.New("invalid user ID") ) type UserID struct { BaseUUID } func NewUserID(value string) (UserID, error) { baseUUID, err := NewBaseUUID(value) if err != nil { return UserID{}, ErrInvalidUserID } return UserID{BaseUUID: baseUUID}, nil } func NewRandomUserID() (UserID, error) { baseUUID, err := NewRandomBaseUUID() if err != nil { return UserID{}, ErrInvalidUserID } return UserID{BaseUUID: baseUUID}, nil } func NewUserIDFromString(value string) (UserID, error) { return NewUserID(value) } func (u UserID) Equals(other UserID) bool { return u.BaseUUID.Equals(other.BaseUUID) }