X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FTSN%2FXML%2FAutoRacingResults.hs;h=bfc07d178b52c233cc691b19c2f3bab94a7aa3c8;hb=e46c9e59d0594c28dcb2d3c18fb877298bc1b5dd;hp=596b0bd46c4d7fff742a444f304ef3a7ec462360;hpb=f2c3c36ec22bbf8d56a9a2cfdfc49276facc349b;p=dead%2Fhtsn-import.git diff --git a/src/TSN/XML/AutoRacingResults.hs b/src/TSN/XML/AutoRacingResults.hs index 596b0bd..bfc07d1 100644 --- a/src/TSN/XML/AutoRacingResults.hs +++ b/src/TSN/XML/AutoRacingResults.hs @@ -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 \ contained within a -- \. -- @@ -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 \s contained within \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 \ child of a +-- \. +-- pickle_most_laps_leading :: PU MostLapsLeading pickle_most_laps_leading = xpElem "Most_Laps_Leading" $ @@ -496,6 +513,9 @@ pickle_most_laps_leading = db_most_laps_leading_driver m, db_most_laps_leading_number_of_laps m) + +-- | Pickler for the \ child of \. +-- pickle_race_information :: PU AutoRacingResultsRaceInformationXml pickle_race_information = xpElem "Race_Information" $