import Database.Groundhog.TH (
CodegenConfig ( namingStyle ),
NamingStyle ( mkDbConstrName, mkDbFieldName, mkExprFieldName ),
- defaultCodegenConfig )
+ defaultCodegenConfig,
+ lowerCaseSuffixNamingStyle )
-default_ns :: NamingStyle
-default_ns = namingStyle defaultCodegenConfig
+-- | The lowercase naming style for database entities, provided by
+-- Groundhog. Makes a better starting point than the default.
+--
+lowercase_ns :: NamingStyle
+lowercase_ns = lowerCaseSuffixNamingStyle
-- | A database field name creator. It takes the field name (from a
-- record type) and drops the first component determined by
tsn_db_field_namer _ _ _ fieldname _ =
(join "_") . tail . (split "_") $ fieldname
-tsn_db_constr_namer :: String -> String -> Int -> String
-tsn_db_constr_namer _ constrname _ =
- map toLower constrname
-
tsn_expr_field_namer :: String -> String -> Int -> String -> Int -> String
tsn_expr_field_namer _ _ _ fieldname _ =
(join "_") . (map capitalize) . (split "_") $ fieldname
capitalize (c:cs) = (toUpper c : cs)
tsn_naming_style :: NamingStyle
-tsn_naming_style = default_ns { mkDbConstrName = tsn_db_constr_namer,
- mkDbFieldName = tsn_db_field_namer,
- mkExprFieldName = tsn_expr_field_namer }
+tsn_naming_style = lowercase_ns { mkDbFieldName = tsn_db_field_namer,
+ mkExprFieldName = tsn_expr_field_namer }
tsn_codegen_config :: CodegenConfig
tsn_codegen_config =