{-# LANGUAGE OverloadedStrings, NoMonomorphismRestriction, FlexibleContexts, MultiParamTypeClasses, ScopedTypeVariables, DeriveDataTypeable, DeriveGeneric #-}
module EZCouch.Model.Design where

import Prelude ()
import ClassyPrelude
import GHC.Generics
import EZCouch.Entity
import Data.Aeson
import qualified EZCouch.Model.View as ViewModel

data Design a 
  = Design {
      views :: Map Text ViewModel.View
    }
  deriving (Show, Eq, Generic)
instance ToJSON (Design a)
instance FromJSON (Design a)
instance (Entity a) => Entity (Design a)

designName = entityType . (undefined :: Design a -> a)