Skip to content

Commit

Permalink
Update database schema (#3)
Browse files Browse the repository at this point in the history
  • Loading branch information
johnwatson484 committed Jul 30, 2021
1 parent e9b251f commit d9a2d81
Show file tree
Hide file tree
Showing 23 changed files with 11,394 additions and 162 deletions.
19 changes: 1 addition & 18 deletions .snyk
Original file line number Diff line number Diff line change
@@ -1,21 +1,4 @@
# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
version: v1.19.0
# ignores vulnerabilities until expiry date; change duration by modifying expiry date
ignore:
SNYK-JS-VALIDATOR-1090599:
- sequelize > validator:
reason: no fix
expires: '2021-07-03T13:05:59.428Z'
SNYK-JS-VALIDATOR-1090600:
- sequelize > validator:
reason: no fix
expires: '2021-07-03T13:05:59.428Z'
SNYK-JS-VALIDATOR-1090601:
- sequelize > validator:
reason: no fix
expires: '2021-07-03T13:05:59.428Z'
SNYK-JS-VALIDATOR-1090602:
- sequelize > validator:
reason: no fix
expires: '2021-07-03T13:09:36.259Z'
ignore: {}
patch: {}
21 changes: 21 additions & 0 deletions app/data/models/account-code.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
module.exports = (sequelize, DataTypes) => {
const accountCode = sequelize.define('accountCode', {
accountCodeId: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
schemeCodeId: DataTypes.INTEGER,
lineDescription: DataTypes.STRING,
accountCodeAP: DataTypes.STRING,
accountCodeAR: DataTypes.STRING
},
{
tableName: 'accountCodes',
freezeTableName: true,
timestamps: false
})
accountCode.associate = function (models) {
accountCode.belongsTo(models.schemeCode, {
foreignKey: 'schemeCodeId',
as: 'schemeCode'
})
}
return accountCode
}
20 changes: 20 additions & 0 deletions app/data/models/batch.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
module.exports = (sequelize, DataTypes) => {
const batch = sequelize.define('batch', {
batchId: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
ledger: DataTypes.STRING,
sequence: DataTypes.INTEGER,
published: DataTypes.DATE
},
{
tableName: 'batches',
freezeTableName: true,
timestamps: false
})
batch.associate = function (models) {
batch.hasMany(models.completedPaymentRequest, {
foreignKey: 'batchId',
as: 'completedPaymentRequests'
})
}
return batch
}
23 changes: 23 additions & 0 deletions app/data/models/completed-invoice-line.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
module.exports = (sequelize, DataTypes) => {
const completedInvoiceLine = sequelize.define('completedInvoiceLine', {
completedInvoiceLineId: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
completedPaymentRequestId: DataTypes.INTEGER,
standardCode: DataTypes.STRING,
accountCode: DataTypes.STRING,
fundCode: DataTypes.STRING,
description: DataTypes.STRING,
value: DataTypes.DECIMAL
},
{
tableName: 'completedInvoiceLines',
freezeTableName: true,
timestamps: false
})
completedInvoiceLine.associate = function (models) {
completedInvoiceLine.belongsTo(models.completedPaymentRequest, {
foreignKey: 'completedPaymentRequestId',
as: 'completedPaymentRequest'
})
}
return completedInvoiceLine
}
43 changes: 43 additions & 0 deletions app/data/models/completed-payment-request.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
module.exports = (sequelize, DataTypes) => {
const completedPaymentRequest = sequelize.define('completedPaymentRequest', {
completedPaymentRequestId: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
paymentRequestId: DataTypes.INTEGER,
schemeId: DataTypes.INTEGER,
batchId: DataTypes.INTEGER,
ledger: DataTypes.STRING,
sourceSystem: DataTypes.STRING,
deliveryBody: DataTypes.STRING,
invoiceNumber: DataTypes.STRING,
frn: DataTypes.BIGINT,
sbi: DataTypes.STRING,
agreementNumber: DataTypes.STRING,
contractNumber: DataTypes.STRING,
currency: DataTypes.STRING,
schedule: DataTypes.STRING,
dueDate: DataTypes.STRING,
value: DataTypes.DECIMAL,
batched: DataTypes.DATE,
acknowledged: DataTypes.DATE,
settled: DataTypes.DATE
},
{
tableName: 'completedPaymentRequests',
freezeTableName: true,
timestamps: false
})
completedPaymentRequest.associate = function (models) {
completedPaymentRequest.belongsTo(models.paymentRequest, {
foreignKey: 'paymentRequestId',
as: 'paymentRequest'
})
completedPaymentRequest.hasMany(models.completedInvoiceLine, {
foreignKey: 'completedPaymentRequestId',
as: 'completedInvoiceLines'
})
completedPaymentRequest.belongsTo(models.batch, {
foreignKey: 'batchId',
as: 'batch'
})
}
return completedPaymentRequest
}
18 changes: 18 additions & 0 deletions app/data/models/delivery-body.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
module.exports = (sequelize, DataTypes) => {
const deliveryBody = sequelize.define('deliveryBodies', {
schemeId: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: false },
fundCode: DataTypes.STRING
},
{
tableName: 'deliveryBodies',
freezeTableName: true,
timestamps: false
})
deliveryBody.associate = function (models) {
deliveryBody.belongsTo(models.scheme, {
foreignKey: 'schemeId',
as: 'scheme'
})
}
return deliveryBody
}
11 changes: 11 additions & 0 deletions app/data/models/frn.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
module.exports = (sequelize, DataTypes) => {
return sequelize.define('frn', {
sbi: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: false },
frn: DataTypes.BIGINT
},
{
tableName: 'frns',
freezeTableName: true,
timestamps: false
})
}
18 changes: 18 additions & 0 deletions app/data/models/fund-code.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
module.exports = (sequelize, DataTypes) => {
const fundCode = sequelize.define('fundCode', {
schemeId: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: false },
fundCode: DataTypes.STRING
},
{
tableName: 'fundCodes',
freezeTableName: true,
timestamps: false
})
fundCode.associate = function (models) {
fundCode.belongsTo(models.scheme, {
foreignKey: 'schemeId',
as: 'scheme'
})
}
return fundCode
}
23 changes: 23 additions & 0 deletions app/data/models/hold-category.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
module.exports = (sequelize, DataTypes) => {
const holdCategory = sequelize.define('scheme', {
holdCategoryId: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
schemeId: DataTypes.INTEGER,
name: DataTypes.STRING
},
{
tableName: 'holdCategories',
freezeTableName: true,
timestamps: false
})
holdCategory.associate = function (models) {
holdCategory.belongsTo(models.scheme, {
foreignKey: 'schemeId',
as: 'scheme'
})
holdCategory.hasMany(models.hold, {
foreignKey: 'holdCategoryId',
as: 'holds'
})
}
return holdCategory
}
20 changes: 20 additions & 0 deletions app/data/models/hold.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
module.exports = (sequelize, DataTypes) => {
const hold = sequelize.define('hold', {
holdId: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
holdCategoryId: DataTypes.INTEGER,
applied: DataTypes.DATE,
removed: DataTypes.DATE
},
{
tableName: 'holds',
freezeTableName: true,
timestamps: false
})
hold.associate = function (models) {
hold.belongsTo(models.holdCategory, {
foreignKey: 'holdCategoryId',
as: 'holdCategory'
})
}
return hold
}
23 changes: 23 additions & 0 deletions app/data/models/invoice-line.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
module.exports = (sequelize, DataTypes) => {
const invoiceLine = sequelize.define('invoiceLine', {
invoiceLineId: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
paymentRequestId: DataTypes.INTEGER,
standardCode: DataTypes.STRING,
accountCode: DataTypes.STRING,
fundCode: DataTypes.STRING,
description: DataTypes.STRING,
value: DataTypes.DECIMAL
},
{
tableName: 'invoiceLines',
freezeTableName: true,
timestamps: false
})
invoiceLine.associate = function (models) {
invoiceLine.belongsTo(models.paymentRequest, {
foreignKey: 'paymentRequestId',
as: 'paymentRequest'
})
}
return invoiceLine
}
42 changes: 42 additions & 0 deletions app/data/models/payment-request.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
module.exports = (sequelize, DataTypes) => {
const paymentRequest = sequelize.define('paymentRequest', {
paymentRequestId: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
schemeId: DataTypes.INTEGER,
sourceSystem: DataTypes.STRING,
deliveryBody: DataTypes.STRING,
invoiceNumber: DataTypes.STRING,
frn: DataTypes.BIGINT,
sbi: DataTypes.STRING,
agreementNumber: DataTypes.STRING,
contractNumber: DataTypes.STRING,
currency: DataTypes.STRING,
schedule: DataTypes.STRING,
dueDate: DataTypes.STRING,
value: DataTypes.DECIMAL,
received: DataTypes.DATE
},
{
tableName: 'paymentRequests',
freezeTableName: true,
timestamps: false
})
paymentRequest.associate = function (models) {
paymentRequest.belongsTo(models.scheme, {
foreignKey: 'schemeId',
as: 'scheme'
})
paymentRequest.hasMany(models.invoiceLine, {
foreignKey: 'paymentRequestId',
as: 'invoiceLines'
})
paymentRequest.hasMany(models.schedule, {
foreignKey: 'paymentRequestId',
as: 'schedule'
})
paymentRequest.hasMany(models.completedPaymentRequests, {
foreignKey: 'paymentRequestId',
as: 'completedPaymentRequests'
})
}
return paymentRequest
}
24 changes: 0 additions & 24 deletions app/data/models/payment.js

