let model = require('./model') let bookshelf = require("./bookshelf").bookshelf let Folder = bookshelf.Model.extend({ tableName: 'folders', hasTimestamps: true, }, { jsonColumns: ['opt'], }) let File = bookshelf.Model.extend({ tableName: 'files', hasTimestamps: true, }, { jsonColumns: ['opt'], }) let Task = bookshelf.Model.extend({ tableName: 'tasks', hasTimestamps: true, }, { jsonColumns: ['opt'], }) let User = bookshelf.Model.extend({ tableName: 'user', hasTimestamps: true, }, { jsonColumns: ['profile'], }) let Dataset = bookshelf.Model.extend({ tableName: 'datasets', hasTimestamps: true, }, { jsonColumns: ['opt'], }) module.exports = { folder: model('folder', Folder, { fields: "name datatype username activity module checkpoint opt created_at updated_at".split(" "), afterCreate: (folder) => { console.log('created folder', folder.get('id'), folder.get('name')) } }), file: model('file', File, { fields: "folder_id username name url mime datatype duration analysis size stars activity module checkpoint dataset epoch processed generated opt created_at updated_at".split(" "), afterCreate: (file, should_relay) => { console.log('created file') // bridge.processFiles() console.log(should_relay) if (should_relay) { // if this came from an automated command... const client = require('../bridge').client client.emit('api_res', { type: 'create', datatype: 'file', data: file.toJSON() }) console.log("RELAYINED") } } }), task: model('task', Task, { fields: "username success completed processing status module activity checkpoint dataset processor started epoch epochs dataset_id folder_id file_id output_file_id opt stdout stderr created_at updated_at".split(" "), afterCreate: (task) => { console.log('created task') // bridge.processTasks() } }), dataset: model('dataset', Dataset, { fields: "username completed processing status activity module checkpoint dataset opt created_at updated_at".split(" "), afterCreate: (task) => { console.log('created dataset') // bridge.processTasks() } }), user: model('user', Task, { fields: "username password realname level avatar lastseen profile created_at updated_at".split(" "), afterCreate: (user) => { console.log('created user') // bridge.processTasks() } }), }