const VersionedModel = require('../../VersionedModel') const uuid = require('uuid/v4') /* * ColumnDef Model * ------------------------------------------------------------- * Put some description here! */ class ColumnDef extends VersionedModel { static get schema() { // Return a flitter-orm schema here. return { ...super.schema, headerName: String, field: String, DatabaseId: String, UUID: { type: String, default: () => uuid() }, Type: { type: String, default: 'text' }, // text, number for now additionalData: { type: String, default: '{}' } } } // Static and instance methods can go here data_get(key) { return JSON.parse(this.additionalData ? this.additionalData : '{}')[key] } data_set(key, value) { const json = JSON.parse(this.additionalData ? this.additionalData : '{}') json[key] = value this.additionalData = JSON.stringify(json) } data() { return JSON.parse(this.additionalData ? this.additionalData : '{}') } to_api_object() { return { name: this.headerName, uuid: this.UUID, field: this.field, database_id: this.DatabaseId, type: this.Type, metadata: this.data(), version_num: this.version_num, version_message: this.version_message, } } } module.exports = exports = ColumnDef