{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE OverloadedStrings #-}

module Faker.PhoneNumber where

import Data.Text
import Faker
import Faker.Internal
import Faker.Provider.PhoneNumber
import Faker.TH

$(generateFakeFieldUnresolved "phoneNumber" "formats")

countryCode :: Fake Text
countryCode :: Fake Text
countryCode =
  (FakerSettings -> IO Text) -> Fake Text
forall a. (FakerSettings -> IO a) -> Fake a
Fake (Text
-> Text
-> (FakerSettings -> IO (Vector Text))
-> FakerSettings
-> IO Text
forall (m :: * -> *).
(MonadThrow m, MonadIO m) =>
Text
-> Text
-> (FakerSettings -> m (Vector Text))
-> FakerSettings
-> m Text
cachedRandomVec Text
"phoneNumber" Text
"countryCode" FakerSettings -> IO (Vector Text)
forall (m :: * -> *).
(MonadThrow m, MonadIO m) =>
FakerSettings -> m (Vector Text)
countryCodeProvider)

cellPhoneFormat :: Fake Text
cellPhoneFormat :: Fake Text
cellPhoneFormat =
  (FakerSettings -> IO Text) -> Fake Text
forall a. (FakerSettings -> IO a) -> Fake a
Fake
    (Text
-> Text
-> (FakerSettings -> IO (Unresolved (Vector Text)))
-> (FakerSettings -> Text -> IO Text)
-> FakerSettings
-> IO Text
forall (m :: * -> *).
(MonadThrow m, MonadIO m) =>
Text
-> Text
-> (FakerSettings -> m (Unresolved (Vector Text)))
-> (FakerSettings -> Text -> m Text)
-> FakerSettings
-> m Text
cachedRandomUnresolvedVec
       Text
"phoneNumber"
       Text
"cellPhoneFormat"
       FakerSettings -> IO (Unresolved (Vector Text))
forall (m :: * -> *).
(MonadThrow m, MonadIO m) =>
FakerSettings -> m (Unresolved (Vector Text))
cellPhoneFormatProvider
       FakerSettings -> Text -> IO Text
forall (m :: * -> *).
(MonadIO m, MonadThrow m) =>
FakerSettings -> Text -> m Text
resolvePhoneNumberText)