Compare commits

...

5 commits

Author SHA1 Message Date
b9cf0bcb9f Merge branch 'rav001' into rvv001 2024-08-12 12:27:31 -04:00
8be9215f04
Correct types 2024-08-12 10:42:30 -05:00
e24581eb5d
Remove ID fields
Persistent adds them automatically
2024-08-12 09:23:36 -05:00
9b48ce2b68
Remove comments from QuasiQuote 2024-08-12 08:58:45 -05:00
17f6d557a1
Add Persistent dependencies 2024-08-12 08:58:07 -05:00
2 changed files with 127 additions and 137 deletions

258
src/DB.hs
View file

@ -22,178 +22,162 @@ import Control.Exception (throwIO)
import Control.Monad (forM_, when)
import Control.Monad.IO.Class (MonadIO, liftIO)
import Control.Monad.Logger (NoLoggingT, runNoLoggingT)
import Data.Aeson
import Data.Bifunctor (bimap)
import qualified Data.ByteString as BS
import Data.HexString
import Data.List (group, sort)
import Data.Maybe (catMaybes, fromJust, isJust)
import Data.Pool (Pool)
import qualified Data.Text as T
import qualified Data.Text.Encoding as TE
import Data.Time (UTCTime(..))
import Data.UUID (UUID)
import Data.Word
import Database.Esqueleto.Experimental
import qualified Database.Persist.Sqlite as PS
import qualified Database.Persist.MySQL as PM
import Database.Persist.TH
newtype UuidDB = UuidDB
{ getUUID :: UUID
} deriving newtype (Eq, Show, Read, ToJSON, FromJSON)
derivePersistFieldJSON "UuidDB"
newtype HexStringDB = HexStringDB
{ getHex :: HexString
} deriving newtype (Eq, Show, Read)
derivePersistField "HexStringDB"
share
[mkPersist sqlSettings, mkMigrate "migrateAll"]
[persistLowerCase|
ZgoBlock
block_id Int --Block Id number
block_confs Int default=0 -- Block confirnations
block_network String default="" -- Block Network
block_height Int default=0 -- Block Height
block_time Int default=0 -- Block time
UniqueBlock block_id
ZgoBlock json
confs Int default=0
network String default=""
height Int default=0
time Int default=0
deriving Show Eq
ZgoBlockTx
blocktx_block_id Int --'Block Tx parent
blocktx_id Int -- Block Tx record Id
blocktx_txid String -- Block Tx Id
UniqueBlockTx blocktx_block_id blocktx_id
ZgoBlockTx
blocktx_block_id Int
blocktx_id Int
blocktx_txid String
deriving Show Eq
ZgoCountry
country_code String -- Two Character Country Code
country_name String -- Country unique name
UniqueCountryCode country_code
ZgoCountry json
code T.Text
name T.Text
UniqueCountryCode code
deriving Show Eq
ZgoItem
item_owner_id Int -- Owner Id
item_id String -- Item Id
item_name String -- Item name',
item_description T.Text default="" -- Item description
item_cost Float default=0.0 -- Item Unit price
UniqueItemId item_owner item_id
ZgoItem json
owner_id Int
name T.Text
description T.Text default=""
cost Double default=0.0
deriving Show Eq
ZgoLanguages
encode_id String -- Language encoding id
view_name String default-"" -- View name that use this language'
view_element String default="" -- 'Element name
view_element_text T.Text default="" -- Text to be displayed'
UniqueLanguage encode_id view_name view_element
encode_id T.Text
name T.Text default-""
element T.Text default=""
element_text T.Text default=""
deriving Show Eq
ZgoOrders
order_id Int -- Order Id
order_zaddress T.Text -- Order zcash address
order_session T.Text -- Order session id
order_timestamp Int -- Order timestamp
order_closed Word8 -- Order closed flag
order_currency String -- Order currency
order_price Float default=0.0 -- Order ZEC price
order_total Float default=0.0 -- Order total amount
order_totalzec Float default=0.0 -- Order total in ZEC
order_paid Word8 default=0 -- Order paid status
order_token String default="" -- Order token
order_extinv String default="" -- Order External Invoice
order_shortcode String default='' -- Order invoice shortcode
order_taxamount Float default=0.0 -- Order tax amount
order_tipamount Float default=0.0 -- Order tip amount
order_vatamount Float default=0.0 -- Orcer VAT amount'
UniqueOrderId order_id
ZgoOrder json
owner ZgoOwnerId
session ZgoUserId
timestamp Int
closed Word8
currency T.Text
price Double
total Double
totalzec Double
paid Bool
token T.Text default=""
externalInvoice T.Text default=""
shortcode T.Text
taxamount Double
tipamount Double
vatamount Double
deriving Show Eq
ZgoOrderLines
orderline_orderid Int default=0 -- Orderlines Order Id
orderline_line Int default=0 -- Orderlines Line number
orderline_qty Int default=0 -- Orderline item qty
orderline_name T.Text default="" -- Orderline item description
orderline_cost Float default=0.0 -- Orderline item cost
UniqueOrderLine orderline_orderid orderline_line
orderId ZgoOrderId
qty Int default=0
name T.Text default=""
cost Double default=0.0
deriving Show Eq
ZgoOwner
owner_id Int --'Owner ID number
owner_co_name String default="" -- Company''s name
owner_firstname String -- Owner's first name
owner_lastname String -- Owner's last name
owner_email String -- Owner's email address
owner_street String -- Owner's street
owner_city String -- Owner's city
owner_state String -- Owner's state
owner_zipcode String -- Owner's zip code
owner_phone String -- Owner's phone number
owner_country String -- Owner's country
owner_website String -- Owner's website URL
owner_currency String -- Owner's currency',
owner_zcaddress String -- Owner's zcash address
owner_usezats Word8 -- Use zats for display
owner_crmtoken T.Text -- Owner's crm token
owner_usetax Word8 -- Use tax flag
owner_taxvalue Float -- Tax rate to use
owner_usevat Word8 -- Use vat flag
owner_vat Float -- Vat rate to use
owner_payconf Word8 -- Confirm payment flag
owner_viewkey T.Text -- Viewing Key for payment confirmation
owner_invoices Word8 -- Use zgo invoices
owner_tips Word8 -- Activate tips
owner_paid Word8 -- True if account is paid
owner_expiration Int -- Expiration date-time
UniqueOwnerId owner_id
UniqueOwnerZcashAddr owner_zcaddress
co_name T.Text
firstname T.Text
lastname T.Text
email T.Text
street T.Text
city T.Text
state T.Text
zipcode T.Text
phone T.Text
country T.Text
website T.Text
currency T.Text
zcaddress T.Text
usezats Bool
crmtoken T.Text
usetax Bool
taxvalue Double
usevat Bool
vat Double
payconf Bool
viewkey T.Text
invoices Bool
tips Bool
paid Bool
expiration UTCTime
deriving Show Eq
ZgoPayment
payment_id Int -- Payment Id
payment_delta Int -- Payment delta
payment_done Word8 -- Payment done flag
payment_zaddress T.Text -- Payment zcash address
payment_session String default="" -- Payment session
payment_blocktime Int default=0 -- Payment blocktime
payment_amount Float default=0.0 -- Payment amount
payment_txid String default ="" -- Payment transaction id
payment_memo T.Text default="" -- Payment Memo
UniquePaymentId payment_id
delta Int
done Bool
zaddress T.Text
session UuidDB
blocktime Int default=0
amount Double default=0.0
txid HexStringDB
memo T.Text
deriving Show Eq
ZgoPrice
price_id Int -- Price Id
price_delta Int default=0 -- Price delta
price_done Word8 default=0 -- Price done flag
price_zaddress T.Text default="" -- Price zcash address
price_session String default="" -- Price session
price_blocktime Int default=0 -- Price blocktime
price_amount Float default=0.0 -- Price amount
price_txid String default="" -- Price transaction id
price_memo T.Text default="" -- Price Memo
UniquePriceId price_id
price_delta Int default=0
price_done Bool default=0
price_zaddress T.Text default=""
price_session String default=""
price_blocktime Int default=0
price_amount Double default=0.0
price_txid String default=""
price_memo T.Text default=""
deriving Show Eq
ZgoProsession
pro_id Int -- Prosession record id
pro_zaddress T.Text default="" -- Prosession zcash address
pro_expiration Int default=0 -- Prosession expiration date/time
pro_closed Word8 default=0 -- Prosession closed flag
UniqueProSesId pro_id
UniqueProSesZad pro_zaddress
zaddress T.Text default=""
expiration UTCTime
closed Bool
deriving Show Eq
ZgoTransaction
tx_id Int -- Transaction ID
tx_zaddress T.Text default="" -- Transaction Zcash Address
tx_expiration Int default=0 -- Transaction Expiration Date/Time
tx_closed Word8 default=0 -- Transaction Closed flag
UniqueTxId tx_id
zaddress T.Text default=""
expiration Int default=0
closed Word8 default=0
deriving Show Eq
ZgoUser
user_id Int -- User Id
user_zaddress T.Text -- User zcash address,
user_session String -- User session id
user_blocktime Int -- User block time
user_pin String -- User pin
user_validated Word8 default=0 -- User validated flag
UniqueUserId user_id
UniqueUserZad user_zaddress
ZgoUser json
owner ZgoOwnerId
session UuidDB
blocktime Int
pin T.Text
validated Bool
deriving Show Eq
ZgoXero
xero_id Int -- Xero Id
xero_client_id String default="" -- Xero client id
xero_client_secret String default="" -- Xero client secret word
UniqueXeroId xero_id
UniqueXeroClientId xero_client_id
client_id T.Text default=""
client_secret T.Text default=""
deriving Show Eq
ZgoXeroToken
xerotoken_id Int -- Xero account id
xerotoken_zaddress T.Text -- Xero zcash address
xerotoken_access_token T.Text -- Xero account access token
xerotoken_expires Int -- Xero token expiration date/time
xerotoken_refreshtoken String -- Xero refresh token
xerotoken_accexpires Int -- Xero account expire date/time
xerotoken_accCode String -- Xero account code
xerotoken_refexpires Int -- Xero reference expire date/time
UniqueXeroTokenId xerotoken_id
zaddress T.Text
access_token T.Text
expires Int
refreshtoken T.Text
accexpires Int
accCode T.Text
refexpires Int
deriving Show Eq
|]

View file

@ -33,6 +33,7 @@ library
Xero
ZGoBackend
ZGoTx
DB
hs-source-dirs:
src
build-depends:
@ -47,6 +48,10 @@ library
, configurator
, containers
, crypto-rng
, esqueleto
, persistent
, persistent-mysql
, persistent-template
, ghc-prim
, hexstring
, http-conduit
@ -54,6 +59,7 @@ library
, jwt
, megaparsec
, memory
, monad-logger
, mongoDB
, network
, quickcheck-instances