diff options
Diffstat (limited to 'db/normalized/deposits.js')
| -rw-r--r-- | db/normalized/deposits.js | 135 |
1 files changed, 95 insertions, 40 deletions
diff --git a/db/normalized/deposits.js b/db/normalized/deposits.js index ec9472d8..c14884ce 100644 --- a/db/normalized/deposits.js +++ b/db/normalized/deposits.js @@ -1,45 +1,100 @@ -const { DataTypes } = require('sequelize'); +exports.up = function(knex) { + return knex.schema.createTable('deposits', function(t) { + t.increments('id').unsigned().primary(); -const attributes = { - id: { - type: DataTypes.INTEGER(11), - primaryKey: true, - autoIncrement: true, - allowNull: false - }, - user_id: { - type: DataTypes.INTEGER(11), - references: { model: User, key: 'id' }, - allowNull: false, - comment: "Referral granted to this user (updated when token used)" - }, - amount: { - type: DataTypes.DECIMAL(10,2), - allowNull: false - }, - deposit_code: { - type: DataTypes.STRING(255), - comment: "Unique randomly generated code to be put in the interac deposit reference/message to link the deposit to this record/user", - }, - status: { - type: DataTypes.ENUM, - values: ['pending', 'credited', 'failed'], - defaultValue: 'pending' - } + t.int('credit_id').notNull(); + t.foreign('credit_id').references('credits.id'); + + t.string('confirmation_code'); + + t.timestamps(); + }) } -const options = { - tableName: "deposits", - comment: "", - timestamps: true, - createdAt: 'created_at', - updatedAt: 'updated_at', - indexes: [ - { - unique: true, - fields: ['code'] - } - ] +exports.down = function(knex) { + return knex.schema.dropTable('deposits'); }; -db["Deposit"] = db.define("deposits_model", attributes, options); +// Changes: +// +// reference transaction +// reference account rather than user +// credited - redundant with confirmation_code ? +// code -> confirmation_code + + +// const { DataTypes } = require('sequelize'); + +// const attributes = { +// id: { +// type: DataTypes.INTEGER(11), +// allowNull: false, +// defaultValue: null, +// primaryKey: true, +// autoIncrement: true, +// comment: null, +// field: "id" +// }, +// amount: { +// type: DataTypes.DOUBLE, +// allowNull: true, +// defaultValue: null, +// primaryKey: false, +// autoIncrement: false, +// comment: null, +// field: "amount" +// }, +// user_id: { +// type: DataTypes.INTEGER(11), +// allowNull: true, +// defaultValue: null, +// primaryKey: false, +// autoIncrement: false, +// comment: null, +// field: "user_id" +// }, +// createdAt: { +// type: DataTypes.DATE, +// allowNull: false, +// defaultValue: null, +// primaryKey: false, +// autoIncrement: false, +// comment: null, +// field: "createdAt" +// }, +// updatedAt: { +// type: DataTypes.DATE, +// allowNull: false, +// defaultValue: null, +// primaryKey: false, +// autoIncrement: false, +// comment: null, +// field: "updatedAt" +// }, +// credited: { +// type: DataTypes.BOOLEAN, +// allowNull: true, +// defaultValue: null, +// primaryKey: false, +// autoIncrement: false, +// comment: null, +// field: "credited" +// }, +// code: { +// type: DataTypes.STRING(255), +// allowNull: true, +// defaultValue: null, +// primaryKey: false, +// autoIncrement: false, +// comment: null, +// field: "code" +// }, +// }; + +// const options = { +// tableName: "deposits", +// comment: "", +// indexes: [] +// }; + +// db["Deposit"] = db.define("deposits_model", attributes, options); |
