]> gitweb.michael.orlitzky.com - dead/htsn-import.git/blobdiff - src/TSN/XML/AutoRacingResults.hs
Add a TODO comment to TSN.XML.AutoRacingResults.
[dead/htsn-import.git] / src / TSN / XML / AutoRacingResults.hs
index 596b0bd46c4d7fff742a444f304ef3a7ec462360..179b8ab43cdaf4be124f70f268cad85a954cb5b7 100644 (file)
@@ -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 {
@@ -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'.
@@ -261,7 +267,7 @@ data MostLapsLeading =
 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" $
@@ -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)