Files
galaxy-game/lobby/internal/ports/idgenerator.go
T
2026-04-25 23:20:55 +02:00

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)
}