'use strict';

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const AwardingSchema = new Schema({
  userId: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'User',
  },
  decorationId: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Decoration',
  },
  reason: {
    type: String,
    required: true,
  },
  proposer: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'AppUser',
    required: true,
  },
  confirmed: {
    type: Number,
    get: (v) => Math.round(v),
    set: (v) => Math.round(v),
    min: 0,
    max: 2,
    default: 0,
  },
  rejectReason: {
    type: String,
  },
  date: {
    type: Date,
    default: Date.now(),
  },
}, {
  collection: 'awarding',
  timestamps: {createdAt: 'timestamp'},
});
// optional more indices
AwardingSchema.index({timestamp: 1});

module.exports = mongoose.model('Awarding', AwardingSchema);