mongoose = require('mongoose').set('debug', false)
const Schema = mongoose.Schema;

const tools = require('../tools/general');

mongoose.Promise = global.Promise;
mongoose.level = "F";


// Resolving error Unknown modifier: $pushAll
mongoose.plugin(schema => {
  schema.options.usePushEach = true
});


/**
 * @typedef {Object} Article
 * @property {bigint} Id
 * @property {number} IdArticolo
 * @property {string} Ean13
 * @property {string} Titolo
 * @property {string} ListaAutori
 * @property {string} ListaArgomenti
 * @property {number} IdStatoProdotto
 * @property {number} PrezzoIvato
 * @property {number} IdMarchioEditoriale
 * @property {number} IdCollana
 * @property {Date} DataPubblicazione
 * @property {number} IdTipologia
 * @property {number} IdTipoFormato
 * @property {string} Misure
 * @property {string} Pagine
 * @property {string} Sottotitolo
 * @property {string} Durata
 * @property {string} Numero
 * @property {string} Edizione
 * @property {string} Ristampa
 * @property {Date} DataInizioCampagna
 * @property {Date} DataFineCampagna
 * @property {number} ScontoCampagna
 * @property {number} PrezzoIvatoScontatoCampagna
 * @property {Date} DataOra
 * @property {boolean} Enabled
 * @property {number} IDTagGruppo
 * @property {string} Utente
 * @property {number} PercIva
 * @property {number} IdTitoloOriginale
 * @property {boolean} EnabledAlFresco
 * @property {number} CodEdizione
 * @property {string} FasciaEta
 * @property {string} DescrizioneStatoProdotto
 * @property {string} DescrizioneTipologia
 * @property {string} DescrizioneFormato
 * @property {string} DescrizioneCollana
 * @property {string} DescrArgomento
 * @property {string} AutoriCompleti
 * @property {string} CasaEditrice
 */

const T_WEB_ArticoliSchema = new Schema({
  IdArticolo: { type: Number },
  Ean13: { type: String },
  Titolo: { type: String },
  ListaAutori: String,
  ListaArgomenti: String,
  IdStatoProdotto: Number,
  PrezzoIvato: Number,
  IdMarchioEditoriale: Number,
  IdCollana: Number,
  DataPubblicazione: Date,
  IdTipologia: Number,
  IdTipoFormato: Number,
  Misure: String,
  Pagine: String,
  Sottotitolo: String,
  Durata: String,
  Numero: String,
  Edizione: String,
  Ristampa: String,
  DataInizioCampagna: Date,
  DataFineCampagna: Date,
  ScontoCampagna: Number,
  PrezzoIvatoScontatoCampagna: Number,
  DataOra: Date,
  Enabled: Boolean,
  IDTagGruppo: Number,
  Utente: String,
  PercIva: Number,
  IdTitoloOriginale: Number,
  EnabledAlFresco: Boolean,
  CodEdizione: Number,
  FasciaEta: String,
  DescrizioneStatoProdotto: String,
  DescrizioneTipologia: String,
  DescrizioneFormato: String,
  DescrizioneCollana: String,
  DescrArgomento: String,
  AutoriCompleti: String,
  CasaEditrice: String,
}, { collection: 't_web_articolis' });

module.exports = mongoose.model('T_WEB_Articoli', T_WEB_ArticoliSchema);

module.exports.createIndexes({ IdArticolo: 1, DataOra: -1 })
  .then(() => { })
  .catch((err) => { throw err; });

