refactor(qualification): update db migration code
This commit is contained in:
parent
46f3a3324c
commit
a1dd70b143
@ -60,11 +60,10 @@ QualificationUser
|
|||||||
validUntil Day -- addGregorianMonthsRollOver (toInteger renewalMonths) qualificationUserValidUntil
|
validUntil Day -- addGregorianMonthsRollOver (toInteger renewalMonths) qualificationUserValidUntil
|
||||||
lastRefresh Day -- lastRefresh > validUntil possible, if Qualification^elearningOnly == False
|
lastRefresh Day -- lastRefresh > validUntil possible, if Qualification^elearningOnly == False
|
||||||
firstHeld Day -- first time the qualification was earned, should never change
|
firstHeld Day -- first time the qualification was earned, should never change
|
||||||
-- blockedDue QualificationBlocked Maybe -- TODO: refactor own table isJust means that the qualification is currently revoked
|
|
||||||
scheduleRenewal Bool default=true -- if false, no automatic renewal is scheduled and the qualification expires
|
scheduleRenewal Bool default=true -- if false, no automatic renewal is scheduled and the qualification expires
|
||||||
lastNotified UTCTime default=now() -- last notficiation about being invalid
|
lastNotified UTCTime default=now() -- last notficiation about being invalid
|
||||||
-- temporärer Entzug vorsehen -- SAP Schnittstelle muss dann angepasst werden
|
-- Reasons and temporary revocations are implemented through QualificationUserBlock
|
||||||
-- Begründungsfeld vorsehen
|
-- TODO: adjust SAP interface to transmit end dates
|
||||||
UniqueQualificationUser qualification user
|
UniqueQualificationUser qualification user
|
||||||
deriving Generic
|
deriving Generic
|
||||||
|
|
||||||
@ -72,9 +71,7 @@ QualificationUserBlock
|
|||||||
qualificationUser QualificationUserId OnDeleteCascade OnUpdateCascade
|
qualificationUser QualificationUserId OnDeleteCascade OnUpdateCascade
|
||||||
unblock Bool
|
unblock Bool
|
||||||
from UTCTime
|
from UTCTime
|
||||||
-- until Day Maybe -- if Nothing then the block holds indefinitely
|
|
||||||
reason Text
|
reason Text
|
||||||
-- company -- to be encoded in reason
|
|
||||||
blocker UserId Maybe
|
blocker UserId Maybe
|
||||||
deriving Eq Ord Read Show Generic
|
deriving Eq Ord Read Show Generic
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,7 @@ module Model.Migration
|
|||||||
import Import.NoModel hiding (Max(..), Last(..))
|
import Import.NoModel hiding (Max(..), Last(..))
|
||||||
import Model
|
import Model
|
||||||
import Foundation.Type
|
import Foundation.Type
|
||||||
import Model.Migration.Definitions
|
import Model.Migration.Definitions -- SEE HERE: this module contains the actual migration code
|
||||||
import qualified Model.Migration.Types as Legacy
|
import qualified Model.Migration.Types as Legacy
|
||||||
import qualified Data.Map as Map
|
import qualified Data.Map as Map
|
||||||
|
|
||||||
|
|||||||
@ -858,8 +858,15 @@ customMigrations = mapF $ \case
|
|||||||
Migration20230524QualificationUserBlock ->
|
Migration20230524QualificationUserBlock ->
|
||||||
unlessM (tableExists "qualification_user_block") $ do
|
unlessM (tableExists "qualification_user_block") $ do
|
||||||
[executeQQ|
|
[executeQQ|
|
||||||
CREATE TABLE "qualification_user_block" ("id" SERIAL8 PRIMARY KEY UNIQUE, "qualification_user" bigint NOT NULL, "from" date NOT NULL, "until" date, "reason" character varying NOT NULL)
|
CREATE TABLE "qualification_user_block"
|
||||||
CONSTRAINT qualification_user_fkey FOREIGN KEY (qualification_user) REFERENCES qualification_user(id)
|
( "id" SERIAL8 PRIMARY KEY UNIQUE
|
||||||
|
, "qualification_user" bigint NOT NULL
|
||||||
|
, "from" timestamp with time zone NOT NULL
|
||||||
|
, "reason" character varying NOT NULL
|
||||||
|
, "blocker" bigint
|
||||||
|
, CONSTRAINT qualification_user_block_qualification_user_fkey FOREIGN KEY (qualification_user) REFERENCES qualification_user(id) ON DELETE CASCADE
|
||||||
|
, CONSTRAINT qualification_user_block_blocker_fkey FOREIGN KEY (blocker) REFERENCES user(id)
|
||||||
|
)
|
||||||
|]
|
|]
|
||||||
|
|
||||||
let getBlocks = [queryQQ|SELECT "id", "blocked_due" FROM "qualification_user" WHERE "blocked_due" IS NOT NULL|]
|
let getBlocks = [queryQQ|SELECT "id", "blocked_due" FROM "qualification_user" WHERE "blocked_due" IS NOT NULL|]
|
||||||
|
|||||||
Reference in New Issue
Block a user