ice-frontend-react-mobx
Version:
ICE Frontend REACT+MobX
79 lines (66 loc) • 2.13 kB
JavaScript
const debug = require('debug')('ice:models:capacityReport'); // eslint-disable-line no-unused-vars
import { observable, computed } from 'mobx';
export default class CapacityReport {
zoneName = null;
allocatedPower = 0;
available2nCapacity = 0;
available1nCapacity = 0;
availableCapacity = 0;
zone2nPeak = 0;
zone1nPeak = 0;
zonePeak = 0;
breakers = [];
rackData = [];
timestamp = null;
store = null;
constructor (store) {
this.store = store;
}
get id () {
return this.zoneName;
}
get reportDate () {
return new Date(this.timestamp);
}
get toJson () {
let capacityReport = {
timestamp: this.timestamp,
peakSinceDate: this.peakSinceDate,
zoneName: this.zoneName,
allocatedPower: this.allocatedPower,
available2nCapacity: this.available2nCapacity,
available1nCapacity: this.available1nCapacity,
availableCapacity: this.availableCapacity,
zone2nPeak: this.zone2nPeak,
zone1nPeak: this.zone1nPeak,
zonePeak: this.zonePeak,
breakers: this.breakers,
rackData: this.rackData
};
if (this.id) {
capacityReport.id = capacityReport.id;
}
return capacityReport;
}
updateFromJson (json) {
debug('UpdateFromJson:', json);
this.timestamp = json.timestampGenerated;
this.peakSinceDate = json.peakSinceDate || '';
this.zoneName = json.zoneName || 'N/A';
this.allocatedPower = json.allocatedPower || 0;
this.available2nCapacity = json.available2nCapacity || 0;
this.available1nCapacity = json.available1nCapacity || 0;
this.availableCapacity = json.availableCapacity || 0;
this.zone2nPeak = json.zone2nPeak || 0;
this.zone1nPeak = json.zone1nPeak || 0;
this.zonePeak = json.zonePeak || 0;
this.breakers = json.breakers || [];
this.rackData = json.rackData || [];
}
save () {
return this.store.save(this);
}
delete () {
return this.store.delete(this.id);
}
}