fbhelpernodejs
Version:
Modulo para axuiliar a construção de bots
60 lines (56 loc) • 2.25 kB
JavaScript
/**
* Created by Junior on 02/03/2018.
*/
module.exports = restful => {
const mongoose = restful.mongoose;
const deepPopulate = require('mongoose-deep-populate')(mongoose);
const message = {
type: { type: String, required: true, default: 'carrossel', enum: ['image', 'carrossel', 'text', 'video', 'buttons', 'quickreply'] },
value: { type: String, required: false },
elements: [{
title: { type: String, required: false },
subTitle: { type: String, required: false },
image: { type: String, required: false },
url: { type: String, required: false },
callback: { type: String, required: false },
type: { type: String, required: false },
elements: [{
title: { type: String, required: false },
type: { type: String, required: false },
callback: { type: String, required: false }
}]
}]
};
const BroadcastsSchema = new mongoose.Schema({
// type
message: message,
message2: message,
msgsSent: { type: Number, required: false },
msgsErrors: { type: Number, required: false },
msgsRead: { type: Number, required: false },
finished: { type: Boolean, required: true, default: false },
createdAt: { type: Date, required: true, default: () => new Date() },
scheduledDate: { type: Date, required: true, default: () => new Date() },
beginSend: { type: Date, required: false },
finishedAt: { type: Date, required: false },
status: { type: String, required: true, enum: ['pendente', 'enviando', 'enviado'], default: 'pendente' },
page: {
type: mongoose.Schema.Types.ObjectId,
required: true,
immutable: true,
ref: 'Pages'
},
channels: [{
channel: { type: mongoose.Schema.Types.ObjectId, ref: 'Channels', required: true },
sendAt: { type: Date, required: false },
broadcastID: { type: String, required: false }
}],
// ID DO FB
creativeID: { type: String, required: false },
url: { type: String, required: false },
clicked: { type: Number, required: true, default: 0 },
labelMode: { type: Boolean, required: true, default: false }
});
BroadcastsSchema.plugin(deepPopulate);
return restful.model('Broadcasts', BroadcastsSchema);
};