UNPKG

@xompass/sdk-cloud-api

Version:

Xompass Client for cloud-api

184 lines (178 loc) 4.11 kB
import {ModelDefinition} from './BaseModels'; import {Log} from './Log'; import {Project} from './Project'; import {Manager} from './Manager'; import {Asset} from './Asset'; declare var Object: any; export interface ReportInterface { type: string; name: string; description?: string; emails?: Array<any>; scheduler?: any; parameters?: any; nextReportTime?: Date; lastSendError?: string; created?: Date; modified?: Date; deleted?: Date; id?: any; projectId?: any; assetIds?: Array<any>; trackingLogs?: Log[]; project?: Project; managers?: Manager[]; assets?: Asset[]; } export class Report implements ReportInterface { type: string = 'ROUND_OF_GUARD'; name: string; description: string; emails: Array<any> = []; scheduler: any; parameters: any; nextReportTime: Date; lastSendError: string; created: Date; modified: Date; deleted: Date; id: any; projectId: any; assetIds: Array<any> = []; trackingLogs?: Log[]; project?: Project; managers?: Manager[]; assets?: Asset[]; constructor(data?: ReportInterface) { Object.assign(this, data); } /** * The name of the model represented by this $resource, * i.e. `Report`. */ public static getModelName(): string { return 'Report'; } /** * @method factory * @author Jonathan Casarrubias * @license MIT * This method creates an instance of Report for dynamic purposes. */ public static factory(data: ReportInterface): Report{ return new Report(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: 'Report', plural: 'Reports', path: 'Reports', idName: 'id', properties: { type: { name: 'type', type: 'string', default: 'ROUND_OF_GUARD' }, name: { name: 'name', type: 'string' }, description: { name: 'description', type: 'string' }, emails: { name: 'emails', type: 'Array&lt;any&gt;', default: [] }, scheduler: { name: 'scheduler', type: 'any' }, parameters: { name: 'parameters', type: 'any' }, nextReportTime: { name: 'nextReportTime', type: 'Date' }, lastSendError: { name: 'lastSendError', type: 'string' }, created: { name: 'created', type: 'Date' }, modified: { name: 'modified', type: 'Date' }, deleted: { name: 'deleted', type: 'Date', default: undefined }, id: { name: 'id', type: 'any' }, projectId: { name: 'projectId', type: 'any' }, assetIds: { name: 'assetIds', type: 'Array&lt;any&gt;', default: [] }, }, relations: { trackingLogs: { name: 'trackingLogs', type: 'Log[]', model: 'Log', relationType: 'hasMany', keyFrom: 'id', keyTo: 'trackingModelId' }, project: { name: 'project', type: 'Project', model: 'Project', relationType: 'belongsTo', keyFrom: 'projectId', keyTo: 'id' }, managers: { name: 'managers', type: 'Manager[]', model: 'Manager', relationType: 'hasMany', modelThrough: 'ManagerReport', keyThrough: 'managerId', keyFrom: 'id', keyTo: 'reportId' }, assets: { name: 'assets', type: 'Asset[]', model: 'Asset', relationType: 'referencesMany', keyFrom: 'assetIds', keyTo: 'id' }, } }; } }