{-# LANGUAGE TemplateHaskell #-}

module PMS.Infra.CmdRun.DM.Type where

import Control.Monad.Logger
import Control.Monad.Reader
import Control.Monad.Except
import Control.Lens
import Data.Default
import Data.Aeson.TH

import qualified PMS.Domain.Model.DM.Type as DM
import qualified PMS.Domain.Model.DM.TH as DM


data AppData = AppData {
             }

makeLenses ''AppData

defaultAppData :: IO AppData
defaultAppData :: IO AppData
defaultAppData = do
  AppData -> IO AppData
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return AppData {
         }

-- |
--
type AppContext = ReaderT AppData (ReaderT DM.DomainData (ExceptT DM.ErrorData (LoggingT IO)))

-- |
--
type IOTask = IO


--------------------------------------------------------------------------------------------
-- |
--
data StringToolParams =
  StringToolParams {
    StringToolParams -> String
_argumentsStringToolParams :: String
  } deriving (Int -> StringToolParams -> ShowS
[StringToolParams] -> ShowS
StringToolParams -> String
(Int -> StringToolParams -> ShowS)
-> (StringToolParams -> String)
-> ([StringToolParams] -> ShowS)
-> Show StringToolParams
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> StringToolParams -> ShowS
showsPrec :: Int -> StringToolParams -> ShowS
$cshow :: StringToolParams -> String
show :: StringToolParams -> String
$cshowList :: [StringToolParams] -> ShowS
showList :: [StringToolParams] -> ShowS
Show, ReadPrec [StringToolParams]
ReadPrec StringToolParams
Int -> ReadS StringToolParams
ReadS [StringToolParams]
(Int -> ReadS StringToolParams)
-> ReadS [StringToolParams]
-> ReadPrec StringToolParams
-> ReadPrec [StringToolParams]
-> Read StringToolParams
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS StringToolParams
readsPrec :: Int -> ReadS StringToolParams
$creadList :: ReadS [StringToolParams]
readList :: ReadS [StringToolParams]
$creadPrec :: ReadPrec StringToolParams
readPrec :: ReadPrec StringToolParams
$creadListPrec :: ReadPrec [StringToolParams]
readListPrec :: ReadPrec [StringToolParams]
Read, StringToolParams -> StringToolParams -> Bool
(StringToolParams -> StringToolParams -> Bool)
-> (StringToolParams -> StringToolParams -> Bool)
-> Eq StringToolParams
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: StringToolParams -> StringToolParams -> Bool
== :: StringToolParams -> StringToolParams -> Bool
$c/= :: StringToolParams -> StringToolParams -> Bool
/= :: StringToolParams -> StringToolParams -> Bool
Eq)

$(deriveJSON defaultOptions {fieldLabelModifier = DM.dropDataName "StringToolParams", omitNothingFields = True} ''StringToolParams)
makeLenses ''StringToolParams

instance Default StringToolParams where
  def :: StringToolParams
def = StringToolParams {
        _argumentsStringToolParams :: String
_argumentsStringToolParams = String
forall a. Default a => a
def
      }