fog-controller
Version:
Fog Controller project @ iotracks.com
96 lines (81 loc) • 2.11 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _sequelize = require('sequelize');
var _sequelize2 = _interopRequireDefault(_sequelize);
var _sequelize3 = require('./../utils/sequelize');
var _sequelize4 = _interopRequireDefault(_sequelize3);
var _registry = require('./registry');
var _registry2 = _interopRequireDefault(_registry);
var _user = require('./user');
var _user2 = _interopRequireDefault(_user);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @file element.js
* @author Zishan Iqbal
* @description This file includes a element model used by sequalize for ORM;
*/
var Element = _sequelize4.default.define('element', {
id: {
type: _sequelize2.default.INTEGER,
primaryKey: true,
autoIncrement: true,
field: 'ID'
},
name: {
type: _sequelize2.default.TEXT,
field: 'name'
},
description: {
type: _sequelize2.default.TEXT,
field: 'description'
},
category: {
type: _sequelize2.default.TEXT,
field: 'category'
},
config: {
type: _sequelize2.default.TEXT,
field: 'config'
},
registryId: {
type: _sequelize2.default.BIGINT,
field: 'registry_id'
},
publisher: {
type: _sequelize2.default.TEXT,
field: 'publisher'
},
diskRequired: {
type: _sequelize2.default.BIGINT,
field: 'diskRequired'
},
ramRequired: {
type: _sequelize2.default.BIGINT,
field: 'ram_required'
},
picture: {
type: _sequelize2.default.BIGINT,
field: 'picture'
},
isPublic: {
type: _sequelize2.default.BOOLEAN,
field: 'is_public'
}
}, {
// don't add the timestamp attributes (updatedAt, createdAt)
timestamps: false,
// disable the modification of table names
freezeTableName: true,
// don't use camelcase for automatically added attributes but underscore style
// so updatedAt will be updated_at
underscored: true
});
Element.belongsTo(_registry2.default, {
foreignKey: 'registry_id'
});
Element.belongsTo(_user2.default, {
foreignKey: 'user_id'
});
exports.default = Element;