UNPKG

@xompass/sdk-cloud-api

Version:

Xompass Client for cloud-api

182 lines (176 loc) 4.46 kB
import {ModelDefinition} from './BaseModels'; import {Log} from './Log'; import {AssetTemplate} from './AssetTemplate'; import {AssetStateTemplate} from './AssetStateTemplate'; import {SensorAssetStateTemplate} from './SensorAssetStateTemplate'; declare var Object: any; export interface SensorTemplateInterface { type: string; name?: string; description?: string; relativeId?: string; enabled?: boolean; unit?: string; parameters?: any; triggers?: any; extendedProperties?: any; created?: Date; modified?: Date; deleted?: Date; id?: any; assetTemplateId?: any; trackingLogs?: Log[]; assetTemplate?: AssetTemplate; assetStateTemplates?: AssetStateTemplate[]; stateTemplates?: SensorAssetStateTemplate[]; } export class SensorTemplate implements SensorTemplateInterface { type: string; name: string; description: string; relativeId: string; enabled: boolean = true; unit: string; parameters: any; triggers: any; extendedProperties: any; created: Date; modified: Date; deleted: Date; id: any; assetTemplateId: any; trackingLogs?: Log[]; assetTemplate?: AssetTemplate; assetStateTemplates?: AssetStateTemplate[]; stateTemplates?: SensorAssetStateTemplate[]; constructor(data?: SensorTemplateInterface) { Object.assign(this, data); } /** * The name of the model represented by this $resource, * i.e. `SensorTemplate`. */ public static getModelName(): string { return 'SensorTemplate'; } /** * @method factory * @author Jonathan Casarrubias * @license MIT * This method creates an instance of SensorTemplate for dynamic purposes. */ public static factory(data: SensorTemplateInterface): SensorTemplate{ return new SensorTemplate(data); } /** * @method getModelDefinition * @author Julien Ledun * @license MIT * This method returns an object that represents some of the model * definitions. */ public static getModelDefinition(): ModelDefinition { return { name: 'SensorTemplate', plural: 'SensorTemplates', path: 'SensorTemplates', idName: 'id', properties: { type: { name: 'type', type: 'string' }, name: { name: 'name', type: 'string' }, description: { name: 'description', type: 'string' }, relativeId: { name: 'relativeId', type: 'string' }, enabled: { name: 'enabled', type: 'boolean', default: true }, unit: { name: 'unit', type: 'string' }, parameters: { name: 'parameters', type: 'any' }, triggers: { name: 'triggers', type: 'any' }, extendedProperties: { name: 'extendedProperties', type: 'any' }, created: { name: 'created', type: 'Date' }, modified: { name: 'modified', type: 'Date' }, deleted: { name: 'deleted', type: 'Date', default: undefined }, id: { name: 'id', type: 'any' }, assetTemplateId: { name: 'assetTemplateId', type: 'any' }, }, relations: { trackingLogs: { name: 'trackingLogs', type: 'Log[]', model: 'Log', relationType: 'hasMany', keyFrom: 'id', keyTo: 'trackingModelId' }, assetTemplate: { name: 'assetTemplate', type: 'AssetTemplate', model: 'AssetTemplate', relationType: 'belongsTo', keyFrom: 'assetTemplateId', keyTo: 'id' }, assetStateTemplates: { name: 'assetStateTemplates', type: 'AssetStateTemplate[]', model: 'AssetStateTemplate', relationType: 'hasMany', modelThrough: 'SensorAssetStateTemplate', keyThrough: 'assetStateTemplateId', keyFrom: 'id', keyTo: 'sensorTemplateId' }, stateTemplates: { name: 'stateTemplates', type: 'SensorAssetStateTemplate[]', model: 'SensorAssetStateTemplate', relationType: 'hasMany', keyFrom: 'id', keyTo: 'sensorTemplateId' }, } }; } }