@@ -25,7 +25,9 @@ import Data.UUID (UUID)
25import qualified Data.UUID as UUID
25import qualified Data.UUID as UUID
26import qualified Data.UUID.V4 as UUID.V4
26import qualified Data.UUID.V4 as UUID.V4
27#ifndef ghcjs_HOST_OS
27#ifndef ghcjs_HOST_OS
28import Data.Csv as Csv hiding(Name)
29import Data.Csv as Csv hiding(Name)
29#ifdef USE_POSTGRES
31#ifdef USE_POSTGRES
30import Database.PostgreSQL.Simple.FromField as PG (FromField)
32import Database.PostgreSQL.Simple.FromField as PG (FromField)
31import Database.PostgreSQL.Simple.ToField as PG (ToField)
33import Database.PostgreSQL.Simple.ToField as PG (ToField)
@@ -102,12 +104,14 @@ instance PathPiece (Id t) where
103#ifndef ghcjs_HOST_OS
105#ifndef ghcjs_HOST_OS
105instance Csv.FromField (Id tag) where
108instance Csv.FromField (Id tag) where
106 parseField = parseField
109 parseField = parseField
107 >=> fmap mkId . maybe (fail "invalid UUID in CSV") pure . UUID.fromText
110 >=> fmap mkId . maybe (fail "invalid UUID in CSV") pure . UUID.fromText
109instance Csv.ToField (Id tag) where
112instance Csv.ToField (Id tag) where
110 toField = Csv.toField . UUID.toText . coerce
113 toField = Csv.toField . UUID.toText . coerce
@@ -135,7 +139,10 @@ newtype IntId t = IntId { unIntId :: Integer }
135 ( Eq, Ord, Binary
139 ( Eq, Ord, Binary
136#ifndef ghcjs_HOST_OS
140#ifndef ghcjs_HOST_OS
137#ifdef USE_POSTGRES
141#ifdef USE_POSTGRES
142+ , PG.ToField, PG.FromField
138− , PG.ToField, PG.FromField, Csv.ToField, Csv.FromField
145+ , Csv.ToField, Csv.FromField
141 , FromJSON, ToJSON, NFData, Hashable, FromJSONKey, ToJSONKey, ToSchema
148 , FromJSON, ToJSON, NFData, Hashable, FromJSONKey, ToJSONKey, ToSchema
@@ -175,7 +182,10 @@ newtype Name t = Name { unName :: Text }
175 ( Eq, Ord, Binary
182 ( Eq, Ord, Binary
176#ifndef ghcjs_HOST_OS
183#ifndef ghcjs_HOST_OS
177#ifdef USE_POSTGRES
184#ifdef USE_POSTGRES
185+ , PG.ToField, PG.FromField
178− , PG.ToField, PG.FromField, Csv.ToField, Csv.FromField
188+ , Csv.ToField, Csv.FromField
181 , FromJSON, ToJSON, NFData, Hashable, FromJSONKey, ToJSONKey, ToSchema
191 , FromJSON, ToJSON, NFData, Hashable, FromJSONKey, ToJSONKey, ToSchema