| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | const Model       = require('objection').Model;const db          = require('../db');const helpers     = require('../lib/helpers');const User        = require('./user');const Certificate = require('./certificate');const now         = require('./now_helper');Model.knex(db);const boolFields = [	'is_deleted',	'enabled',	'tcp_forwarding',	'udp_forwarding',];class Stream extends Model {	$beforeInsert () {		this.created_on  = now();		this.modified_on = now();		// Default for meta		if (typeof this.meta === 'undefined') {			this.meta = {};		}	}	$beforeUpdate () {		this.modified_on = now();	}	$parseDatabaseJson(json) {		json = super.$parseDatabaseJson(json);		return helpers.convertIntFieldsToBool(json, boolFields);	}	$formatDatabaseJson(json) {		json = helpers.convertBoolFieldsToInt(json, boolFields);		return super.$formatDatabaseJson(json);	}	static get name () {		return 'Stream';	}	static get tableName () {		return 'stream';	}	static get jsonAttributes () {		return ['meta'];	}	static get relationMappings () {		return {			owner: {				relation:   Model.HasOneRelation,				modelClass: User,				join:       {					from: 'stream.owner_user_id',					to:   'user.id'				},				modify: function (qb) {					qb.where('user.is_deleted', 0);				}			},			certificate: {				relation:   Model.HasOneRelation,				modelClass: Certificate,				join:       {					from: 'stream.certificate_id',					to:   'certificate.id'				},				modify: function (qb) {					qb.where('certificate.is_deleted', 0);				}			}		};	}}module.exports = Stream;
 |