From 039be437233b3443f8ab0b93d6f34929534ba670 Mon Sep 17 00:00:00 2001 From: Udo Walter Date: Thu, 19 Jul 2018 03:58:05 +0000 Subject: [server/groups][webapp/groups] added first version of the groups module --- server/models/client.js | 22 ++++++++++++++++++++++ server/models/group.js | 19 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 server/models/client.js create mode 100644 server/models/group.js (limited to 'server/models') diff --git a/server/models/client.js b/server/models/client.js new file mode 100644 index 0000000..ad3bc28 --- /dev/null +++ b/server/models/client.js @@ -0,0 +1,22 @@ +'use strict' +module.exports = (sequelize, DataTypes) => { + var client = sequelize.define('client', { + id: { + allowNull: false, + autoIncrement: true, + primaryKey: true, + type: DataTypes.INTEGER + }, + name: DataTypes.STRING, + ip: DataTypes.STRING, + mac: DataTypes.STRING, + uuid: DataTypes.STRING + }, { + timestamps: false + }) + var GroupXClient = sequelize.define('group_x_client', {}, { timestamps: false, freezeTableName: true }) + client.associate = function (models) { + client.belongsToMany(models.group, { as: 'groups', through: GroupXClient, foreignKey: 'clientId', otherKey: 'groupId'}) + } + return client +} diff --git a/server/models/group.js b/server/models/group.js new file mode 100644 index 0000000..9151db5 --- /dev/null +++ b/server/models/group.js @@ -0,0 +1,19 @@ +'use strict' +module.exports = (sequelize, DataTypes) => { + var group = sequelize.define('group', { + id: { + allowNull: false, + autoIncrement: true, + primaryKey: true, + type: DataTypes.INTEGER + }, + name: DataTypes.STRING + }, { + timestamps: false + }) + var GroupXGroup = sequelize.define('group_x_group', {}, { timestamps: false, freezeTableName: true }) + group.associate = function (models) { + group.belongsToMany(group, { as: 'parents', through: GroupXGroup, foreignKey: 'childId', otherKey: 'parentId'}) + } + return group +} -- cgit v1.2.3-55-g7522