From a5674b8ca8d643925fd1988fe3e7edf8b82e03fb Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Sat, 5 Jul 2014 23:19:36 -0400 Subject: [PATCH] Add HTeam/VTeam newtype wrappers to TSN.Team. --- src/TSN/Team.hs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/TSN/Team.hs b/src/TSN/Team.hs index 97e3647..7ca326d 100644 --- a/src/TSN/Team.hs +++ b/src/TSN/Team.hs @@ -13,7 +13,9 @@ -- representation. -- module TSN.Team ( + HTeam(..), Team(..), + VTeam(..), -- * WARNING: these are private but exported to silence warnings TeamConstructor(..) ) where @@ -26,6 +28,8 @@ import Database.Groundhog.TH ( mkPersist ) +-- * Team + -- | The database representation of a team. The 'team_id' is a -- 'String' field because some teams do in fact have ids like -- \"B52\". The pointless \"team_\" prefix is left on the 'team_id' @@ -43,6 +47,24 @@ data Team = deriving (Eq, Show) +-- * VTeam / HTeam + +-- | A wrapper around 'Team' that lets us distinguish between home and +-- away teams. See also 'HTeam'. \"V\" (visiting) was chosen instead +-- of \"A\" (away) simply because \"vteam" looks better than +-- \"ateam\". This is purely for type-safety. +-- +newtype VTeam = VTeam { vteam :: Team } deriving (Eq, Show) + + +-- | A wrapper around 'Team' that lets us distinguish between home and +-- away teams. See also 'VTeam'. This is purely for type-safety. +-- +newtype HTeam = HTeam { hteam :: Team } deriving (Eq, Show) + + +-- * Database stuff + -- Generate the Groundhog code for 'Team'. mkPersist defaultCodegenConfig [groundhog| - entity: Team -- 2.43.2