models/zertifikat.js

/** Objekt das ein Zertifikat beschreibt */
class Zertifikat {
    /**
     * @param  {number} betrag=null - Volumen des Zertifikates
     * @param  {string} typ=null - Typ beschrieben als "put" oder "call"
     * @param  {number} hebel=null - Hebel bzw. Multiplikator des Zertifikats
     * @param  {number} punkte=null - AGSX-Punktestand des Marktes zum Zeitpunkt der Erstellung des Zertifikates
     * @param  {Date} ablauf_datum=null - Verfalls- bzw. Auszahlungsdatum
     */
    constructor(betrag=null, typ=null, hebel=null, punkte=null, ablauf_datum=null) {
        this.betrag = betrag;
        this.typ = typ;
        this.hebel = hebel;
        this.punkte = punkte;
        this.ablauf_datum = ablauf_datum;
    }

    set betrag(betrag) {
        this._betrag = betrag;
    }

    /**
     * @public
     * @property {number} betrag - den Betrag der Anleihe.
     */
    get betrag() {
        return this._betrag;
    }

    set typ(typ) {
        this._typ = typ;
    }

    /**
     * @public
     * @property {string} typ - Typ der Anleihe (put/call).
     */
    get typ() {
        return this._typ;
    }

    set hebel(hebel) {
        this._hebel = hebel;
    }

    /**
     * @public
     * @property {number} hebel - Hebel/Multiplikator.
     */
    get hebel() {
        return this._hebel;
    }

    set punkte(punkte) {
        this._punkte = punkte;
    }

    /**
     * @public
     * @property {number} punkte - AGSX-Punkte zum Zeitpunkt der Erstellung.
     */
    get punkte() {
        return this._punkte;
    }

    set ablauf_datum(datum) {
        this._ablauf_datum = datum;
    }

    /**
     * @public
     * @property {Date} ablauf_datum - Auszahlungs- oder Verfallsdatum.
     */
    get ablauf_datum() {
        return this._ablauf_datum;
    }
}

module.exports = Zertifikat;