initial
This commit is contained in:
commit
a4b0a1f793
62
db_deploy.sql
Normal file
62
db_deploy.sql
Normal file
@ -0,0 +1,62 @@
|
||||
BEGIN TRANSACTION;
|
||||
--\conninfo
|
||||
--drop schema evt cascade
|
||||
--------------------------build schema----------------------------------------------
|
||||
|
||||
CREATE SCHEMA evt;
|
||||
COMMENT ON SCHEMA evt IS 'event log';
|
||||
|
||||
--------------------------event log table-------------------------------------------
|
||||
|
||||
CREATE TABLE evt.bpr (
|
||||
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY
|
||||
,bpr JSONB
|
||||
,bprh JSONB
|
||||
,stmp timestamptz
|
||||
);
|
||||
COMMENT ON COLUMN evt.bpr.bpr IS 'basic pecuniary record';
|
||||
COMMENT ON COLUMN evt.bpr.bprh IS 'basic pecuniary record history';
|
||||
COMMENT ON COLUMN evt.bpr.stmp IS 'insert time';
|
||||
|
||||
--------------------------account master---------------------------------------------
|
||||
|
||||
--the account master should be dynamically created
|
||||
CREATE TABLE evt.acct (
|
||||
acct text PRIMARY KEY
|
||||
,prop jsonb
|
||||
);
|
||||
COMMENT ON COLUMN evt.acct.acct IS 'account';
|
||||
COMMENT ON COLUMN evt.acct.prop IS 'properties';
|
||||
|
||||
--------------------------relational ledger------------------------------------------
|
||||
|
||||
CREATE TABLE evt.gl (
|
||||
id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY
|
||||
,bpr_id INT REFERENCES evt.bpr (id)
|
||||
,acct text REFERENCES evt.acct (acct)
|
||||
,amount numeric (12,2)
|
||||
,bpr jsonb
|
||||
);
|
||||
COMMENT ON COLUMN evt.gl.bpr_id IS 'id of initial basic pecuniary record';
|
||||
COMMENT ON COLUMN evt.gl.acct IS 'account code';
|
||||
COMMENT ON COLUMN evt.gl.amount IS 'amount';
|
||||
COMMENT ON COLUMN evt.gl.bpr IS 'extract from initial basic pecuniary record';
|
||||
|
||||
--------------------------balances----------------------------------------------------
|
||||
|
||||
CREATE TABLE evt.bal (
|
||||
acct TEXT REFERENCES evt.acct(acct)
|
||||
,perd daterange
|
||||
,obal numeric(12,2)
|
||||
,debits numeric(12,2)
|
||||
,credits numeric(12,2)
|
||||
,cbal numeric(12,2)
|
||||
);
|
||||
COMMENT ON COLUMN evt.bal.acct IS 'account';
|
||||
COMMENT ON COLUMN evt.bal.perd IS 'period';
|
||||
COMMENT ON COLUMN evt.bal.obal IS 'opening balance';
|
||||
COMMENT ON COLUMN evt.bal.debits IS 'total debits';
|
||||
COMMENT ON COLUMN evt.bal.credits IS 'total credits';
|
||||
COMMENT ON COLUMN evt.bal.cbal IS 'closing balance';
|
||||
|
||||
COMMIT;
|
39
schema/documents/bpr.json
Normal file
39
schema/documents/bpr.json
Normal file
@ -0,0 +1,39 @@
|
||||
{
|
||||
"gl": [
|
||||
{
|
||||
"jpath": [
|
||||
"{item,0}",
|
||||
"{header}"
|
||||
],
|
||||
"amount": 2.19,
|
||||
"account": "h.food"
|
||||
},
|
||||
{
|
||||
"jpath": [
|
||||
"{item,0}",
|
||||
"{header}"
|
||||
],
|
||||
"amount": -2.19,
|
||||
"account": "h.dcard"
|
||||
}
|
||||
],
|
||||
"item": [
|
||||
{
|
||||
"item": "green olives",
|
||||
"amount": 2.19,
|
||||
"reason": "food",
|
||||
"account": "h.food"
|
||||
}
|
||||
],
|
||||
"header": {
|
||||
"entity": "home",
|
||||
"module": "MHI",
|
||||
"offset": "h.dcard",
|
||||
"vendor": "Discount Drug Mart",
|
||||
"currency": "USD",
|
||||
"eff_date": "1/6/2018",
|
||||
"location": "Stow, OH",
|
||||
"instrument": "Discover Card",
|
||||
"transaction": "purchase"
|
||||
}
|
||||
}
|
9
schema/tables/acct.sql
Normal file
9
schema/tables/acct.sql
Normal file
@ -0,0 +1,9 @@
|
||||
--------------------------account master---------------------------------------------
|
||||
|
||||
--the account master should be dynamically created
|
||||
CREATE TABLE evt.acct (
|
||||
acct text PRIMARY KEY
|
||||
,prop jsonb
|
||||
);
|
||||
COMMENT ON COLUMN evt.acct.acct IS 'account';
|
||||
COMMENT ON COLUMN evt.acct.prop IS 'properties';
|
16
schema/tables/bal.sql
Normal file
16
schema/tables/bal.sql
Normal file
@ -0,0 +1,16 @@
|
||||
--------------------------balances----------------------------------------------------
|
||||
|
||||
CREATE TABLE evt.bal (
|
||||
acct TEXT REFERENCES evt.acct(acct)
|
||||
,perd daterange
|
||||
,obal numeric(12,2)
|
||||
,debits numeric(12,2)
|
||||
,credits numeric(12,2)
|
||||
,cbal numeric(12,2)
|
||||
);
|
||||
COMMENT ON COLUMN evt.bal.acct IS 'account';
|
||||
COMMENT ON COLUMN evt.bal.perd IS 'period';
|
||||
COMMENT ON COLUMN evt.bal.obal IS 'opening balance';
|
||||
COMMENT ON COLUMN evt.bal.debits IS 'total debits';
|
||||
COMMENT ON COLUMN evt.bal.credits IS 'total credits';
|
||||
COMMENT ON COLUMN evt.bal.cbal IS 'closing balance';
|
11
schema/tables/bpr.sql
Normal file
11
schema/tables/bpr.sql
Normal file
@ -0,0 +1,11 @@
|
||||
--------------------------event log table-------------------------------------------
|
||||
|
||||
CREATE TABLE evt.bpr (
|
||||
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY
|
||||
,bpr JSONB
|
||||
,bprh JSONB
|
||||
,stmp timestamptz
|
||||
);
|
||||
COMMENT ON COLUMN evt.bpr.bpr IS 'basic pecuniary record';
|
||||
COMMENT ON COLUMN evt.bpr.bprh IS 'basic pecuniary record history';
|
||||
COMMENT ON COLUMN evt.bpr.stmp IS 'insert time';
|
13
schema/tables/gl.sql
Normal file
13
schema/tables/gl.sql
Normal file
@ -0,0 +1,13 @@
|
||||
--------------------------relational ledger------------------------------------------
|
||||
|
||||
CREATE TABLE evt.gl (
|
||||
id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY
|
||||
,bpr_id INT REFERENCES evt.bpr (id)
|
||||
,acct text REFERENCES evt.acct (acct)
|
||||
,amount numeric (12,2)
|
||||
,bpr jsonb
|
||||
);
|
||||
COMMENT ON COLUMN evt.gl.bpr_id IS 'id of initial basic pecuniary record';
|
||||
COMMENT ON COLUMN evt.gl.acct IS 'account code';
|
||||
COMMENT ON COLUMN evt.gl.amount IS 'amount';
|
||||
COMMENT ON COLUMN evt.gl.bpr IS 'extract from initial basic pecuniary record';
|
16
schema/triggers/log_insert.sql
Normal file
16
schema/triggers/log_insert.sql
Normal file
@ -0,0 +1,16 @@
|
||||
--------------------------balances----------------------------------------------------
|
||||
|
||||
CREATE TABLE evt.bal (
|
||||
acct TEXT REFERENCES evt.acct(acct)
|
||||
,perd daterange
|
||||
,obal numeric(12,2)
|
||||
,debits numeric(12,2)
|
||||
,credits numeric(12,2)
|
||||
,cbal numeric(12,2)
|
||||
);
|
||||
COMMENT ON COLUMN evt.bal.acct IS 'account';
|
||||
COMMENT ON COLUMN evt.bal.perd IS 'period';
|
||||
COMMENT ON COLUMN evt.bal.obal IS 'opening balance';
|
||||
COMMENT ON COLUMN evt.bal.debits IS 'total debits';
|
||||
COMMENT ON COLUMN evt.bal.credits IS 'total credits';
|
||||
COMMENT ON COLUMN evt.bal.cbal IS 'closing balance';
|
Loading…
Reference in New Issue
Block a user