import Control.Monad ( forM_ )
import Data.Time ( UTCTime(..) )
import Data.Tuple.Curry ( uncurryN )
+import qualified Data.Vector.HFixed as H ( HVector, cons, convert )
import Database.Groundhog (
countAll,
deleteAll,
xpWrap )
-- Local imports.
-import Generics ( Generic(..), prepend, to_tuple )
import TSN.Codegen (
tsn_codegen_config )
import TSN.DbImport ( DbImport(..), ImportResult(..), run_dbmigrate )
xml_time_stamp :: UTCTime }
deriving (Eq, GHC.Generic, Show)
--- | For 'Generics.to_tuple'.
+-- | For 'H.convert'.
--
-instance Generic Message
+instance H.HVector Message
instance ToDb Message where
xml_race_results :: [AutoRacingScheduleListingRaceResult] }
deriving (Eq, GHC.Generic, Show)
--- | For 'Generics.to_tuple'.
+-- | For 'H.convert'.
--
-instance Generic AutoRacingScheduleListingXml
+instance H.HVector AutoRacingScheduleListingXml
-- | Pseudo-accessor to get the race result listings out of a
}
deriving ( GHC.Generic )
--- | For 'Generics.prepend'.
+-- | For 'H.cons'.
--
-instance Generic AutoRacingScheduleListingRaceResultRaceResultListing
+instance H.HVector AutoRacingScheduleListingRaceResultRaceResultListing
-- | XML Representation of an
}
deriving (Eq, GHC.Generic, Show)
--- | For 'Generics.to_tuple'.
+-- | For 'H.convert'.
--
-instance Generic AutoRacingScheduleListingRaceResultRaceResultListingXml
+instance H.HVector AutoRacingScheduleListingRaceResultRaceResultListingXml
instance ToDb AutoRacingScheduleListingRaceResultRaceResultListingXml where
-- 'AutoRacingScheduleListingRaceResultRaceResultListing', we just
-- add the foreign key to the parent 'AutoRacingScheduleListing'.
--
- from_xml_fk = prepend
+ from_xml_fk = H.cons
-- | This allows us to insert the XML representation
pickle_message :: PU Message
pickle_message =
xpElem "message" $
- xpWrap (from_tuple, to_tuple) $
+ xpWrap (from_tuple, H.convert) $
xp8Tuple (xpElem "XML_File_ID" xpInt)
(xpElem "heading" xpText)
(xpElem "category" xpText)
pickle_listing :: PU AutoRacingScheduleListingXml
pickle_listing =
xpElem "Listing" $
- xpWrap (from_tuple, to_tuple) $
+ xpWrap (from_tuple, H.convert) $
xp10Tuple (xpElem "RaceID" xpInt)
(xpElem "Race_Date" xp_date_padded)
(xpElem "Race_Time" xp_tba_time)
PU AutoRacingScheduleListingRaceResultRaceResultListingXml
pickle_race_results_listing =
xpElem "RaceResultsListing" $
- xpWrap (from_tuple, to_tuple) $
+ xpWrap (from_tuple, H.convert) $
xp7Tuple (xpElem "FinishPosition" xpInt)
(xpElem "DriverID" xpInt)
(xpElem "Name" xpText)