{-# LANGUAGE OverloadedStrings, TemplateHaskell #-}

module Ham.Internal.Log.V3
  where

import Ham.Internal.Qso
import Ham.Qso
import qualified Ham.CAT as CAT
import Data.Text
import Data.Time.Calendar
import Data.Time.Clock
import Data.Sequence

import Data.Aeson
import Data.Aeson.TH

import Lens.Micro.TH


-- | Configuration for a log, version 2.
data LogConfigV3 = LogConfigV3 {
  _configLogFile :: FilePath          -- ^ File to store the logged Qsos in.
  , _configQsoDefaults :: QsoDefaults -- ^ Default values, if any, for Qsos.
  , _configUseCat :: Bool             -- ^ Flag to turn CAT support on or off.
  , _configCat :: CAT.CATConfig       -- ^ CAT configuration.
  } deriving Show


$(deriveJSON defaultOptions ''LogConfigV3)

makeLenses ''LogConfigV3