periodicjs
Version:
Periodic is a rapid enterprise application framework for data driven web and mobile applications.
67 lines (66 loc) • 1.91 kB
JavaScript
'use strict';
const Sequelize = require('sequelize');
module.exports = (modelName) => {
return {
_id: {
type: Sequelize.INTEGER,
// type: Sequelize.UUID,
primaryKey: true,
autoIncrement: true,
},
entitytype: {
type: Sequelize.STRING,
default: modelName,
},
_attributes: {
type: Sequelize.TEXT,
field:'_attributes',
// allowNull: false,
get() {
return this.getDataValue('_attributes')? JSON.parse(this.getDataValue('_attributes')):{};
},
set(val) {
this.setDataValue('_attributes', JSON.stringify(val, null, 2));
},
},
entity_attributes: {
type: Sequelize.TEXT,
// allowNull: false,
get() {
return this.getDataValue('entity_attributes')? JSON.parse(this.getDataValue('entity_attributes')):{};
},
set(val) {
this.setDataValue('entity_attributes', JSON.stringify(val, null, 2));
},
},
contenttypeattributes: {
type: Sequelize.TEXT,
// allowNull: false,
get() {
return this.getDataValue('contenttypeattributes')? JSON.parse(this.getDataValue('contenttypeattributes')):{};
},
set(val) {
this.setDataValue('contenttypeattributes', JSON.stringify(val, null, 2));
},
},
extensionattributes: {
type: Sequelize.TEXT,
// allowNull: false,
get() {
return this.getDataValue('extensionattributes')? JSON.parse(this.getDataValue('extensionattributes')):{};
},
set(val) {
this.setDataValue('extensionattributes', JSON.stringify(val, null, 2));
},
},
random: Sequelize.FLOAT,
createdat: {
type: Sequelize.DATE,
defaultValue: Sequelize.NOW,
},
updatedat: {
type: Sequelize.DATE,
defaultValue: Sequelize.NOW,
},
};
};