ariadne/internal/domain/organization/id.go
2026-07-24 05:45:04 +09:00

31 lines
513 B
Go

package organization
import (
"fmt"
"github.com/google/uuid"
)
// ID identifies the top-level tenant boundary in Ariadne.
type ID string
func NewID() ID {
return ID(uuid.NewString())
}
func ParseID(value string) (ID, error) {
parsed, err := uuid.Parse(value)
if err != nil {
return "", fmt.Errorf("parse organization id: %w", err)
}
return ID(parsed.String()), nil
}
func (id ID) String() string {
return string(id)
}
func (id ID) Validate() error {
_, err := ParseID(id.String())
return err
}