1 {-# LANGUAGE TemplateHaskell #-}
2 {-# LANGUAGE DeriveGeneric #-}
3 -- {-# LANGUAGE DuplicateRecordFields #-}
5 module Gargantext.Types.Node where
7 import Gargantext.Prelude
9 import Text.Show (Show())
10 import Data.Text (Text)
11 import GHC.Generics (Generic)
12 import Data.Time (UTCTime)
13 import Gargantext.Utils.Prefix (unPrefix)
14 import Data.Aeson.TH (deriveJSON)
17 data NodePoly id typename userId parentId name date hyperdata = Node { node_id :: id
18 , node_typename :: typename
19 , node_userId :: userId
20 -- , nodeHashId :: hashId
21 , node_parentId :: parentId
24 , node_hyperdata :: hyperdata
25 -- , node_titleAbstract :: titleAbstract
27 $(deriveJSON (unPrefix "node_") ''NodePoly)
30 data Status = Status { status_Date :: Maybe UTCTime
31 , status_Error :: Maybe Text
32 , status_Action :: Maybe Text
33 , status_Complete :: Maybe Bool
34 , status_Progress :: Maybe Int
35 } deriving (Show, Generic)
36 $(deriveJSON (unPrefix "status_") ''Status)
39 data HyperdataDocument = HyperdataDocument { hyperdataDocument_Bdd :: Maybe Text
40 , hyperdataDocument_Doi :: Maybe Text
41 , hyperdataDocument_Url :: Maybe Text
42 , hyperdataDocument_Page :: Maybe Int
43 , hyperdataDocument_Title :: Maybe Text
44 , hyperdataDocument_Authors :: Maybe Text
45 , hyperdataDocument_Abstract :: Maybe Text
46 , hyperdataDocument_Statuses :: Maybe [Status]
47 , hyperdataDocument_Publication_date :: Maybe Text
48 , hyperdataDocument_Publication_year :: Maybe Text
49 , hyperdataDocument_Publication_month :: Maybe Text
50 , hyperdataDocument_Publication_hour :: Maybe Text
51 , hyperdataDocument_Publication_minute :: Maybe Text
52 , hyperdataDocument_Publication_second :: Maybe Text
53 , hyperdataDocument_LanguageIso2 :: Maybe Text
54 } deriving (Show, Generic)
55 $(deriveJSON (unPrefix "hyperdataDocument_") ''HyperdataDocument)
57 data LanguageNodes = LanguageNodes { languageNodes___unknown__ :: [Int]}
58 deriving (Show, Generic)
59 $(deriveJSON (unPrefix "languageNodes_") ''LanguageNodes)
62 data Resource = Resource { resource_Url :: Maybe Text
63 , resource_Path :: Maybe Text
64 , resource_Type :: Maybe Int
65 , resource_Extracted :: Maybe Bool
66 } deriving (Show, Generic)
67 $(deriveJSON (unPrefix "resource_") ''Resource)
70 data HyperdataCorpus = HyperdataCorpus { hyperdataCorpus_Action :: Maybe Text
71 , hyperdataCorpus_Statuses :: Maybe [Status]
72 , hyperdataCorpus_Languages :: Maybe LanguageNodes
73 , hyperdataCorpus_Resources :: Maybe [Resource]
74 , hyperdataCorpus_Language_id :: Maybe Text
75 , hyperdataCorpus_Skipped_docs :: Maybe [Int]
76 } deriving (Show, Generic)
77 $(deriveJSON (unPrefix "hyperdataCorpus_") ''HyperdataCorpus)
81 data HyperdataUser = HyperdataUser { hyperdataUser_language :: Maybe Text
82 } deriving (Show, Generic)
83 $(deriveJSON (unPrefix "hyperdataUser_") ''HyperdataUser)
87 data HyperdataFolder = HyperdataFolder { hyperdataFolder_Preferences :: Maybe Text
88 } deriving (Show, Generic)
89 $(deriveJSON (unPrefix "hyperdataFolder_") ''HyperdataFolder)
92 data HyperdataProject = HyperdataProject { hyperdataProject_Preferences :: Maybe Text
93 } deriving (Show, Generic)
94 $(deriveJSON (unPrefix "hyperdataProject_") ''HyperdataProject)
98 data HyperdataList = HyperdataList { hyperdataList_Preferences :: Maybe Text
99 } deriving (Show, Generic)
100 $(deriveJSON (unPrefix "hyperdataList_") ''HyperdataList)
102 data HyperdataScore = HyperdataScore { hyperdataScore_Preferences :: Maybe Text
103 } deriving (Show, Generic)
104 $(deriveJSON (unPrefix "hyperdataScore_") ''HyperdataScore)
108 data HyperdataFavorites = HyperdataFavorites { hyperdataFavorites_Preferences :: Maybe Text
109 } deriving (Show, Generic)
110 $(deriveJSON (unPrefix "hyperdataFavorites_") ''HyperdataFavorites)
112 data HyperdataResource = HyperdataResource { hyperdataResource_Preferences :: Maybe Text
113 } deriving (Show, Generic)
114 $(deriveJSON (unPrefix "hyperdataResource_") ''HyperdataResource)
118 -- TODO add the Graph Structure here
119 data HyperdataGraph = HyperdataGraph { hyperdataGraph_Preferences :: Maybe Text
120 } deriving (Show, Generic)
121 $(deriveJSON (unPrefix "hyperdataGraph_") ''HyperdataGraph)
124 -- TODO add the Graph Structure here
125 data HyperdataPhylo = HyperdataPhylo { hyperdataPhylo_Preferences :: Maybe Text
126 } deriving (Show, Generic)
127 $(deriveJSON (unPrefix "hyperdataPhylo_") ''HyperdataPhylo)
129 -- | TODO FEATURE: Notebook saved in the node (to work with Python or Haskell)
130 data HyperdataNotebook = HyperdataNotebook { hyperdataNotebook_Preferences :: Maybe Text
131 } deriving (Show, Generic)
132 $(deriveJSON (unPrefix "hyperdataNotebook_") ''HyperdataNotebook)