Files
headup_api/models/mongo/Price.js
T
2023-09-12 21:43:57 +02:00

87 lines
2.9 KiB
JavaScript

var mongoose = require('mongoose');
var uniqueValidator = require('mongoose-unique-validator');
var PriceSchema = new mongoose.Schema({
timestamp: { type: Number, default: 0 },
metal: { type: String, upercase: true, default: 'ØØØ' },
currency: { type: String, upercase: true, default: 'ØØØ' },
exchange: { type: String, upercase: true, default: '' },
symbol: { type: String, upercase: true, default: '' },
prev_close_price: { type: Number, default: 0 },
open_price: { type: Number, default: 0 },
low_price: { type: Number, default: 0 },
high_price: { type: Number, default: 0 },
open_time: { type: Number, default: 0 },
price: { type: Number, default: 0 },
ch: { type: Number, default: 0 },
chp: { type: Number, default: 0 },
ask: { type: Number, default: 0 },
bid: { type: Number, default: 0 },
price_gram_24k: { type: Number, default: 0 },
price_gram_22k: { type: Number, default: 0 },
price_gram_21k: { type: Number, default: 0 },
price_gram_20k: { type: Number, default: 0 },
price_gram_18k: { type: Number, default: 0 },
price_gram_16k: { type: Number, default: 0 },
price_gram_14k: { type: Number, default: 0 },
price_gram_10k: { type: Number, default: 0 }
}, { timestamps: true, toJSON: { virtuals: true } });
PriceSchema.plugin(uniqueValidator, { message: 'is already taken' });
PriceSchema.methods.toJSONFor = function () {
/*
let a = {
timestamp: 1689944788,
metal: "XAU",
currency: "EUR",
exchange: "FOREXCOM",
symbol: "FOREXCOM:XAUEUR",
prev_close_price: 0.00,
open_price: 0.00,
low_price: 0.00,
high_price: 0.00,
open_time: 1689897600,
price: 0.00,
ch: 0.00,
chp: 0.00,
ask: 0.00,
bid: 0.00,
price_gram_24k: 0.00,
price_gram_22k: 0.00,
price_gram_21k: 0.00,
price_gram_20k: 0.00,
price_gram_18k: 0.00,
price_gram_16k: 0.00,
price_gram_14k: 0.00,
price_gram_10k: 0.00
};
*/
return {
timestamp: this.timestamp,
metal: this.metal,
currency: this.currency,
exchange: this.exchange,
symbol: this.symbol,
prev_close_price: this.prev_close_price,
open_price: this.open_price,
low_price: this.low_price,
high_price: this.high_price,
open_time: this.open_time,
price: this.price,
ch: this.ch,
chp: this.chp,
ask: this.ask,
bid: this.bid,
price_gram_24k: this.price_gram_24k,
price_gram_22k: this.price_gram_22k,
price_gram_21k: this.price_gram_21k,
price_gram_20k: this.price_gram_20k,
price_gram_18k: this.price_gram_18k,
price_gram_16k: this.price_gram_16k,
price_gram_14k: this.price_gram_14k,
price_gram_10k: this.price_gram_10k
};
};
mongoose.model('Price', PriceSchema);