/* global Events Reservations */ 'use strict'; const _ = require('lodash'); const moment = require('moment'); const Sequelize = require('sequelize'); const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper'); const models = require('../../core/models'); const xlsx = require("node-xlsx"); const fs = require("fs"); const cdnHelper = require('../../helpers/cdn.helper'); const extraMethods = { _getReservaById: (Id) => { return models.EventReservation.findOne({ where: { id: Id }, }) }, _getReservaByCode: (eventId, code) => { return models.EventReservation.findOne({ where: { reservation_code: code, eventId: eventId }, include: [{ model: models.Event, }, {model: models.Entity}], }) }, _getPartners: (eventId) => { return models.EventReservation.findAll({ where: { eventId: eventId }, include: [{ model: models.Entity, include: [{ model: models.EntityType, as:'types', where:{alias: 'partner'}}], }], order: [[{ model: models.Entity }, 'name', 'asc']], }) }, _getColleges: (eventId) => { return models.EventReservation.findAll({ where: { eventId: eventId }, include: [{ model: models.Entity, include: [{ model: models.EntityType, as: 'types', where: { alias: 'college' } }], }], order: [[{ model: models.Entity }, 'name', 'asc']], }) }, _updateConfirmedReservation: (id, confirmed) => { return new Promise(function (resolve, reject) { models.EventReservation.update( { confirmed: confirmed, }, { where: { id: id } }) .then(function (result) { resolve((result[0] === 1)); }) .catch(function (error) { reject(error) }); }); }, _updateSoldOutReservation: (id, sold_out) => { return new Promise(function (resolve, reject) { models.EventReservation.update( { sold_out: sold_out, }, { where: { id: id } }) .then(function (result) { resolve((result[0] === 1)); }) .catch(function (error) { reject(error) }); }); }, _getReservationsExcel: (user, eventId, partnerId, type, callback) => { console.log('>>>>>>>>>>>>>>>>>>>>