{-# LANGUAGE DeriveAnyClass #-}

module Hercules.API.Organizations.Organization where

import qualified Hercules.API.BillingStatus as BillingStatus
import Hercules.API.Prelude

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