module Scion.PersistentBrowser.DbTypes where
import Database.Persist
import Database.Persist.Sqlite
import Database.Persist.TH
data DbDeclType = DbData | DbNewType | DbClass | DbInstance | DbSignature | DbType
deriving (Show, Read, Eq)
derivePersistField "DbDeclType"
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persist|
DbPackage
name String
version String
doc String Maybe
UniqueVersion name version
DbModule
name String
doc String Maybe
packageId DbPackageId
DbDecl
declType DbDeclType
name String
doc String Maybe
kind String Maybe
signature String Maybe
equals String Maybe
moduleId DbModuleId
DbTyVar
name String
declId DbDeclId
DbFunDep
name String
declId DbDeclId
DbContext
shown String
declId DbDeclId
DbConstructor
name String
signature String
declId DbDeclId
|]
data DbPackageIdentifier = DbPackageIdentifier String String
deriving Eq
dbPackageToIdentifier :: DbPackage -> DbPackageIdentifier
dbPackageToIdentifier (DbPackage name version _) = DbPackageIdentifier name version
data DbCompleteDecl = DbCompleteDecl DbDecl [DbContext] [DbTyVar] [DbFunDep] [DbConstructor]