package command import ( "context" "time" "github.com/ttacon/libphonenumber" "github.com/zitadel/zitadel/internal/command/preparation" "github.com/zitadel/zitadel/internal/crypto" "github.com/zitadel/zitadel/internal/domain" "github.com/zitadel/zitadel/internal/errors" ) type Phone struct { Number string Verified bool } func FormatPhoneNumber(number string) (string, error) { if number == "" { return "", nil } phoneNr, err := libphonenumber.Parse(number, libphonenumber.UNKNOWN_REGION) if err != nil { return "", errors.ThrowInvalidArgument(nil, "EVENT-so0wa", "Errors.User.Phone.Invalid") } number = libphonenumber.Format(phoneNr, libphonenumber.E164) return number, nil } func newPhoneCode(ctx context.Context, filter preparation.FilterToQueryReducer, alg crypto.EncryptionAlgorithm) (value *crypto.CryptoValue, expiry time.Duration, err error) { return newCryptoCodeWithExpiry(ctx, filter, domain.SecretGeneratorTypeVerifyPhoneCode, alg) }