define([ "./_Class", "./questions", "dojo/_base/array", "dojo/_base/declare", "dojo/_base/lang" ], function(_Class, questions, array, declare, lang) { var Surveys = declare([_Class],{ _collection: 'surveys', _type: 'Survey', create: function() { var obj = { type: this._type, questions: [], title: "" }; return obj; }, _deserialize: function(obj) { obj.questions = array.map(obj.questions, lang.hitch(questions,'_doDeserialize')); if (obj.publicationDate) { obj.publicationDate = this._parseDate(obj.publicationDate); } }, _serialize: function(obj) { obj.questions = array.map(obj.questions, lang.hitch(questions,'_doSerialize')); if (obj.publicationDate) { obj.publicationDate = this._formatDate(obj.publicationDate); } }, getPreviewPath: function(idOrObj) { return '/previewSurvey/'+(typeof idOrObj === "string"? idOrObj : this.getId(idOrObj)); } }); return new Surveys(); });