Files
registry/src/Model.hs
Lucy e1fbac315b Updates/pkg hardware (#137)
* add ability to specify package architectures for publish script, as well as deindex them

* implement and adjust filtering for package hardware requirements; adjust for legacy and new query params paths

* augment test manifest and fix ram query

* fixes

* fix ram for other routes

* rework filtering logic to eliminate hack db call

* fix hanging issue and other dataset consistency issues

* adjust arch param

* cleanup

* fix package manifest parsing

* make index package arches optional

* rename from embassy-sdk to start-sdk and embassy-publish to registr-publish

* fix ram comparison

* increase upload timeout

* fix serialization and deserialization of devices jsonb database field

* cleanup

* another deserialization fix

* revert change; better error message and test case

* fix jsonb serialization freal

* cleanup

* fix jsonb deserialization

* fix lookup of device value

* parse empty device object as null
2023-08-07 13:18:50 -04:00

162 lines
3.0 KiB
Haskell

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
module Model where
import Crypto.Hash (
Digest,
SHA256,
)
import Database.Persist.TH (
mkMigrate,
mkPersist,
persistLowerCase,
share,
sqlSettings,
)
import Lib.Types.Core (PkgId (PkgId), OsArch)
import Lib.Types.Emver (
Version,
VersionRange,
)
import Orphans.Cryptonite ()
import Orphans.Emver ()
import Startlude (
Eq,
Int,
Show,
Text,
UTCTime,
Word32,
Bool,
)
import Lib.Types.Manifest (PackageDevice)
share
[mkPersist sqlSettings, mkMigrate "migrateAll"]
[persistLowerCase|
PkgRecord
Id PkgId sql=pkg_id
hidden Bool default=False
createdAt UTCTime
updatedAt UTCTime Maybe
deriving Eq
deriving Show
VersionRecord sql=version
createdAt UTCTime
updatedAt UTCTime Maybe
deprecatedAt UTCTime Maybe
pkgId PkgRecordId
number Version
title Text
descShort Text
descLong Text
iconType Text
releaseNotes Text
osVersion Version
Primary pkgId number
deriving Eq
deriving Show
VersionPlatform
createdAt UTCTime
updatedAt UTCTime Maybe
pkgId PkgRecordId
versionNumber Version
ram Int Maybe
device PackageDevice Maybe
arch OsArch
Primary pkgId versionNumber arch
deriving Eq
deriving Show
OsVersion
createdAt UTCTime
updatedAt UTCTime
number Version
headline Text
releaseNotes Text
arch OsArch Maybe
deriving Eq
deriving Show
Metric
createdAt UTCTime
pkgId PkgRecordId
version Version
deriving Eq
deriving Show
Category
createdAt UTCTime
name Text
description Text
priority Int default=0
UniqueName name
deriving Eq
deriving Show
PkgCategory
createdAt UTCTime
pkgId PkgRecordId
categoryId CategoryId
UniquePkgCategory pkgId categoryId
deriving Eq
deriving Show
EosHash
version Version
hash Text
UniqueVersion version
ErrorLogRecord
createdAt UTCTime
epoch Text
commitHash Text
sourceFile Text
line Word32
target Text
level Text
message Text
incidents Word32
UniqueLogRecord epoch commitHash sourceFile line target level message
PkgDependency
createdAt UTCTime
pkgId PkgRecordId
pkgVersion Version
depId PkgRecordId
depVersionRange VersionRange
UniquePkgDepVersion pkgId pkgVersion depId
deriving Eq
deriving Show
UserActivity
createdAt UTCTime
serverId Text
osVersion Version Maybe
arch OsArch Maybe
Admin
Id Text
createdAt UTCTime
passHash (Digest SHA256)
deletedAt UTCTime Maybe
Upload
uploader AdminId
pkgId PkgRecordId
pkgVersion Version
createdAt UTCTime
|]