packages feed

casr-logbook-0.7.0: src/Data/Aviation/Casr/Logbook/Meta/TrackLog.hs

{-# OPTIONS_GHC -Wall #-}
{-# LANGUAGE TemplateHaskell #-}

module Data.Aviation.Casr.Logbook.Meta.TrackLog(
  TrackLog(TrackLog)
, HasTrackLog(..)
, tracklogUriType
, tracklogsource'
, tracklogname'
) where

import Control.Category ( Category((.)) )
import Control.Lens ( _Just, makeClassy, Traversal' )
import Data.Aviation.Casr.Logbook.Meta.TrackLogType
    ( TrackLogType )
import Data.Eq(Eq)
import Data.Maybe(Maybe(..))
import Data.Ord(Ord)
import Data.String(String)
import Prelude(Show)

data TrackLog =
  TrackLog {
    _trackloguri :: String
  , _tracklogtype :: TrackLogType
  , _tracklogsource :: Maybe String
  , _tracklogname :: Maybe String
  } deriving (Eq, Ord, Show)

makeClassy ''TrackLog

tracklogUriType ::
  String
  -> TrackLogType
  -> TrackLog
tracklogUriType s t =
  TrackLog s t Nothing Nothing

tracklogsource' ::
  HasTrackLog c =>
  Traversal' c String
tracklogsource' =
  tracklogsource . _Just

tracklogname' ::
  HasTrackLog c =>
  Traversal' c String
tracklogname' =
  tracklogname . _Just