packages feed

btc-lsp-0.1.0.0: src/BtcLsp/Storage/Model.hs

{-# LANGUAGE EmptyDataDecls #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE NoStrictData #-}
{-# OPTIONS_GHC -Wno-missing-export-lists #-}
{-# OPTIONS_GHC -Wno-name-shadowing #-}

module BtcLsp.Storage.Model where

import BtcLsp.Class.Storage
import BtcLsp.Data.Kind
import BtcLsp.Data.Smart
import BtcLsp.Data.Type
import BtcLsp.Import.External
import qualified BtcLsp.Import.Psql as Psql
import Database.Persist.Quasi
import Database.Persist.TH
import qualified LndClient.Data.ChannelBackup as Lnd

-- You can define all of your database entities in the entities file.
-- You can find more information on persistent and how to declare entities
-- at:
-- http://www.yesodweb.com/book/persistent/
share
  [mkPersist sqlSettings, mkMigrate "migrateAuto"]
  $(persistFileWith lowerCaseSettings "config/model")

instance HasTable User where
  getTable = const UserTable

instance HasTable LnChan where
  getTable = const LnChanTable

instance HasTable SwapIntoLn where
  getTable = const SwapIntoLnTable

instance HasTable Block where
  getTable = const BlockTable

deriving stock instance Generic (Psql.Key User)

instance Out (Psql.Key User)

instance Out User

deriving stock instance Generic (Psql.Key SwapIntoLn)

instance Out (Psql.Key SwapIntoLn)

instance Out SwapIntoLn

deriving stock instance Generic (Psql.Key LnChan)

instance Out (Psql.Key LnChan)

instance Out LnChan

deriving stock instance Generic (Psql.Key Block)

instance Out (Psql.Key Block)

instance Out Block

deriving stock instance Generic (Psql.Key SwapUtxo)

instance Out (Psql.Key SwapUtxo)

instance Out SwapUtxo