// Generated by CoffeeScript 1.4.0 var content, moment, userSchema, _; content = require('./content'); moment = require('moment'); _ = require('lodash'); userSchema = { balance: 2, stats: { money: 0, exp: 0, lvl: 1, hp: 50 }, items: { itemsEnabled: false, armor: 0, weapon: 0 }, tasks: {}, habitIds: [], dailyIds: [], todoIds: [], completedIds: [], rewardIds: [] }; module.exports.newUserObject = function() { var guid, newUser, task, _i, _len, _ref; newUser = _.clone(userSchema, true); _ref = content.defaultTasks; for (_i = 0, _len = _ref.length; _i < _len; _i++) { task = _ref[_i]; guid = task.id = require('derby/node_modules/racer').uuid(); newUser.tasks[guid] = task; switch (task.type) { case 'habit': newUser.habitIds.push(guid); break; case 'daily': newUser.dailyIds.push(guid); break; case 'todo': newUser.todoIds.push(guid); break; case 'reward': newUser.rewardIds.push(guid); } } return newUser; }; module.exports.updateSchema = function(model) { return; return model.fetch('users', function(err, users) { return _.each(users.get(), function(userObj) { var daysOld, sameTasks, user, userPath; userPath = "users." + userObj._id; user = model.at(userPath); if (userObj.lastCron == null) { model.del(userPath); return; } daysOld = helpers.daysBetween(new Date(), userObj.lastCron); if (daysOld > 30) { sameTasks = _.filter(require('./content').defaultTasks, function(defaultTask) { var foundSame; foundSame = _.find(userObj.tasks, function(userTask) { return userTask.text === defaultTask.text; }); return foundSame != null; }); if (_.size(sameTasks) > 5) { model.del(userPath); return; } } user.set('history', { exp: [], todos: [] }); return _.each(userObj.tasks, function(taskObj) { var task; task = user.at("tasks." + taskObj.id); if (task.get("history")) { return task.set("history", []); } }); }); }); };