From: Michael Orlitzky Date: Sun, 6 Jul 2014 03:19:36 +0000 (-0400) Subject: Add HTeam/VTeam newtype wrappers to TSN.Team. X-Git-Tag: 0.0.6~17 X-Git-Url: https://gitweb.michael.orlitzky.com/?p=dead%2Fhtsn-import.git;a=commitdiff_plain;h=a5674b8ca8d643925fd1988fe3e7edf8b82e03fb Add HTeam/VTeam newtype wrappers to TSN.Team. --- 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