|  | @@ -4,6 +4,29 @@ Subtasks.attachSchema(new SimpleSchema({
 | 
	
		
			
				|  |  |    title: {
 | 
	
		
			
				|  |  |      type: String,
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  | +  startAt: { // this is a predicted time
 | 
	
		
			
				|  |  | +    type: Date,
 | 
	
		
			
				|  |  | +    optional: true,
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  endAt: { // this is a predicted time
 | 
	
		
			
				|  |  | +    type: Date,
 | 
	
		
			
				|  |  | +    optional: true,
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  finishedAt: { // The date & time when it is marked as being done
 | 
	
		
			
				|  |  | +    type: Date,
 | 
	
		
			
				|  |  | +    optional: true,
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  createdAt: {
 | 
	
		
			
				|  |  | +    type: Date,
 | 
	
		
			
				|  |  | +    denyUpdate: false,
 | 
	
		
			
				|  |  | +    autoValue() { // eslint-disable-line consistent-return
 | 
	
		
			
				|  |  | +      if (this.isInsert) {
 | 
	
		
			
				|  |  | +        return new Date();
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        this.unset();
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  |    sort: {
 | 
	
		
			
				|  |  |      type: Number,
 | 
	
		
			
				|  |  |      decimal: true,
 | 
	
	
		
			
				|  | @@ -17,6 +40,16 @@ Subtasks.attachSchema(new SimpleSchema({
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |  }));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +Subtasks.helpers({
 | 
	
		
			
				|  |  | +  isFinished() {
 | 
	
		
			
				|  |  | +    return 0 !== this.itemCount() && this.itemCount() === this.finishedCount();
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  itemIndex(itemId) {
 | 
	
		
			
				|  |  | +    const items = self.findOne({_id : this._id}).items;
 | 
	
		
			
				|  |  | +    return _.pluck(items, '_id').indexOf(itemId);
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +});
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  Subtasks.allow({
 | 
	
		
			
				|  |  |    insert(userId, doc) {
 | 
	
		
			
				|  |  |      return allowIsBoardMemberByCard(userId, Cards.findOne(doc.cardId));
 | 
	
	
		
			
				|  | @@ -31,6 +64,7 @@ Subtasks.allow({
 | 
	
		
			
				|  |  |  });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Subtasks.before.insert((userId, doc) => {
 | 
	
		
			
				|  |  | +  doc.createdAt = new Date();
 | 
	
		
			
				|  |  |    if (!doc.userId) {
 | 
	
		
			
				|  |  |      doc.userId = userId;
 | 
	
		
			
				|  |  |    }
 |