From 4eacfda951f8275ac4f3a1283368884e53285ed0 Mon Sep 17 00:00:00 2001 From: Ran Guin Date: Wed, 14 Jul 2021 18:00:30 -0700 Subject: update normalized models --- db/normalized/deposits.js | 137 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 96 insertions(+), 41 deletions(-) (limited to 'db/normalized/deposits.js') 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'); - -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' - } +exports.up = function(knex) { + return knex.schema.createTable('deposits', function(t) { + t.increments('id').unsigned().primary(); + + 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); -- cgit v1.2.3