Skip to content

Commit

Permalink
Merge 630b714 into 59f5bc4
Browse files Browse the repository at this point in the history
  • Loading branch information
max-wel committed Aug 21, 2019
2 parents 59f5bc4 + 630b714 commit 83df0b1
Show file tree
Hide file tree
Showing 9 changed files with 222 additions and 109 deletions.
39 changes: 0 additions & 39 deletions src/database/migrations/20190817131405-create-users.js

This file was deleted.

35 changes: 35 additions & 0 deletions src/database/migrations/20190821100957-create-company.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@

module.exports = {
up: (queryInterface, Sequelize) => queryInterface.sequelize.query('CREATE EXTENSION IF NOT EXISTS "uuid-ossp";').then(() => queryInterface.createTable('Companies', {
id: {
allowNull: false,
primaryKey: true,
type: Sequelize.DataTypes.UUID,
defaultValue: Sequelize.literal('uuid_generate_v4()'),
},
name: {
allowNull: false,
type: Sequelize.STRING
},
address: {
allowNull: false,
type: Sequelize.STRING
},
code: {
allowNull: false,
unique: true,
type: Sequelize.STRING
},
createdAt: {
allowNull: false,
type: Sequelize.DATE,
defaultValue: Sequelize.fn('now')
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE,
defaultValue: Sequelize.fn('now')
}
})),
down: queryInterface => queryInterface.dropTable('Companies')
};
68 changes: 68 additions & 0 deletions src/database/migrations/20190821105503-create-user.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
module.exports = {
up: (queryInterface, Sequelize) => queryInterface.sequelize.query('CREATE EXTENSION IF NOT EXISTS "uuid-ossp";').then(() => {
queryInterface.createTable('Users', {
id: {
allowNull: false,
primaryKey: true,
type: Sequelize.DataTypes.UUID,
defaultValue: Sequelize.literal('uuid_generate_v4()'),
},
companyId: {
allowNull: false,
type: Sequelize.DataTypes.UUID,
onDelete: 'CASCADE',
onUpdate: 'CASCADE',
references: {
model: 'Companies',
key: 'id',
},
},
firstName: {
allowNull: false,
type: Sequelize.STRING
},
lastName: {
allowNull: false,
type: Sequelize.STRING
},
email: {
allowNull: false,
unique: true,
type: Sequelize.STRING
},
password: {
allowNull: false,
type: Sequelize.STRING
},
gender: {
allowNull: false,
type: Sequelize.ENUM('male', 'female')
},
dob: {
allowNull: false,
type: Sequelize.DATEONLY,
},
role: {
allowNull: false,
type: Sequelize.ENUM('owner', 'admin', 'staff'),
defaultValue: 'staff'
},
status: {
allowNull: false,
type: Sequelize.ENUM('active', 'inactive'),
defaultValue: 'active'
},
createdAt: {
allowNull: false,
type: Sequelize.DATE,
defaultValue: Sequelize.fn('now')
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE,
defaultValue: Sequelize.fn('now')
}
});
}),
down: queryInterface => queryInterface.dropTable('Users')
};
26 changes: 26 additions & 0 deletions src/database/models/company.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
module.exports = (sequelize, DataTypes) => {
const Company = sequelize.define('Company', {
name: {
allowNull: false,
type: DataTypes.STRING
},
address: {
allowNull: false,
type: DataTypes.STRING
},
code: {
allowNull: false,
unique: true,
type: DataTypes.STRING
}
}, {});
Company.associate = (models) => {
// associations can be defined here
Company.hasMany(models.User, {
foreignKey: 'companyId',
onDelete: 'CASCADE',
onUpdate: 'CASCADE'
});
};
return Company;
};
55 changes: 55 additions & 0 deletions src/database/models/user.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define(
'User',
{
firstName: {
allowNull: false,
type: DataTypes.STRING
},
lastName: {
allowNull: false,
type: DataTypes.STRING
},
email: {
allowNull: false,
unique: true,
type: DataTypes.STRING
},
password: {
allowNull: false,
type: DataTypes.STRING
},
gender: {
allowNull: false,
type: DataTypes.ENUM('male', 'female'),
values: ['male', 'female']
},
dob: {
allowNull: false,
type: DataTypes.DATEONLY
},
role: {
allowNull: false,
type: DataTypes.ENUM('owner', 'admin', 'staff'),
values: ['owner', 'admin', 'staff'],
defaultValue: 'staff'
},
status: {
allowNull: false,
type: DataTypes.ENUM('active', 'inactive'),
values: ['active', 'inactive'],
defaultValue: 'active'
}
},
{}
);
User.associate = (models) => {
// associations can be defined here
User.belongsTo(models.Company, {
foreignKey: 'companyId',
onDelete: 'CASCADE',
onUpdate: 'CASCADE'
});
};
return User;
};
18 changes: 0 additions & 18 deletions src/database/models/users.js

This file was deleted.

52 changes: 0 additions & 52 deletions src/database/seeders/20190817134840-users.js

This file was deleted.

10 changes: 10 additions & 0 deletions src/database/seeders/20190821112340-companies.js.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module.exports = {
up: queryInterface => queryInterface.bulkInsert('Companies', [
{
id: 'a6e35eb9-8c59-4c7d-b8d4-ae724aa7fb61',
name: 'Barclays Premier League',
address: 'Vicarage Road, Watford',
code: '4RHJHJJKSK'
},
])
};
28 changes: 28 additions & 0 deletions src/database/seeders/20190821112700-users.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
module.exports = {
up: queryInterface => queryInterface.bulkInsert('Users', [
{
id: 'ffe25dbe-29ea-4759-8461-ed116f6739dd',
companyId: 'a6e35eb9-8c59-4c7d-b8d4-ae724aa7fb61',
firstName: 'Femi',
lastName: 'Tijani',
email: 'tjhakeemus@gmail.com',
password: '12345678',
dob: '2012-09-12',
gender: 'male',
status: 'active',
role: 'staff'
},
{
id: '91542e6f-94bc-4e80-a667-586fb0752f23',
companyId: 'a6e35eb9-8c59-4c7d-b8d4-ae724aa7fb61',
firstName: 'Desmond',
lastName: 'Edem',
email: 'kukiito@gmail.com',
password: '12345678',
gender: 'male',
dob: '2012-09-12',
status: 'active',
role: 'staff'
},
])
};

0 comments on commit 83df0b1

Please sign in to comment.