{-# LANGUAGE TemplateHaskell #-}
module Drasil.System.Core where

import Control.Lens (makeClassy)

import Drasil.Database (ChunkDB)
import Language.Drasil (Sentence, People, CI)

-- | Project Example purpose.
type Purpose = [Sentence]
-- | Project Example background information, used in the 'What' section of
-- README.
type Background = [Sentence]
-- | Project Example scope.
type Scope = [Sentence]
-- | Project Example motivation.
type Motivation = [Sentence]

data SystemMeta = SystemMeta
  { SystemMeta -> CI
_sysName    :: CI -- FIXME: This should not be a CI.
  , SystemMeta -> People
_authors    :: People
  , SystemMeta -> Purpose
_purpose    :: Purpose
  , SystemMeta -> Purpose
_background :: Background
  , SystemMeta -> Purpose
_scope      :: Scope
  , SystemMeta -> Purpose
_motivation :: Motivation
  , SystemMeta -> ChunkDB
_systemdb   :: ChunkDB
  }

makeClassy ''SystemMeta