{-# LANGUAGE DeriveAnyClass #-}

module Hercules.API.Organizations.BillingInfo where

import Hercules.API.Accounts.Account (Account)
import Hercules.API.Prelude

data BillingInfo = BillingInfo
  { BillingInfo -> Maybe UTCTime
nextPayment :: Maybe UTCTime,
    BillingInfo -> [Account]
activeUsers :: [Account]
  }
  deriving ((forall x. BillingInfo -> Rep BillingInfo x)
-> (forall x. Rep BillingInfo x -> BillingInfo)
-> Generic BillingInfo
forall x. Rep BillingInfo x -> BillingInfo
forall x. BillingInfo -> Rep BillingInfo x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep BillingInfo x -> BillingInfo
$cfrom :: forall x. BillingInfo -> Rep BillingInfo x
Generic, Int -> BillingInfo -> ShowS
[BillingInfo] -> ShowS
BillingInfo -> String
(Int -> BillingInfo -> ShowS)
-> (BillingInfo -> String)
-> ([BillingInfo] -> ShowS)
-> Show BillingInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BillingInfo] -> ShowS
$cshowList :: [BillingInfo] -> ShowS
show :: BillingInfo -> String
$cshow :: BillingInfo -> String
showsPrec :: Int -> BillingInfo -> ShowS
$cshowsPrec :: Int -> BillingInfo -> ShowS
Show, BillingInfo -> BillingInfo -> Bool
(BillingInfo -> BillingInfo -> Bool)
-> (BillingInfo -> BillingInfo -> Bool) -> Eq BillingInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BillingInfo -> BillingInfo -> Bool
$c/= :: BillingInfo -> BillingInfo -> Bool
== :: BillingInfo -> BillingInfo -> Bool
$c== :: BillingInfo -> BillingInfo -> Bool
Eq, BillingInfo -> ()
(BillingInfo -> ()) -> NFData BillingInfo
forall a. (a -> ()) -> NFData a
rnf :: BillingInfo -> ()
$crnf :: BillingInfo -> ()
NFData, [BillingInfo] -> Encoding
[BillingInfo] -> Value
BillingInfo -> Encoding
BillingInfo -> Value
(BillingInfo -> Value)
-> (BillingInfo -> Encoding)
-> ([BillingInfo] -> Value)
-> ([BillingInfo] -> Encoding)
-> ToJSON BillingInfo
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [BillingInfo] -> Encoding
$ctoEncodingList :: [BillingInfo] -> Encoding
toJSONList :: [BillingInfo] -> Value
$ctoJSONList :: [BillingInfo] -> Value
toEncoding :: BillingInfo -> Encoding
$ctoEncoding :: BillingInfo -> Encoding
toJSON :: BillingInfo -> Value
$ctoJSON :: BillingInfo -> Value
ToJSON, Value -> Parser [BillingInfo]
Value -> Parser BillingInfo
(Value -> Parser BillingInfo)
-> (Value -> Parser [BillingInfo]) -> FromJSON BillingInfo
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [BillingInfo]
$cparseJSONList :: Value -> Parser [BillingInfo]
parseJSON :: Value -> Parser BillingInfo
$cparseJSON :: Value -> Parser BillingInfo
FromJSON, Proxy BillingInfo -> Declare (Definitions Schema) NamedSchema
(Proxy BillingInfo -> Declare (Definitions Schema) NamedSchema)
-> ToSchema BillingInfo
forall a.
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
declareNamedSchema :: Proxy BillingInfo -> Declare (Definitions Schema) NamedSchema
$cdeclareNamedSchema :: Proxy BillingInfo -> Declare (Definitions Schema) NamedSchema
ToSchema)