move IDGenerator interface to service package

This commit is contained in:
juancwu 2026-05-04 20:52:23 +00:00
commit 9bffb2e39d

21
service/ulid.go Normal file
View file

@ -0,0 +1,21 @@
package service
import "github.com/oklog/ulid/v2"
// IDGenerator produces unique identifiers for entities.
type IDGenerator interface {
// NewID generates a new unique identifier for entities.
NewID() string
}
// defaultIDGenerator generates ULIDs using crypto/rand entropy.
type defaultIDGenerator struct{}
func (defaultIDGenerator) NewID() string {
return ulid.Make().String()
}
// DefaultIDGenerator returns the standard ULID-based generator.
func DefaultIDGenerator() IDGenerator {
return defaultIDGenerator{}
}