From 2e18dc7a532d07d6e53581e5076c7d61a45d6d65 Mon Sep 17 00:00:00 2001 From: Ran Guin Date: Tue, 11 May 2021 18:28:25 -0700 Subject: add first draft of normalized schema --- db/normalized/waiting_list.js | 48 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 db/normalized/waiting_list.js (limited to 'db/normalized/waiting_list.js') diff --git a/db/normalized/waiting_list.js b/db/normalized/waiting_list.js new file mode 100644 index 00000000..c849f34f --- /dev/null +++ b/db/normalized/waiting_list.js @@ -0,0 +1,48 @@ +const { DataTypes } = require('sequelize/types'); +const config = require('./../config') +const dbc = require('knex')(config.knex) + +const { DataTypes } = require('sequelize'); + +const attributes = { + id: { + type: DataTypes.INTEGER(11), + primaryKey: true, + autoIncrement: true, + allowNull: false + }, + email: { + type: DataTypes.STRING(255), + validate: { + isEmail: true + } + }, + sms: { + type: DataTypes.STRING(255), + validate: { + is: /^[0-9]+$/ // replace spaces, brackets, dashes dynamically prior to create + } + }, + status: { + type: DataTypes.ENUM, + values: ['pending', 'activated', 'expired', 'cancelled'], + defaultValue: 'pending', + allowNull: false + } +} + +const options = { + tableName: "waiting_list", + comment: "Users on waiting list", + timestamps: true, + createdAt: 'created_at', + updatedAt: 'updated_at', + indexes: [ + { + unique: true, + fields: ['email', 'sms'] + } + ] +}; + +db["WaitingList"] = db.define("waiting_list_model", attributes, options); -- cgit v1.2.3