{-# LANGUAGE MultiWayIf #-}
{-# LANGUAGE OverloadedStrings #-}
module RecurlyClient.Types.ExternalInvoice where
import qualified Control.Monad.Fail
import qualified Data.Aeson
import qualified Data.Aeson as Data.Aeson.Encoding.Internal
import qualified Data.Aeson as Data.Aeson.Types
import qualified Data.Aeson as Data.Aeson.Types.FromJSON
import qualified Data.Aeson as Data.Aeson.Types.Internal
import qualified Data.Aeson as Data.Aeson.Types.ToJSON
import qualified Data.ByteString
import qualified Data.ByteString as Data.ByteString.Internal
import qualified Data.Foldable
import qualified Data.Functor
import qualified Data.Maybe
import qualified Data.Scientific
import qualified Data.Text
import qualified Data.Text as Data.Text.Internal
import qualified Data.Time.Calendar as Data.Time.Calendar.Days
import qualified Data.Time.LocalTime as Data.Time.LocalTime.Internal.ZonedTime
import qualified GHC.Base
import qualified GHC.Classes
import qualified GHC.Int
import qualified GHC.Show
import qualified GHC.Types
import qualified RecurlyClient.Common
import RecurlyClient.TypeAlias
import {-# SOURCE #-} RecurlyClient.Types.AccountMini
import {-# SOURCE #-} RecurlyClient.Types.ExternalCharge
import {-# SOURCE #-} RecurlyClient.Types.ExternalSubscription
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe
data ExternalInvoice = ExternalInvoice
{ ExternalInvoice -> Maybe AccountMini
externalInvoiceAccount :: (GHC.Maybe.Maybe AccountMini)
, ExternalInvoice -> Maybe JsonDateTime
externalInvoiceCreated_at :: (GHC.Maybe.Maybe RecurlyClient.Common.JsonDateTime)
, ExternalInvoice -> Maybe Text
externalInvoiceCurrency :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
, ExternalInvoice -> Maybe Text
externalInvoiceExternal_id :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
, ExternalInvoice -> Maybe ExternalSubscription
externalInvoiceExternal_subscription :: (GHC.Maybe.Maybe ExternalSubscription)
, ExternalInvoice -> Maybe Text
externalInvoiceId :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
, ExternalInvoice -> Maybe [ExternalCharge]
externalInvoiceLine_items :: (GHC.Maybe.Maybe [ExternalCharge])
, ExternalInvoice -> Maybe Text
externalInvoiceObject :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
, ExternalInvoice -> Maybe JsonDateTime
externalInvoicePurchased_at :: (GHC.Maybe.Maybe RecurlyClient.Common.JsonDateTime)
, ExternalInvoice -> Maybe ExternalInvoiceState
externalInvoiceState :: (GHC.Maybe.Maybe ExternalInvoiceState)
, ExternalInvoice -> Maybe Text
externalInvoiceTotal :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
, ExternalInvoice -> Maybe JsonDateTime
externalInvoiceUpdated_at :: (GHC.Maybe.Maybe RecurlyClient.Common.JsonDateTime)
}
deriving
( Int -> ExternalInvoice -> ShowS
[ExternalInvoice] -> ShowS
ExternalInvoice -> String
(Int -> ExternalInvoice -> ShowS)
-> (ExternalInvoice -> String)
-> ([ExternalInvoice] -> ShowS)
-> Show ExternalInvoice
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ExternalInvoice -> ShowS
showsPrec :: Int -> ExternalInvoice -> ShowS
$cshow :: ExternalInvoice -> String
show :: ExternalInvoice -> String
$cshowList :: [ExternalInvoice] -> ShowS
showList :: [ExternalInvoice] -> ShowS
GHC.Show.Show
, ExternalInvoice -> ExternalInvoice -> Bool
(ExternalInvoice -> ExternalInvoice -> Bool)
-> (ExternalInvoice -> ExternalInvoice -> Bool)
-> Eq ExternalInvoice
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ExternalInvoice -> ExternalInvoice -> Bool
== :: ExternalInvoice -> ExternalInvoice -> Bool
$c/= :: ExternalInvoice -> ExternalInvoice -> Bool
/= :: ExternalInvoice -> ExternalInvoice -> Bool
GHC.Classes.Eq
)
instance Data.Aeson.Types.ToJSON.ToJSON ExternalInvoice where
toJSON :: ExternalInvoice -> Value
toJSON ExternalInvoice
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object ([[Pair]] -> [Pair]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
Data.Foldable.concat ([Pair] -> (AccountMini -> [Pair]) -> Maybe AccountMini -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (AccountMini -> Pair) -> AccountMini -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"account" Key -> AccountMini -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe AccountMini
externalInvoiceAccount ExternalInvoice
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (JsonDateTime -> [Pair]) -> Maybe JsonDateTime -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (JsonDateTime -> Pair) -> JsonDateTime -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"created_at" Key -> JsonDateTime -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe JsonDateTime
externalInvoiceCreated_at ExternalInvoice
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"currency" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe Text
externalInvoiceCurrency ExternalInvoice
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"external_id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe Text
externalInvoiceExternal_id ExternalInvoice
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (ExternalSubscription -> [Pair])
-> Maybe ExternalSubscription
-> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (ExternalSubscription -> Pair) -> ExternalSubscription -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"external_subscription" Key -> ExternalSubscription -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe ExternalSubscription
externalInvoiceExternal_subscription ExternalInvoice
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe Text
externalInvoiceId ExternalInvoice
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> ([ExternalCharge] -> [Pair]) -> Maybe [ExternalCharge] -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> ([ExternalCharge] -> Pair) -> [ExternalCharge] -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"line_items" Key -> [ExternalCharge] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe [ExternalCharge]
externalInvoiceLine_items ExternalInvoice
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"object" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe Text
externalInvoiceObject ExternalInvoice
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (JsonDateTime -> [Pair]) -> Maybe JsonDateTime -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (JsonDateTime -> Pair) -> JsonDateTime -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"purchased_at" Key -> JsonDateTime -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe JsonDateTime
externalInvoicePurchased_at ExternalInvoice
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (ExternalInvoiceState -> [Pair])
-> Maybe ExternalInvoiceState
-> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (ExternalInvoiceState -> Pair) -> ExternalInvoiceState -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"state" Key -> ExternalInvoiceState -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe ExternalInvoiceState
externalInvoiceState ExternalInvoice
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"total" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe Text
externalInvoiceTotal ExternalInvoice
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (JsonDateTime -> [Pair]) -> Maybe JsonDateTime -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (JsonDateTime -> Pair) -> JsonDateTime -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"updated_at" Key -> JsonDateTime -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe JsonDateTime
externalInvoiceUpdated_at ExternalInvoice
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [[Pair]]
forall a. Monoid a => a
GHC.Base.mempty))
toEncoding :: ExternalInvoice -> Encoding
toEncoding ExternalInvoice
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ([Series] -> Series
forall a. Monoid a => [a] -> a
GHC.Base.mconcat ([[Series]] -> [Series]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
Data.Foldable.concat ([Series]
-> (AccountMini -> [Series]) -> Maybe AccountMini -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (AccountMini -> Series) -> AccountMini -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"account" Key -> AccountMini -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe AccountMini
externalInvoiceAccount ExternalInvoice
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (JsonDateTime -> [Series]) -> Maybe JsonDateTime -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (JsonDateTime -> Series) -> JsonDateTime -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"created_at" Key -> JsonDateTime -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe JsonDateTime
externalInvoiceCreated_at ExternalInvoice
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"currency" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe Text
externalInvoiceCurrency ExternalInvoice
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"external_id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe Text
externalInvoiceExternal_id ExternalInvoice
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (ExternalSubscription -> [Series])
-> Maybe ExternalSubscription
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (ExternalSubscription -> Series)
-> ExternalSubscription
-> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"external_subscription" Key -> ExternalSubscription -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe ExternalSubscription
externalInvoiceExternal_subscription ExternalInvoice
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe Text
externalInvoiceId ExternalInvoice
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> ([ExternalCharge] -> [Series])
-> Maybe [ExternalCharge]
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> ([ExternalCharge] -> Series) -> [ExternalCharge] -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"line_items" Key -> [ExternalCharge] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe [ExternalCharge]
externalInvoiceLine_items ExternalInvoice
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"object" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe Text
externalInvoiceObject ExternalInvoice
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (JsonDateTime -> [Series]) -> Maybe JsonDateTime -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (JsonDateTime -> Series) -> JsonDateTime -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"purchased_at" Key -> JsonDateTime -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe JsonDateTime
externalInvoicePurchased_at ExternalInvoice
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (ExternalInvoiceState -> [Series])
-> Maybe ExternalInvoiceState
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (ExternalInvoiceState -> Series)
-> ExternalInvoiceState
-> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"state" Key -> ExternalInvoiceState -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe ExternalInvoiceState
externalInvoiceState ExternalInvoice
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"total" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe Text
externalInvoiceTotal ExternalInvoice
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (JsonDateTime -> [Series]) -> Maybe JsonDateTime -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (JsonDateTime -> Series) -> JsonDateTime -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"updated_at" Key -> JsonDateTime -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (ExternalInvoice -> Maybe JsonDateTime
externalInvoiceUpdated_at ExternalInvoice
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [[Series]]
forall a. Monoid a => a
GHC.Base.mempty)))
instance Data.Aeson.Types.FromJSON.FromJSON ExternalInvoice where
parseJSON :: Value -> Parser ExternalInvoice
parseJSON = String
-> (Object -> Parser ExternalInvoice)
-> Value
-> Parser ExternalInvoice
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"ExternalInvoice" (\Object
obj -> ((((((((((((Maybe AccountMini
-> Maybe JsonDateTime
-> Maybe Text
-> Maybe Text
-> Maybe ExternalSubscription
-> Maybe Text
-> Maybe [ExternalCharge]
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
-> Parser
(Maybe AccountMini
-> Maybe JsonDateTime
-> Maybe Text
-> Maybe Text
-> Maybe ExternalSubscription
-> Maybe Text
-> Maybe [ExternalCharge]
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe AccountMini
-> Maybe JsonDateTime
-> Maybe Text
-> Maybe Text
-> Maybe ExternalSubscription
-> Maybe Text
-> Maybe [ExternalCharge]
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice
ExternalInvoice Parser
(Maybe AccountMini
-> Maybe JsonDateTime
-> Maybe Text
-> Maybe Text
-> Maybe ExternalSubscription
-> Maybe Text
-> Maybe [ExternalCharge]
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
-> Parser (Maybe AccountMini)
-> Parser
(Maybe JsonDateTime
-> Maybe Text
-> Maybe Text
-> Maybe ExternalSubscription
-> Maybe Text
-> Maybe [ExternalCharge]
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe AccountMini)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"account")) Parser
(Maybe JsonDateTime
-> Maybe Text
-> Maybe Text
-> Maybe ExternalSubscription
-> Maybe Text
-> Maybe [ExternalCharge]
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
-> Parser (Maybe JsonDateTime)
-> Parser
(Maybe Text
-> Maybe Text
-> Maybe ExternalSubscription
-> Maybe Text
-> Maybe [ExternalCharge]
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe JsonDateTime)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"created_at")) Parser
(Maybe Text
-> Maybe Text
-> Maybe ExternalSubscription
-> Maybe Text
-> Maybe [ExternalCharge]
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
-> Parser (Maybe Text)
-> Parser
(Maybe Text
-> Maybe ExternalSubscription
-> Maybe Text
-> Maybe [ExternalCharge]
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"currency")) Parser
(Maybe Text
-> Maybe ExternalSubscription
-> Maybe Text
-> Maybe [ExternalCharge]
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
-> Parser (Maybe Text)
-> Parser
(Maybe ExternalSubscription
-> Maybe Text
-> Maybe [ExternalCharge]
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"external_id")) Parser
(Maybe ExternalSubscription
-> Maybe Text
-> Maybe [ExternalCharge]
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
-> Parser (Maybe ExternalSubscription)
-> Parser
(Maybe Text
-> Maybe [ExternalCharge]
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe ExternalSubscription)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"external_subscription")) Parser
(Maybe Text
-> Maybe [ExternalCharge]
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
-> Parser (Maybe Text)
-> Parser
(Maybe [ExternalCharge]
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"id")) Parser
(Maybe [ExternalCharge]
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
-> Parser (Maybe [ExternalCharge])
-> Parser
(Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe [ExternalCharge])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"line_items")) Parser
(Maybe Text
-> Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
-> Parser (Maybe Text)
-> Parser
(Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"object")) Parser
(Maybe JsonDateTime
-> Maybe ExternalInvoiceState
-> Maybe Text
-> Maybe JsonDateTime
-> ExternalInvoice)
-> Parser (Maybe JsonDateTime)
-> Parser
(Maybe ExternalInvoiceState
-> Maybe Text -> Maybe JsonDateTime -> ExternalInvoice)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe JsonDateTime)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"purchased_at")) Parser
(Maybe ExternalInvoiceState
-> Maybe Text -> Maybe JsonDateTime -> ExternalInvoice)
-> Parser (Maybe ExternalInvoiceState)
-> Parser (Maybe Text -> Maybe JsonDateTime -> ExternalInvoice)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe ExternalInvoiceState)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"state")) Parser (Maybe Text -> Maybe JsonDateTime -> ExternalInvoice)
-> Parser (Maybe Text)
-> Parser (Maybe JsonDateTime -> ExternalInvoice)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"total")) Parser (Maybe JsonDateTime -> ExternalInvoice)
-> Parser (Maybe JsonDateTime) -> Parser ExternalInvoice
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe JsonDateTime)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"updated_at"))
mkExternalInvoice :: ExternalInvoice
mkExternalInvoice :: ExternalInvoice
mkExternalInvoice =
ExternalInvoice
{ externalInvoiceAccount :: Maybe AccountMini
externalInvoiceAccount = Maybe AccountMini
forall a. Maybe a
GHC.Maybe.Nothing
, externalInvoiceCreated_at :: Maybe JsonDateTime
externalInvoiceCreated_at = Maybe JsonDateTime
forall a. Maybe a
GHC.Maybe.Nothing
, externalInvoiceCurrency :: Maybe Text
externalInvoiceCurrency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
, externalInvoiceExternal_id :: Maybe Text
externalInvoiceExternal_id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
, externalInvoiceExternal_subscription :: Maybe ExternalSubscription
externalInvoiceExternal_subscription = Maybe ExternalSubscription
forall a. Maybe a
GHC.Maybe.Nothing
, externalInvoiceId :: Maybe Text
externalInvoiceId = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
, externalInvoiceLine_items :: Maybe [ExternalCharge]
externalInvoiceLine_items = Maybe [ExternalCharge]
forall a. Maybe a
GHC.Maybe.Nothing
, externalInvoiceObject :: Maybe Text
externalInvoiceObject = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
, externalInvoicePurchased_at :: Maybe JsonDateTime
externalInvoicePurchased_at = Maybe JsonDateTime
forall a. Maybe a
GHC.Maybe.Nothing
, externalInvoiceState :: Maybe ExternalInvoiceState
externalInvoiceState = Maybe ExternalInvoiceState
forall a. Maybe a
GHC.Maybe.Nothing
, externalInvoiceTotal :: Maybe Text
externalInvoiceTotal = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
, externalInvoiceUpdated_at :: Maybe JsonDateTime
externalInvoiceUpdated_at = Maybe JsonDateTime
forall a. Maybe a
GHC.Maybe.Nothing
}
data ExternalInvoiceState
=
ExternalInvoiceStateOther Data.Aeson.Types.Internal.Value
|
ExternalInvoiceStateTyped Data.Text.Internal.Text
|
ExternalInvoiceStateEnumPaid
deriving (Int -> ExternalInvoiceState -> ShowS
[ExternalInvoiceState] -> ShowS
ExternalInvoiceState -> String
(Int -> ExternalInvoiceState -> ShowS)
-> (ExternalInvoiceState -> String)
-> ([ExternalInvoiceState] -> ShowS)
-> Show ExternalInvoiceState
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ExternalInvoiceState -> ShowS
showsPrec :: Int -> ExternalInvoiceState -> ShowS
$cshow :: ExternalInvoiceState -> String
show :: ExternalInvoiceState -> String
$cshowList :: [ExternalInvoiceState] -> ShowS
showList :: [ExternalInvoiceState] -> ShowS
GHC.Show.Show, ExternalInvoiceState -> ExternalInvoiceState -> Bool
(ExternalInvoiceState -> ExternalInvoiceState -> Bool)
-> (ExternalInvoiceState -> ExternalInvoiceState -> Bool)
-> Eq ExternalInvoiceState
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ExternalInvoiceState -> ExternalInvoiceState -> Bool
== :: ExternalInvoiceState -> ExternalInvoiceState -> Bool
$c/= :: ExternalInvoiceState -> ExternalInvoiceState -> Bool
/= :: ExternalInvoiceState -> ExternalInvoiceState -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON ExternalInvoiceState where
toJSON :: ExternalInvoiceState -> Value
toJSON (ExternalInvoiceStateOther Value
val) = Value
val
toJSON (ExternalInvoiceStateTyped Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
toJSON (ExternalInvoiceState
ExternalInvoiceStateEnumPaid) = Value
"paid"
instance Data.Aeson.Types.FromJSON.FromJSON ExternalInvoiceState where
parseJSON :: Value -> Parser ExternalInvoiceState
parseJSON Value
val =
ExternalInvoiceState -> Parser ExternalInvoiceState
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
( if
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"paid" -> ExternalInvoiceState
ExternalInvoiceStateEnumPaid
| Bool
GHC.Base.otherwise -> Value -> ExternalInvoiceState
ExternalInvoiceStateOther Value
val
)