]> gitweb.michael.orlitzky.com - dead/htsn-import.git/blobdiff - src/TSN/XML/AutoRacingResults.hs
Fix two capitalizations in comments.
[dead/htsn-import.git] / src / TSN / XML / AutoRacingResults.hs
index 596b0bd46c4d7fff742a444f304ef3a7ec462360..817bf15cd0c10212697b8067ee4711e3951de15a 100644 (file)
@@ -60,7 +60,7 @@ import Text.XML.HXT.Core (
 import TSN.Codegen (
   tsn_codegen_config )
 import TSN.DbImport ( DbImport(..), ImportResult(..), run_dbmigrate )
-import TSN.Picklers ( xp_earnings, xp_racedate, xp_time_stamp )
+import TSN.Picklers ( xp_earnings, xp_datetime, xp_time_stamp )
 import TSN.XmlImport ( XmlImport(..), XmlImportFk(..) )
 import Xml (
   FromXml(..),
@@ -82,7 +82,9 @@ dtd = "AutoRacingResultsXML.dtd"
 
 -- * AutoRacingResults/Message
 
--- | Database representation of a 'Message'.
+-- | Database representation of a 'Message'. Comparatively, it lacks
+--   the listings and race information since they are linked via a
+--   foreign key.
 --
 data AutoRacingResults =
   AutoRacingResults {
@@ -101,7 +103,9 @@ data AutoRacingResults =
 
 
 
--- | XML Representation of an 'AutoRacingResults'.
+-- | XML Representation of an 'AutoRacingResults'. It has the same
+--   fields, but in addition contains the 'xml_listings' and
+--   'xml_race_information'.
 --
 data Message =
   Message {
@@ -158,7 +162,7 @@ instance XmlImport Message
 -- * AutoRacingResultsListing/AutoRacingResultsListingXml
 
 -- | Database representation of a \<Listing\> contained within a
---   \<Message\>.
+--   \<message\>.
 --
 data AutoRacingResultsListing =
   AutoRacingResultsListing {
@@ -177,6 +181,7 @@ data AutoRacingResultsListing =
     db_nc :: Maybe Bool,
     db_earnings :: Maybe Int }
 
+
 -- | XML representation of a \<Listing\> contained within a
 --   \<message\>.
 --
@@ -204,6 +209,7 @@ instance ToDb AutoRacingResultsListingXml where
   --
   type Db AutoRacingResultsListingXml = AutoRacingResultsListing
 
+
 instance FromXmlFk AutoRacingResultsListingXml where
   -- | Each 'AutoRacingResultsListingXml' is contained in (i.e. has a
   --   foreign key to) a 'AutoRacingResults'.
@@ -255,13 +261,13 @@ data MostLapsLeading =
   deriving (Data, Eq, Show, Typeable)
 
 
--- | Database representation of a \<Race_Information\> contained within a
---   \<Message\>.
+-- | Database representation of a \<Race_Information\> contained
+--   within a \<message\>.
 --
 data AutoRacingResultsRaceInformation =
   AutoRacingResultsRaceInformation {
     -- Note the apostrophe to disambiguate it from the
-    -- AutoRacingResultsListing filed.
+    -- AutoRacingResultsListing field.
     db_auto_racing_results_id' :: DefaultKey AutoRacingResults,
     db_track_length :: Double,
     db_track_length_kph :: Double,
@@ -385,19 +391,24 @@ mkPersist tsn_codegen_config [groundhog|
           reference:
             onDelete: cascade
 
-
+# Note the apostrophe in the foreign key. This is to disambiguate
+# it from the AutoRacingResultsListing foreign key of the same name.
+# We strip it out of the dbName.
 - entity: AutoRacingResultsRaceInformation
   dbName: auto_racing_results_race_information
   constructors:
     - name: AutoRacingResultsRaceInformation
       fields:
         - name: db_auto_racing_results_id'
+          dbName: auto_racing_results_id
           reference:
             onDelete: cascade
         - name: db_most_laps_leading
           embeddedType:
-            - {name: most_laps_leading_driver_id, dbName: most_laps_leading_driver_id}
-            - {name: most_laps_leading_driver, dbName: most_laps_leading_driver}
+            - {name: most_laps_leading_driver_id,
+               dbName: most_laps_leading_driver_id}
+            - {name: most_laps_leading_driver,
+               dbName: most_laps_leading_driver}
 
 - embedded: MostLapsLeading
   fields:
@@ -414,6 +425,8 @@ mkPersist tsn_codegen_config [groundhog|
 --- Pickling
 ---
 
+-- | Pickler for the \<Listing\>s contained within \<message\>s.
+--
 pickle_listing :: PU AutoRacingResultsListingXml
 pickle_listing =
   xpElem "Listing" $
@@ -449,6 +462,7 @@ pickle_listing =
 
 
 -- | Pickler for the top-level 'Message'.
+--
 pickle_message :: PU Message
 pickle_message =
   xpElem "message" $
@@ -458,7 +472,7 @@ pickle_message =
               (xpElem "category" xpText)
               (xpElem "sport" xpText)
               (xpElem "RaceID" xpInt)
-              (xpElem "RaceDate" xp_racedate)
+              (xpElem "RaceDate" xp_datetime)
               (xpElem "Title" xpText)
               (xpElem "Track_Location" xpText)
               (xpElem "Laps_Remaining" xpInt)
@@ -483,6 +497,9 @@ pickle_message =
                   xml_time_stamp m)
 
 
+-- | Pickler for the \<Most_Laps_Leading\> child of a
+--   \<Race_Information\>.
+--
 pickle_most_laps_leading :: PU MostLapsLeading
 pickle_most_laps_leading =
   xpElem "Most_Laps_Leading" $
@@ -496,13 +513,16 @@ pickle_most_laps_leading =
                   db_most_laps_leading_driver m,
                   db_most_laps_leading_number_of_laps m)
 
+
+-- | Pickler for the \<Race_Information\> child of \<message\>.
+--
 pickle_race_information :: PU AutoRacingResultsRaceInformationXml
 pickle_race_information =
   xpElem "Race_Information" $
     xpWrap (from_tuple, to_tuple) $
     xp11Tuple (-- I can't think of another way to get both the
                -- TrackLength and its KPH attribute. So we shove them
-               -- both in a 2-tuple.
+               -- both in a 2-tuple. This should probably be an embedded type!
                  xpElem "TrackLength" $ xpPair xpPrim (xpAttr "KPH" xpPrim) )
               (xpElem "Laps" xpInt)
               (xpOption $ xpElem "AverageSpeedMPH" xpPrim)