30 lines
1.1 KiB
Go
30 lines
1.1 KiB
Go
package ports
|
|
|
|
import "galaxy/lobby/internal/domain/common"
|
|
|
|
// IDGenerator creates new stable identifiers for Game Lobby records.
|
|
//
|
|
// introduced NewGameID. added NewApplicationID and
|
|
// NewMembershipID. extends the interface with NewInviteID.
|
|
type IDGenerator interface {
|
|
// NewGameID returns one newly generated opaque game identifier. The
|
|
// returned value carries the frozen `game-*` prefix and passes
|
|
// common.GameID.Validate.
|
|
NewGameID() (common.GameID, error)
|
|
|
|
// NewApplicationID returns one newly generated opaque application
|
|
// identifier. The returned value carries the frozen `application-*`
|
|
// prefix and passes common.ApplicationID.Validate.
|
|
NewApplicationID() (common.ApplicationID, error)
|
|
|
|
// NewInviteID returns one newly generated opaque invite identifier.
|
|
// The returned value carries the frozen `invite-*` prefix and passes
|
|
// common.InviteID.Validate.
|
|
NewInviteID() (common.InviteID, error)
|
|
|
|
// NewMembershipID returns one newly generated opaque membership
|
|
// identifier. The returned value carries the frozen `membership-*`
|
|
// prefix and passes common.MembershipID.Validate.
|
|
NewMembershipID() (common.MembershipID, error)
|
|
}
|