synt_backend
Version:
Synt light-weight node backend service
83 lines (82 loc) • 1.86 kB
JavaScript
"use strict";
// eslint-disable-next-line no-undef
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable("Users", {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER,
},
character: {
type: Sequelize.ENUM("natural", "legal"),
defaultValue: "natural",
},
CompanyId: {
type: Sequelize.INTEGER,
references: {
model: "Companies",
key: "id",
},
allowNull: true,
defaultValue: Sequelize.UUIDV4,
onUpdate: "CASCADE",
onDelete: "CASCADE",
},
first_name: {
type: Sequelize.STRING,
defaultValue: "",
},
last_name: {
type: Sequelize.STRING,
defaultValue: "",
},
email: {
allowNull: false,
type: Sequelize.STRING,
},
phone: {
type: Sequelize.STRING,
},
email_verified_at: {
type: Sequelize.DATE,
},
phone_verified_at: {
type: Sequelize.DATE,
},
is_admin: {
type: Sequelize.BOOLEAN,
defaultValue: false,
},
address: {
type: Sequelize.STRING,
},
terms_accepted_at: {
allowNull: true,
type: Sequelize.DATE,
},
language: {
type: Sequelize.STRING,
},
country: {
type: Sequelize.STRING,
},
createdAt: {
allowNull: false,
type: Sequelize.DATE,
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE,
},
});
await queryInterface.addConstraint("Users", {
fields: ["email", "CompanyId"],
type: "unique",
});
},
down: async (queryInterface) => {
await queryInterface.dropTable("Users");
},
};