Also add some basic accounts to the DB init. Further add dependency to JAXB as it was missing. Add an optional parameter amount to the recurringTransactions/createTransaction method that can be used to overwrite the amount of the recurring transaction.
61 lines
2.2 KiB
SQL
61 lines
2.2 KiB
SQL
--
|
|
-- This file contains the basic initialization of the financer schema and basic init data
|
|
--
|
|
|
|
-- Account table
|
|
CREATE TABLE account (
|
|
id BIGINT NOT NULL PRIMARY KEY IDENTITY,
|
|
"key" VARCHAR(1000) NOT NULL, --escape keyword "key"
|
|
type VARCHAR(255) NOT NULL,
|
|
status VARCHAR(255) NOT NULL,
|
|
current_balance BIGINT NOT NULL,
|
|
|
|
CONSTRAINT un_account_name_key UNIQUE ("key")
|
|
);
|
|
|
|
-- Recurring transaction table
|
|
CREATE TABLE recurring_transaction (
|
|
id BIGINT NOT NULL PRIMARY KEY IDENTITY,
|
|
from_account_id BIGINT NOT NULL,
|
|
to_account_id BIGINT NOT NULL,
|
|
description VARCHAR(1000),
|
|
amount BIGINT NOT NULL,
|
|
interval_type VARCHAR(255) NOT NULL,
|
|
first_occurrence DATE NOT NULL,
|
|
last_occurrence DATE,
|
|
holiday_weekend_type VARCHAR(255) NOT NULL,
|
|
|
|
CONSTRAINT fk_recurring_transaction_from_account FOREIGN KEY (from_account_id) REFERENCES account (id),
|
|
CONSTRAINT fk_recurring_transaction_to_account FOREIGN KEY (to_account_id) REFERENCES account (id)
|
|
);
|
|
|
|
-- Transaction table
|
|
CREATE TABLE "transaction" ( --escape keyword "transaction"
|
|
id BIGINT NOT NULL PRIMARY KEY IDENTITY,
|
|
from_account_id BIGINT NOT NULL,
|
|
to_account_id BIGINT NOT NULL,
|
|
"date" DATE NOT NULL, --escape keyword "date"
|
|
description VARCHAR(1000),
|
|
amount BIGINT NOT NULL,
|
|
recurring_transaction_id BIGINT,
|
|
|
|
CONSTRAINT fk_transaction_from_account FOREIGN KEY (from_account_id) REFERENCES account (id),
|
|
CONSTRAINT fk_transaction_to_account FOREIGN KEY (to_account_id) REFERENCES account (id),
|
|
CONSTRAINT fk_transaction_recurring_transaction FOREIGN KEY (recurring_transaction_id) REFERENCES recurring_transaction (id)
|
|
);
|
|
|
|
-- Accounts
|
|
INSERT INTO account (id, "key", type, status, current_balance)
|
|
VALUES (1, 'accounts.checkaccount', 'BANK', 'OPEN', 0); -- insert first with ID 1 so we get predictable numbering
|
|
|
|
INSERT INTO account ("key", type, status, current_balance)
|
|
VALUES ('accounts.income', 'INCOME', 'OPEN', 0);
|
|
|
|
INSERT INTO account ("key", type, status, current_balance)
|
|
VALUES ('accounts.cash', 'CASH', 'OPEN', 0);
|
|
|
|
INSERT INTO account ("key", type, status, current_balance)
|
|
VALUES ('accounts.start', 'START', 'OPEN', 0);
|
|
|
|
INSERT INTO account ("key", type, status, current_balance)
|
|
VALUES ('accounts.rent', 'EXPENSE', 'OPEN', 0); |