This file was deleted.

21 changes: 21 additions & 0 deletions app/data/models/schedule.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
module.exports = (sequelize, DataTypes) => {
const schedule = sequelize.define('schedule', {
scheduleId: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
paymentRequestId: DataTypes.INTEGER,
planned: DataTypes.DATE,
started: DataTypes.DATE,
completed: DataTypes.DATE
},
{
tableName: 'schedule',
freezeTableName: true,
timestamps: false
})
schedule.associate = function (models) {
schedule.belongsTo(models.paymentRequestId, {
foreignKey: 'paymentRequestId',
as: 'paymentRequest'
})
}
return schedule
}
19 changes: 19 additions & 0 deletions app/data/models/scheme-code.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
module.exports = (sequelize, DataTypes) => {
const schemeCode = sequelize.define('schemeCode', {
schemeCodeId: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
standardCode: DataTypes.STRING,
schemeCode: DataTypes.STRING
},
{
tableName: 'schemeCodes',
freezeTableName: true,
timestamps: false
})
schemeCode.associate = function (models) {
schemeCode.hasMany(models.accountCode, {
foreignKey: 'schemeCodeId',
as: 'accountCode'
})
}
return schemeCode
}
30 changes: 30 additions & 0 deletions app/data/models/scheme.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
module.exports = (sequelize, DataTypes) => {
const scheme = sequelize.define('scheme', {
schemeId: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
name: DataTypes.STRING
},
{
tableName: 'schemes',
freezeTableName: true,
timestamps: false
})
scheme.associate = function (models) {
scheme.hasOne(models.sequence, {
foreignKey: 'schemeId',
as: 'sequence'
})
scheme.hasMany(models.holdCategory, {
foreignKey: 'schemeId',
as: 'holdCategories'
})
scheme.hasOne(models.fundCode, {
foreignKey: 'schemeId',
as: 'fundCode'
})
scheme.hasOne(models.deliveryBody, {
foreignKey: 'schemeId',
as: 'deliveryBody'
})
}
return scheme
}
Loading

0 comments on commit d9a2d81

Please sign in to comment.