const Sequelize = require("sequelize") const mongoose = require('mongoose'); const Schema = mongoose.Schema; let DeviceMessageSchema = new Schema({ _id: {type: Number, required: true}, device_id: {type: String, required: true, max: 100} }); let DevicesSchema = new Schema({ id: {type: Number, required: true}, url: {type: String, required: true, max: 100} }); var sqlz = new Sequelize('iot', 'iot', '!iot_popovi',{dialect: 'mysql'}) var Device = sqlz.define('device', { id: { type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true }, name: Sequelize.STRING, baseurl: Sequelize.TEXT, apikey: Sequelize.TEXT, //config: Sequelize.JSON, lastseen: Sequelize.DATE }); var DeviceMessage = sqlz.define('devicemessage', { id: { type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true }, device_id: { type: Sequelize.INTEGER, allowNull: false}, //id,"device_id","field_name","field_value","timestamp" field_name: { type: Sequelize.STRING(120), allowNull: false}, field_value: { type: Sequelize.TEXT, allowNull: false}, timestamp: { type: Sequelize.DATE, allowNull: false}, }); var DeviceCommand = sqlz.define("command", { device: { type: Sequelize.STRING}, command: {type: Sequelize.TEXT}, info: {type: Sequelize.STRING}, ac_power: Sequelize.BOOLEAN, ac_mode: Sequelize.ENUM('Auto', 'Heat', 'Cool', "Fan"), ac_fan: Sequelize.ENUM('Auto', 'Low', 'Med', "Hi"), ac_temp: Sequelize.FLOAT, ac_turbo: Sequelize.BOOLEAN, ac_swing: Sequelize.BOOLEAN, ac_display: Sequelize.BOOLEAN, ac_econo: Sequelize.BOOLEAN, ac_health: Sequelize.BOOLEAN, }); sqlz.sync( //{ force: true } ) .then(() => { console.log(`Database & tables created!`) }) module.exports = { init: function() { //console.log(DeviceCommand.rawAttributes.states.values); sqlz.sync(); }, sqlz, Device, DeviceCommand, DeviceMessage //etc }