let fs = require('fs') let model = require('./model') let bookshelf = require("./bookshelf").bookshelf import bridge from '../bridge' let Folder = bookshelf.Model.extend({ tableName: 'folders', hasTimestamps: true, }) let File = bookshelf.Model.extend({ tableName: 'files', hasTimestamps: true, }) let Job = bookshelf.Model.extend({ tableName: 'jobs', hasTimestamps: true, }) let Task = bookshelf.Model.extend({ tableName: 'tasks', hasTimestamps: true, }) module.exports = { folder: model('folder', Folder, { fields: "name username description".split(" "), afterCreate: (folder) => { fs.mkdir('data/' + folder.get('id') + '/', function(){ console.log('created folder', folder.get('id'), folder.get('name')) }) } }), file: model('file', File, { fields: "folder_id username name mime type duration analysis size processed generated".split(" "), afterCreate: (file) => { bridge.processFiles() } }), job: model('job', Job, { fields: "name username completed tool".split(" "), }), task: model('task', Task, { fields: "job_id username completed processing tool content_file_id style_file_id output_file_id alpha iterations stdout stderr".split(" "), afterCreate: (task) => { bridge.processTasks() }, hasOne: { content_file: File, style_file: File, output_file: File, } }), }