@api-client/core 0.18.20 → 0.18.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/src/modeling/helpers/Intelisense.d.ts +1 -0
- package/build/src/modeling/helpers/Intelisense.d.ts.map +1 -1
- package/build/src/modeling/helpers/Intelisense.js +1 -0
- package/build/src/modeling/helpers/Intelisense.js.map +1 -1
- package/build/src/modeling/templates/index.d.ts +21 -0
- package/build/src/modeling/templates/index.d.ts.map +1 -0
- package/build/src/modeling/templates/index.js +176 -0
- package/build/src/modeling/templates/index.js.map +1 -0
- package/build/src/modeling/templates/meta/blog-publishing-platform.json +1 -0
- package/build/src/modeling/templates/meta/ecommerce-platform.json +1 -0
- package/build/src/modeling/templates/meta/education-management-platform.json +1 -0
- package/build/src/modeling/templates/meta/financial-services-platform.json +1 -0
- package/build/src/modeling/templates/meta/gaming-platform.json +1 -0
- package/build/src/modeling/templates/meta/healthcare-management-platform.json +1 -0
- package/build/src/modeling/templates/meta/hospitality-platform.json +1 -0
- package/build/src/modeling/templates/meta/index.d.ts +56 -0
- package/build/src/modeling/templates/meta/index.d.ts.map +1 -0
- package/build/src/modeling/templates/meta/index.js +120 -0
- package/build/src/modeling/templates/meta/index.js.map +1 -0
- package/build/src/modeling/templates/meta/iot-smart-home-platform.json +1 -0
- package/build/src/modeling/templates/meta/legal-services-platform.json +1 -0
- package/build/src/modeling/templates/meta/manufacturing-platform.json +1 -0
- package/build/src/modeling/templates/meta/non-profit-platform.json +1 -0
- package/build/src/modeling/templates/meta/real-estate-management-platform.json +1 -0
- package/build/src/modeling/templates/template-registry.d.ts +55 -0
- package/build/src/modeling/templates/template-registry.d.ts.map +1 -0
- package/build/src/modeling/templates/template-registry.js +111 -0
- package/build/src/modeling/templates/template-registry.js.map +1 -0
- package/build/src/modeling/templates/types.d.ts +158 -0
- package/build/src/modeling/templates/types.d.ts.map +1 -1
- package/build/src/modeling/templates/types.js.map +1 -1
- package/build/src/modeling/templates/{ecommerce-domain.d.ts → verticals/business-services/ecommerce-domain.d.ts} +2 -2
- package/build/src/modeling/templates/verticals/business-services/ecommerce-domain.d.ts.map +1 -0
- package/build/src/modeling/templates/{ecommerce-domain.js → verticals/business-services/ecommerce-domain.js} +6 -6
- package/build/src/modeling/templates/verticals/business-services/ecommerce-domain.js.map +1 -0
- package/build/src/modeling/templates/verticals/business-services/financial-services-domain.d.ts +40 -0
- package/build/src/modeling/templates/verticals/business-services/financial-services-domain.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/business-services/financial-services-domain.js +744 -0
- package/build/src/modeling/templates/verticals/business-services/financial-services-domain.js.map +1 -0
- package/build/src/modeling/templates/verticals/business-services/hospitality-domain.d.ts +45 -0
- package/build/src/modeling/templates/verticals/business-services/hospitality-domain.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/business-services/hospitality-domain.js +797 -0
- package/build/src/modeling/templates/verticals/business-services/hospitality-domain.js.map +1 -0
- package/build/src/modeling/templates/verticals/business-services/index.d.ts +21 -0
- package/build/src/modeling/templates/verticals/business-services/index.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/business-services/index.js +50 -0
- package/build/src/modeling/templates/verticals/business-services/index.js.map +1 -0
- package/build/src/modeling/templates/verticals/business-services/legal-services-domain.d.ts +46 -0
- package/build/src/modeling/templates/verticals/business-services/legal-services-domain.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/business-services/legal-services-domain.js +837 -0
- package/build/src/modeling/templates/verticals/business-services/legal-services-domain.js.map +1 -0
- package/build/src/modeling/templates/verticals/education-training/education-domain.d.ts +40 -0
- package/build/src/modeling/templates/verticals/education-training/education-domain.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/education-training/education-domain.js +725 -0
- package/build/src/modeling/templates/verticals/education-training/education-domain.js.map +1 -0
- package/build/src/modeling/templates/verticals/education-training/index.d.ts +18 -0
- package/build/src/modeling/templates/verticals/education-training/index.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/education-training/index.js +21 -0
- package/build/src/modeling/templates/verticals/education-training/index.js.map +1 -0
- package/build/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.d.ts +40 -0
- package/build/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.js +859 -0
- package/build/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.js.map +1 -0
- package/build/src/modeling/templates/verticals/healthcare-life-sciences/index.d.ts +18 -0
- package/build/src/modeling/templates/verticals/healthcare-life-sciences/index.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/healthcare-life-sciences/index.js +21 -0
- package/build/src/modeling/templates/verticals/healthcare-life-sciences/index.js.map +1 -0
- package/build/src/modeling/templates/verticals/index.d.ts +79 -0
- package/build/src/modeling/templates/verticals/index.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/index.js +186 -0
- package/build/src/modeling/templates/verticals/index.js.map +1 -0
- package/build/src/modeling/templates/verticals/manufacturing-logistics/index.d.ts +18 -0
- package/build/src/modeling/templates/verticals/manufacturing-logistics/index.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/manufacturing-logistics/index.js +22 -0
- package/build/src/modeling/templates/verticals/manufacturing-logistics/index.js.map +1 -0
- package/build/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.d.ts +45 -0
- package/build/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.js +710 -0
- package/build/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.js.map +1 -0
- package/build/src/modeling/templates/verticals/public-sector/index.d.ts +18 -0
- package/build/src/modeling/templates/verticals/public-sector/index.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/public-sector/index.js +22 -0
- package/build/src/modeling/templates/verticals/public-sector/index.js.map +1 -0
- package/build/src/modeling/templates/verticals/public-sector/non-profit-domain.d.ts +47 -0
- package/build/src/modeling/templates/verticals/public-sector/non-profit-domain.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/public-sector/non-profit-domain.js +864 -0
- package/build/src/modeling/templates/verticals/public-sector/non-profit-domain.js.map +1 -0
- package/build/src/modeling/templates/verticals/real-estate-construction/index.d.ts +18 -0
- package/build/src/modeling/templates/verticals/real-estate-construction/index.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/real-estate-construction/index.js +21 -0
- package/build/src/modeling/templates/verticals/real-estate-construction/index.js.map +1 -0
- package/build/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.d.ts +40 -0
- package/build/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.js +727 -0
- package/build/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.js.map +1 -0
- package/build/src/modeling/templates/{blog-domain.d.ts → verticals/technology-media/blog-domain.d.ts} +2 -2
- package/build/src/modeling/templates/verticals/technology-media/blog-domain.d.ts.map +1 -0
- package/build/src/modeling/templates/{blog-domain.js → verticals/technology-media/blog-domain.js} +5 -5
- package/build/src/modeling/templates/verticals/technology-media/blog-domain.js.map +1 -0
- package/build/src/modeling/templates/verticals/technology-media/gaming-domain.d.ts +46 -0
- package/build/src/modeling/templates/verticals/technology-media/gaming-domain.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/technology-media/gaming-domain.js +1033 -0
- package/build/src/modeling/templates/verticals/technology-media/gaming-domain.js.map +1 -0
- package/build/src/modeling/templates/verticals/technology-media/index.d.ts +21 -0
- package/build/src/modeling/templates/verticals/technology-media/index.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/technology-media/index.js +42 -0
- package/build/src/modeling/templates/verticals/technology-media/index.js.map +1 -0
- package/build/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.d.ts +47 -0
- package/build/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.d.ts.map +1 -0
- package/build/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.js +1027 -0
- package/build/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/data/models/example-generator-api.json +6 -6
- package/package.json +1 -1
- package/src/modeling/helpers/Intelisense.ts +1 -0
- package/src/modeling/templates/meta/blog-publishing-platform.json +1 -0
- package/src/modeling/templates/meta/ecommerce-platform.json +1 -0
- package/src/modeling/templates/meta/education-management-platform.json +1 -0
- package/src/modeling/templates/meta/financial-services-platform.json +1 -0
- package/src/modeling/templates/meta/gaming-platform.json +1 -0
- package/src/modeling/templates/meta/healthcare-management-platform.json +1 -0
- package/src/modeling/templates/meta/hospitality-platform.json +1 -0
- package/src/modeling/templates/meta/iot-smart-home-platform.json +1 -0
- package/src/modeling/templates/meta/legal-services-platform.json +1 -0
- package/src/modeling/templates/meta/manufacturing-platform.json +1 -0
- package/src/modeling/templates/meta/non-profit-platform.json +1 -0
- package/src/modeling/templates/meta/real-estate-management-platform.json +1 -0
- package/src/modeling/templates/readme.md +260 -0
- package/src/modeling/templates/template-registry.ts +140 -0
- package/src/modeling/templates/types.ts +166 -0
- package/src/modeling/templates/verticals/README.md +122 -0
- package/src/modeling/templates/{ecommerce-domain.ts → verticals/business-services/ecommerce-domain.ts} +7 -7
- package/src/modeling/templates/verticals/business-services/financial-services-domain.ts +943 -0
- package/src/modeling/templates/verticals/business-services/hospitality-domain.ts +994 -0
- package/src/modeling/templates/verticals/business-services/legal-services-domain.ts +1059 -0
- package/src/modeling/templates/verticals/education-training/education-domain.ts +922 -0
- package/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.ts +1111 -0
- package/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.ts +895 -0
- package/src/modeling/templates/verticals/public-sector/non-profit-domain.ts +1109 -0
- package/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.ts +944 -0
- package/src/modeling/templates/{blog-domain.ts → verticals/technology-media/blog-domain.ts} +6 -6
- package/src/modeling/templates/verticals/technology-media/gaming-domain.ts +1290 -0
- package/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.ts +1287 -0
- package/build/src/modeling/templates/blog-domain.d.ts.map +0 -1
- package/build/src/modeling/templates/blog-domain.js.map +0 -1
- package/build/src/modeling/templates/ecommerce-domain.d.ts.map +0 -1
- package/build/src/modeling/templates/ecommerce-domain.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iot-smart-home-domain.js","sourceRoot":"","sources":["../../../../../../src/modeling/templates/verticals/technology-media/iot-smart-home-domain.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * IoT/Smart Home Domain Template\n *\n * A comprehensive IoT/Smart Home data domain following domain-driven design principles.\n * This template covers the complete IoT ecosystem lifecycle including:\n *\n * - Device Management: Devices, sensors, connectivity, firmware\n * - Data Collection: Sensor data, telemetry, analytics\n * - Automation: Rules, triggers, actions, schedules\n * - User Management: Users, permissions, device access\n * - Monitoring: Alerts, notifications, health status\n * - Integration: Third-party services, APIs, protocols\n *\n * Key Features:\n * - Complete device lifecycle management\n * - Real-time data collection and analytics\n * - Smart automation and rules engine\n * - User access and permission management\n * - System monitoring and alerting\n * - Third-party service integration\n * - IoT ecosystem management\n *\n * Use Cases:\n * - Smart home systems\n * - IoT device management\n * - Home automation\n * - Sensor data analytics\n * - Device monitoring and maintenance\n * - User access control\n * - Third-party integrations\n */\n\nimport { DataDomain } from '../../../DataDomain.js'\nimport {\n addIdField,\n addNameField,\n addDescriptionField,\n addEmailField,\n addPhoneField,\n addCustomStatusField,\n addCreatedAtField,\n addUpdatedAtField,\n} from '../../../helpers/Intelisense.js'\nimport type { CreateTemplateOptions } from '../../types.js'\n\nfunction createDomain(): DataDomain {\n return new DataDomain({\n info: {\n name: 'IoT Smart Home Platform',\n displayName: 'IoT Smart Home Platform',\n description:\n 'A comprehensive IoT/Smart Home platform with device management, data collection, ' +\n 'automation, user management, monitoring, and integration',\n },\n })\n}\n\n/**\n * Creates a comprehensive IoT/Smart Home data domain following domain-driven design principles.\n *\n * This function demonstrates the proper hierarchy and organization for an IoT/Smart Home platform:\n * 1. Creates the root DataDomain for the IoT/Smart Home platform\n * 2. Organizes functionality into logical namespaces (Device Management, Data Collection, etc.)\n * 3. Groups related entities into models within each namespace\n * 4. Defines entities with proper semantic annotations for IoT workflows\n * 5. Establishes associations with appropriate cardinality for IoT relationships\n *\n * @returns A fully configured DataDomain with all IoT/Smart Home entities and relationships\n */\nexport default function createIoTSmartHomeDomain(options: CreateTemplateOptions = {}): DataDomain {\n // Ensure the root data domain\n const domain = options.domain ?? createDomain()\n\n //\n // 1. DEVICE MANAGEMENT NAMESPACE\n //\n const deviceManagement = domain.addNamespace({\n info: {\n name: 'DeviceManagement',\n displayName: 'Device Management',\n description: 'Devices, sensors, connectivity, and firmware',\n },\n })\n\n // Device Model\n const deviceModel = deviceManagement.addModel({\n info: {\n name: 'Devices',\n displayName: 'Device Management',\n description: 'IoT devices and sensors',\n },\n })\n\n // Device Entity\n const deviceEntity = deviceModel.addEntity({\n info: {\n name: 'device',\n displayName: 'Device',\n description: 'IoT device with sensors and capabilities',\n },\n })\n\n addIdField(deviceEntity, { displayName: 'Device ID', description: 'Unique identifier for the device' })\n\n addNameField(deviceEntity, { description: 'Device name and model' })\n\n addDescriptionField(deviceEntity, { description: 'Device description and capabilities' })\n\n deviceEntity.addProperty({\n info: { name: 'device_type', displayName: 'Device Type', description: 'Type of IoT device' },\n type: 'string',\n required: true,\n schema: {\n enum: [\n 'sensor',\n 'actuator',\n 'controller',\n 'gateway',\n 'camera',\n 'thermostat',\n 'light',\n 'lock',\n 'appliance',\n 'speaker',\n ],\n },\n })\n\n deviceEntity.addProperty({\n info: { name: 'manufacturer', displayName: 'Manufacturer', description: 'Device manufacturer' },\n type: 'string',\n required: true,\n })\n\n deviceEntity.addProperty({\n info: { name: 'model', displayName: 'Model', description: 'Device model' },\n type: 'string',\n required: true,\n })\n\n deviceEntity.addProperty({\n info: { name: 'serial_number', displayName: 'Serial Number', description: 'Device serial number' },\n type: 'string',\n required: true,\n unique: true,\n })\n\n deviceEntity.addProperty({\n info: { name: 'mac_address', displayName: 'MAC Address', description: 'Device MAC address' },\n type: 'string',\n required: true,\n unique: true,\n })\n\n deviceEntity.addProperty({\n info: { name: 'ip_address', displayName: 'IP Address', description: 'Device IP address' },\n type: 'string',\n required: false,\n })\n\n deviceEntity.addProperty({\n info: { name: 'location', displayName: 'Location', description: 'Device location in home' },\n type: 'string',\n required: false,\n })\n\n deviceEntity.addProperty({\n info: { name: 'firmware_version', displayName: 'Firmware Version', description: 'Current firmware version' },\n type: 'string',\n required: true,\n })\n\n addCustomStatusField(deviceEntity, ['online', 'offline', 'maintenance', 'error', 'updating'], {\n displayName: 'Device Status',\n description: 'Current status of the device',\n })\n\n addCreatedAtField(deviceEntity, { description: 'When the device was created' })\n addUpdatedAtField(deviceEntity, { description: 'When the device was last updated' })\n\n // Sensor Entity\n const sensorEntity = deviceModel.addEntity({\n info: {\n name: 'sensor',\n displayName: 'Sensor',\n description: 'IoT sensor with measurement capabilities',\n },\n })\n\n addIdField(sensorEntity, { displayName: 'Sensor ID', description: 'Unique identifier for the sensor' })\n\n addNameField(sensorEntity, { description: 'Sensor name and type' })\n\n addDescriptionField(sensorEntity, { description: 'Sensor description and capabilities' })\n\n sensorEntity.addProperty({\n info: { name: 'sensor_type', displayName: 'Sensor Type', description: 'Type of sensor' },\n type: 'string',\n required: true,\n schema: {\n enum: [\n 'temperature',\n 'humidity',\n 'pressure',\n 'motion',\n 'light',\n 'sound',\n 'air_quality',\n 'water_level',\n 'smoke',\n 'carbon_monoxide',\n ],\n },\n })\n\n sensorEntity.addProperty({\n info: { name: 'measurement_unit', displayName: 'Measurement Unit', description: 'Unit of measurement' },\n type: 'string',\n required: true,\n })\n\n sensorEntity.addProperty({\n info: { name: 'min_value', displayName: 'Minimum Value', description: 'Minimum measurement value' },\n type: 'number',\n required: false,\n })\n\n sensorEntity.addProperty({\n info: { name: 'max_value', displayName: 'Maximum Value', description: 'Maximum measurement value' },\n type: 'number',\n required: false,\n })\n\n addCustomStatusField(sensorEntity, ['active', 'inactive', 'calibrating', 'error'], {\n displayName: 'Sensor Status',\n description: 'Current status of the sensor',\n })\n\n addCreatedAtField(sensorEntity, { description: 'When the sensor was created' })\n\n // Sensor-Device Association (Many-to-One)\n sensorEntity.addAssociation(\n { key: deviceEntity.key },\n {\n info: { name: 'device', displayName: 'Device', description: 'Device for this sensor' },\n required: true,\n multiple: false,\n }\n )\n\n // Firmware Entity\n const firmwareEntity = deviceModel.addEntity({\n info: {\n name: 'firmware',\n displayName: 'Firmware',\n description: 'Device firmware versions and updates',\n },\n })\n\n addIdField(firmwareEntity, { displayName: 'Firmware ID', description: 'Unique identifier for the firmware' })\n\n addNameField(firmwareEntity, { description: 'Firmware name and version' })\n\n addDescriptionField(firmwareEntity, { description: 'Firmware description and changes' })\n\n firmwareEntity.addProperty({\n info: { name: 'version', displayName: 'Version', description: 'Firmware version number' },\n type: 'string',\n required: true,\n })\n\n firmwareEntity.addProperty({\n info: { name: 'release_date', displayName: 'Release Date', description: 'Firmware release date' },\n type: 'date',\n required: true,\n })\n\n firmwareEntity.addProperty({\n info: { name: 'file_size', displayName: 'File Size', description: 'Firmware file size in bytes' },\n type: 'number',\n required: true,\n schema: {\n minimum: 0,\n },\n })\n\n firmwareEntity.addProperty({\n info: { name: 'compatibility', displayName: 'Compatibility', description: 'Compatible device models' },\n type: 'string',\n required: true,\n })\n\n addCustomStatusField(firmwareEntity, ['available', 'installing', 'installed', 'failed'], {\n displayName: 'Firmware Status',\n description: 'Current status of the firmware',\n })\n\n addCreatedAtField(firmwareEntity, { description: 'When the firmware was created' })\n\n // Firmware-Device Association (Many-to-One)\n firmwareEntity.addAssociation(\n { key: deviceEntity.key },\n {\n info: { name: 'device', displayName: 'Device', description: 'Device for this firmware' },\n required: true,\n multiple: false,\n }\n )\n\n //\n // 2. DATA COLLECTION NAMESPACE\n //\n const dataCollection = domain.addNamespace({\n info: {\n name: 'DataCollection',\n displayName: 'Data Collection',\n description: 'Sensor data, telemetry, and analytics',\n },\n })\n\n // Data Model\n const dataModel = dataCollection.addModel({\n info: {\n name: 'Data',\n displayName: 'Data Collection',\n description: 'Sensor data and telemetry',\n },\n })\n\n // Sensor Data Entity\n const sensorDataEntity = dataModel.addEntity({\n info: {\n name: 'sensor_data',\n displayName: 'Sensor Data',\n description: 'Sensor measurement data',\n },\n })\n\n addIdField(sensorDataEntity, { displayName: 'Data ID', description: 'Unique identifier for the sensor data' })\n\n addNameField(sensorDataEntity, { description: 'Data name and description' })\n\n sensorDataEntity.addProperty({\n info: { name: 'timestamp', displayName: 'Timestamp', description: 'Data timestamp' },\n type: 'datetime',\n required: true,\n })\n\n sensorDataEntity.addProperty({\n info: { name: 'value', displayName: 'Value', description: 'Sensor measurement value' },\n type: 'number',\n required: true,\n })\n\n sensorDataEntity.addProperty({\n info: { name: 'unit', displayName: 'Unit', description: 'Measurement unit' },\n type: 'string',\n required: true,\n })\n\n sensorDataEntity.addProperty({\n info: { name: 'quality', displayName: 'Quality', description: 'Data quality indicator' },\n type: 'string',\n required: true,\n schema: {\n enum: ['excellent', 'good', 'fair', 'poor'],\n },\n })\n\n addCustomStatusField(sensorDataEntity, ['raw', 'processed', 'archived'], {\n displayName: 'Data Status',\n description: 'Current status of the sensor data',\n })\n\n addCreatedAtField(sensorDataEntity, { description: 'When the data was created' })\n\n // SensorData-Sensor Association (Many-to-One)\n sensorDataEntity.addAssociation(\n { key: sensorEntity.key },\n {\n info: { name: 'sensor', displayName: 'Sensor', description: 'Sensor for this data' },\n required: true,\n multiple: false,\n }\n )\n\n // Telemetry Entity\n const telemetryEntity = dataModel.addEntity({\n info: {\n name: 'telemetry',\n displayName: 'Telemetry',\n description: 'Device telemetry and system metrics',\n },\n })\n\n addIdField(telemetryEntity, { displayName: 'Telemetry ID', description: 'Unique identifier for the telemetry' })\n\n addNameField(telemetryEntity, { description: 'Telemetry name and description' })\n\n telemetryEntity.addProperty({\n info: { name: 'timestamp', displayName: 'Timestamp', description: 'Telemetry timestamp' },\n type: 'datetime',\n required: true,\n })\n\n telemetryEntity.addProperty({\n info: { name: 'metric_type', displayName: 'Metric Type', description: 'Type of telemetry metric' },\n type: 'string',\n required: true,\n schema: {\n enum: ['cpu_usage', 'memory_usage', 'network_traffic', 'battery_level', 'signal_strength', 'temperature'],\n },\n })\n\n telemetryEntity.addProperty({\n info: { name: 'value', displayName: 'Value', description: 'Telemetry value' },\n type: 'number',\n required: true,\n })\n\n telemetryEntity.addProperty({\n info: { name: 'unit', displayName: 'Unit', description: 'Measurement unit' },\n type: 'string',\n required: true,\n })\n\n addCustomStatusField(telemetryEntity, ['normal', 'warning', 'critical'], {\n displayName: 'Telemetry Status',\n description: 'Current status of the telemetry',\n })\n\n addCreatedAtField(telemetryEntity, { description: 'When the telemetry was created' })\n\n // Telemetry-Device Association (Many-to-One)\n telemetryEntity.addAssociation(\n { key: deviceEntity.key },\n {\n info: { name: 'device', displayName: 'Device', description: 'Device for this telemetry' },\n required: true,\n multiple: false,\n }\n )\n\n // Analytics Entity\n const analyticsEntity = dataModel.addEntity({\n info: {\n name: 'analytics',\n displayName: 'Analytics',\n description: 'Data analytics and insights',\n },\n })\n\n addIdField(analyticsEntity, { displayName: 'Analytics ID', description: 'Unique identifier for the analytics' })\n\n addNameField(analyticsEntity, { description: 'Analytics name and description' })\n\n addDescriptionField(analyticsEntity, { description: 'Analytics description and insights' })\n\n analyticsEntity.addProperty({\n info: { name: 'analytics_type', displayName: 'Analytics Type', description: 'Type of analytics' },\n type: 'string',\n required: true,\n schema: {\n enum: ['trend_analysis', 'pattern_recognition', 'anomaly_detection', 'predictive_modeling', 'usage_statistics'],\n },\n })\n\n analyticsEntity.addProperty({\n info: { name: 'time_period', displayName: 'Time Period', description: 'Analytics time period' },\n type: 'string',\n required: true,\n schema: {\n enum: ['hourly', 'daily', 'weekly', 'monthly', 'yearly'],\n },\n })\n\n analyticsEntity.addProperty({\n info: { name: 'start_date', displayName: 'Start Date', description: 'Analytics start date' },\n type: 'date',\n required: true,\n })\n\n analyticsEntity.addProperty({\n info: { name: 'end_date', displayName: 'End Date', description: 'Analytics end date' },\n type: 'date',\n required: true,\n })\n\n addCustomStatusField(analyticsEntity, ['processing', 'completed', 'failed'], {\n displayName: 'Analytics Status',\n description: 'Current status of the analytics',\n })\n\n addCreatedAtField(analyticsEntity, { description: 'When the analytics was created' })\n\n //\n // 3. AUTOMATION NAMESPACE\n //\n const automation = domain.addNamespace({\n info: {\n name: 'Automation',\n displayName: 'Automation',\n description: 'Rules, triggers, actions, and schedules',\n },\n })\n\n // Automation Model\n const automationModel = automation.addModel({\n info: {\n name: 'Automation',\n displayName: 'Automation Management',\n description: 'Automation rules and schedules',\n },\n })\n\n // Rule Entity\n const ruleEntity = automationModel.addEntity({\n info: {\n name: 'rule',\n displayName: 'Rule',\n description: 'Automation rule with conditions and actions',\n },\n })\n\n addIdField(ruleEntity, { displayName: 'Rule ID', description: 'Unique identifier for the rule' })\n\n addNameField(ruleEntity, { description: 'Rule name and description' })\n\n addDescriptionField(ruleEntity, { description: 'Rule description and logic' })\n\n ruleEntity.addProperty({\n info: { name: 'rule_type', displayName: 'Rule Type', description: 'Type of automation rule' },\n type: 'string',\n required: true,\n schema: {\n enum: ['if_then', 'schedule', 'location_based', 'time_based', 'condition_based'],\n },\n })\n\n ruleEntity.addProperty({\n info: { name: 'condition', displayName: 'Condition', description: 'Rule condition logic' },\n type: 'string',\n required: true,\n })\n\n ruleEntity.addProperty({\n info: { name: 'action', displayName: 'Action', description: 'Rule action to execute' },\n type: 'string',\n required: true,\n })\n\n ruleEntity.addProperty({\n info: { name: 'priority', displayName: 'Priority', description: 'Rule priority level' },\n type: 'string',\n required: true,\n schema: {\n enum: ['low', 'medium', 'high', 'critical'],\n },\n })\n\n addCustomStatusField(ruleEntity, ['active', 'inactive', 'testing', 'error'], {\n displayName: 'Rule Status',\n description: 'Current status of the rule',\n })\n\n addCreatedAtField(ruleEntity, { description: 'When the rule was created' })\n\n // Trigger Entity\n const triggerEntity = automationModel.addEntity({\n info: {\n name: 'trigger',\n displayName: 'Trigger',\n description: 'Automation trigger event',\n },\n })\n\n addIdField(triggerEntity, { displayName: 'Trigger ID', description: 'Unique identifier for the trigger' })\n\n addNameField(triggerEntity, { description: 'Trigger name and description' })\n\n addDescriptionField(triggerEntity, { description: 'Trigger description and conditions' })\n\n triggerEntity.addProperty({\n info: { name: 'trigger_type', displayName: 'Trigger Type', description: 'Type of trigger' },\n type: 'string',\n required: true,\n schema: {\n enum: ['sensor_threshold', 'time_schedule', 'location_change', 'device_state', 'user_action'],\n },\n })\n\n triggerEntity.addProperty({\n info: { name: 'condition', displayName: 'Condition', description: 'Trigger condition' },\n type: 'string',\n required: true,\n })\n\n triggerEntity.addProperty({\n info: { name: 'frequency', displayName: 'Frequency', description: 'Trigger frequency' },\n type: 'string',\n required: false,\n schema: {\n enum: ['once', 'recurring', 'continuous'],\n },\n })\n\n addCustomStatusField(triggerEntity, ['active', 'inactive', 'paused'], {\n displayName: 'Trigger Status',\n description: 'Current status of the trigger',\n })\n\n addCreatedAtField(triggerEntity, { description: 'When the trigger was created' })\n\n // Trigger-Rule Association (Many-to-One)\n triggerEntity.addAssociation(\n { key: ruleEntity.key },\n {\n info: { name: 'rule', displayName: 'Rule', description: 'Rule for this trigger' },\n required: true,\n multiple: false,\n }\n )\n\n // Action Entity\n const actionEntity = automationModel.addEntity({\n info: {\n name: 'action',\n displayName: 'Action',\n description: 'Automation action to execute',\n },\n })\n\n addIdField(actionEntity, { displayName: 'Action ID', description: 'Unique identifier for the action' })\n\n addNameField(actionEntity, { description: 'Action name and description' })\n\n addDescriptionField(actionEntity, { description: 'Action description and parameters' })\n\n actionEntity.addProperty({\n info: { name: 'action_type', displayName: 'Action Type', description: 'Type of action' },\n type: 'string',\n required: true,\n schema: {\n enum: ['device_control', 'notification', 'data_logging', 'api_call', 'script_execution'],\n },\n })\n\n actionEntity.addProperty({\n info: { name: 'parameters', displayName: 'Parameters', description: 'Action parameters' },\n type: 'string',\n required: false,\n })\n\n actionEntity.addProperty({\n info: { name: 'delay', displayName: 'Delay', description: 'Action delay in seconds' },\n type: 'number',\n required: false,\n schema: {\n minimum: 0,\n },\n })\n\n addCustomStatusField(actionEntity, ['pending', 'executing', 'completed', 'failed'], {\n displayName: 'Action Status',\n description: 'Current status of the action',\n })\n\n addCreatedAtField(actionEntity, { description: 'When the action was created' })\n\n // Action-Rule Association (Many-to-One)\n actionEntity.addAssociation(\n { key: ruleEntity.key },\n {\n info: { name: 'rule', displayName: 'Rule', description: 'Rule for this action' },\n required: true,\n multiple: false,\n }\n )\n\n // Schedule Entity\n const scheduleEntity = automationModel.addEntity({\n info: {\n name: 'schedule',\n displayName: 'Schedule',\n description: 'Automation schedule',\n },\n })\n\n addIdField(scheduleEntity, { displayName: 'Schedule ID', description: 'Unique identifier for the schedule' })\n\n addNameField(scheduleEntity, { description: 'Schedule name and description' })\n\n addDescriptionField(scheduleEntity, { description: 'Schedule description and timing' })\n\n scheduleEntity.addProperty({\n info: { name: 'schedule_type', displayName: 'Schedule Type', description: 'Type of schedule' },\n type: 'string',\n required: true,\n schema: {\n enum: ['daily', 'weekly', 'monthly', 'custom', 'sunrise_sunset'],\n },\n })\n\n scheduleEntity.addProperty({\n info: { name: 'start_time', displayName: 'Start Time', description: 'Schedule start time' },\n type: 'time',\n required: true,\n })\n\n scheduleEntity.addProperty({\n info: { name: 'end_time', displayName: 'End Time', description: 'Schedule end time' },\n type: 'time',\n required: false,\n })\n\n scheduleEntity.addProperty({\n info: { name: 'days_of_week', displayName: 'Days of Week', description: 'Days of week for schedule' },\n type: 'string',\n required: false,\n })\n\n addCustomStatusField(scheduleEntity, ['active', 'inactive', 'paused'], {\n displayName: 'Schedule Status',\n description: 'Current status of the schedule',\n })\n\n addCreatedAtField(scheduleEntity, { description: 'When the schedule was created' })\n\n // Schedule-Rule Association (Many-to-One)\n scheduleEntity.addAssociation(\n { key: ruleEntity.key },\n {\n info: { name: 'rule', displayName: 'Rule', description: 'Rule for this schedule' },\n required: true,\n multiple: false,\n }\n )\n\n //\n // 4. USER MANAGEMENT NAMESPACE\n //\n const userManagement = domain.addNamespace({\n info: {\n name: 'UserManagement',\n displayName: 'User Management',\n description: 'Users, permissions, and device access',\n },\n })\n\n // User Model\n const userModel = userManagement.addModel({\n info: {\n name: 'Users',\n displayName: 'User Management',\n description: 'User accounts and permissions',\n },\n })\n\n // User Entity\n const userEntity = userModel.addEntity({\n info: {\n name: 'user',\n displayName: 'User',\n description: 'System user with access permissions',\n },\n })\n\n addIdField(userEntity, { displayName: 'User ID', description: 'Unique identifier for the user' })\n\n addNameField(userEntity, { description: 'User name and title' })\n\n addDescriptionField(userEntity, { description: 'User description and notes' })\n\n addEmailField(userEntity, { description: 'User email address' })\n\n addPhoneField(userEntity, { description: 'User phone number' })\n\n userEntity.addProperty({\n info: { name: 'user_type', displayName: 'User Type', description: 'Type of user' },\n type: 'string',\n required: true,\n schema: {\n enum: ['owner', 'admin', 'family_member', 'guest', 'service_account'],\n },\n })\n\n userEntity.addProperty({\n info: { name: 'username', displayName: 'Username', description: 'User login username' },\n type: 'string',\n required: true,\n unique: true,\n })\n\n userEntity.addProperty({\n info: { name: 'last_login', displayName: 'Last Login', description: 'User last login date' },\n type: 'datetime',\n required: false,\n })\n\n addCustomStatusField(userEntity, ['active', 'inactive', 'suspended', 'pending'], {\n displayName: 'User Status',\n description: 'Current status of the user',\n })\n\n addCreatedAtField(userEntity, { description: 'When the user was created' })\n addUpdatedAtField(userEntity, { description: 'When the user was last updated' })\n\n // Permission Entity\n const permissionEntity = userModel.addEntity({\n info: {\n name: 'permission',\n displayName: 'Permission',\n description: 'User permissions and access rights',\n },\n })\n\n addIdField(permissionEntity, {\n displayName: 'Permission ID',\n description: 'Unique identifier for the permission',\n })\n\n addNameField(permissionEntity, { description: 'Permission name and description' })\n\n addDescriptionField(permissionEntity, { description: 'Permission description and scope' })\n\n permissionEntity.addProperty({\n info: { name: 'permission_type', displayName: 'Permission Type', description: 'Type of permission' },\n type: 'string',\n required: true,\n schema: {\n enum: ['read', 'write', 'admin', 'control', 'view', 'configure'],\n },\n })\n\n permissionEntity.addProperty({\n info: { name: 'resource', displayName: 'Resource', description: 'Resource for permission' },\n type: 'string',\n required: true,\n })\n\n permissionEntity.addProperty({\n info: { name: 'scope', displayName: 'Scope', description: 'Permission scope' },\n type: 'string',\n required: true,\n schema: {\n enum: ['all', 'specific', 'room', 'device', 'system'],\n },\n })\n\n addCustomStatusField(permissionEntity, ['active', 'inactive', 'temporary'], {\n displayName: 'Permission Status',\n description: 'Current status of the permission',\n })\n\n addCreatedAtField(permissionEntity, { description: 'When the permission was created' })\n\n // Permission-User Association (Many-to-One)\n permissionEntity.addAssociation(\n { key: userEntity.key },\n {\n info: { name: 'user', displayName: 'User', description: 'User for this permission' },\n required: true,\n multiple: false,\n }\n )\n\n // Device Access Entity\n const deviceAccessEntity = userModel.addEntity({\n info: {\n name: 'device_access',\n displayName: 'Device Access',\n description: 'User access to specific devices',\n },\n })\n\n addIdField(deviceAccessEntity, {\n displayName: 'Access ID',\n description: 'Unique identifier for the device access',\n })\n\n addNameField(deviceAccessEntity, { description: 'Access name and description' })\n\n deviceAccessEntity.addProperty({\n info: { name: 'access_type', displayName: 'Access Type', description: 'Type of device access' },\n type: 'string',\n required: true,\n schema: {\n enum: ['full_control', 'read_only', 'limited_control', 'monitor_only'],\n },\n })\n\n deviceAccessEntity.addProperty({\n info: { name: 'granted_date', displayName: 'Granted Date', description: 'Access granted date' },\n type: 'date',\n required: true,\n })\n\n deviceAccessEntity.addProperty({\n info: { name: 'expiry_date', displayName: 'Expiry Date', description: 'Access expiry date' },\n type: 'date',\n required: false,\n })\n\n addCustomStatusField(deviceAccessEntity, ['active', 'expired', 'revoked'], {\n displayName: 'Access Status',\n description: 'Current status of the device access',\n })\n\n addCreatedAtField(deviceAccessEntity, { description: 'When the access was created' })\n\n // DeviceAccess-User Association (Many-to-One)\n deviceAccessEntity.addAssociation(\n { key: userEntity.key },\n {\n info: { name: 'user', displayName: 'User', description: 'User for this device access' },\n required: true,\n multiple: false,\n }\n )\n\n // DeviceAccess-Device Association (Many-to-One)\n deviceAccessEntity.addAssociation(\n { key: deviceEntity.key },\n {\n info: { name: 'device', displayName: 'Device', description: 'Device for this access' },\n required: true,\n multiple: false,\n }\n )\n\n //\n // 5. MONITORING NAMESPACE\n //\n const monitoring = domain.addNamespace({\n info: {\n name: 'Monitoring',\n displayName: 'Monitoring',\n description: 'Alerts, notifications, and health status',\n },\n })\n\n // Monitoring Model\n const monitoringModel = monitoring.addModel({\n info: {\n name: 'Monitoring',\n displayName: 'Monitoring Management',\n description: 'System monitoring and alerting',\n },\n })\n\n // Alert Entity\n const alertEntity = monitoringModel.addEntity({\n info: {\n name: 'alert',\n displayName: 'Alert',\n description: 'System alert or notification',\n },\n })\n\n addIdField(alertEntity, { displayName: 'Alert ID', description: 'Unique identifier for the alert' })\n\n addNameField(alertEntity, { description: 'Alert name and title' })\n\n addDescriptionField(alertEntity, { description: 'Alert description and details' })\n\n alertEntity.addProperty({\n info: { name: 'alert_type', displayName: 'Alert Type', description: 'Type of alert' },\n type: 'string',\n required: true,\n schema: {\n enum: ['error', 'warning', 'info', 'critical', 'maintenance'],\n },\n })\n\n alertEntity.addProperty({\n info: { name: 'severity', displayName: 'Severity', description: 'Alert severity level' },\n type: 'string',\n required: true,\n schema: {\n enum: ['low', 'medium', 'high', 'critical'],\n },\n })\n\n alertEntity.addProperty({\n info: { name: 'triggered_at', displayName: 'Triggered At', description: 'Alert trigger time' },\n type: 'datetime',\n required: true,\n })\n\n alertEntity.addProperty({\n info: { name: 'resolved_at', displayName: 'Resolved At', description: 'Alert resolution time' },\n type: 'datetime',\n required: false,\n })\n\n addCustomStatusField(alertEntity, ['active', 'acknowledged', 'resolved', 'dismissed'], {\n displayName: 'Alert Status',\n description: 'Current status of the alert',\n })\n\n addCreatedAtField(alertEntity, { description: 'When the alert was created' })\n\n // Alert-Device Association (Many-to-One)\n alertEntity.addAssociation(\n { key: deviceEntity.key },\n {\n info: { name: 'device', displayName: 'Device', description: 'Device for this alert' },\n required: false,\n multiple: false,\n }\n )\n\n // Notification Entity\n const notificationEntity = monitoringModel.addEntity({\n info: {\n name: 'notification',\n displayName: 'Notification',\n description: 'User notification message',\n },\n })\n\n addIdField(notificationEntity, {\n displayName: 'Notification ID',\n description: 'Unique identifier for the notification',\n })\n\n addNameField(notificationEntity, { description: 'Notification name and title' })\n\n addDescriptionField(notificationEntity, { description: 'Notification message content' })\n\n notificationEntity.addProperty({\n info: { name: 'notification_type', displayName: 'Notification Type', description: 'Type of notification' },\n type: 'string',\n required: true,\n schema: {\n enum: ['email', 'sms', 'push', 'in_app', 'webhook'],\n },\n })\n\n notificationEntity.addProperty({\n info: { name: 'recipient', displayName: 'Recipient', description: 'Notification recipient' },\n type: 'string',\n required: true,\n })\n\n notificationEntity.addProperty({\n info: { name: 'sent_at', displayName: 'Sent At', description: 'Notification sent time' },\n type: 'datetime',\n required: true,\n })\n\n notificationEntity.addProperty({\n info: { name: 'read_at', displayName: 'Read At', description: 'Notification read time' },\n type: 'datetime',\n required: false,\n })\n\n addCustomStatusField(notificationEntity, ['pending', 'sent', 'delivered', 'read', 'failed'], {\n displayName: 'Notification Status',\n description: 'Current status of the notification',\n })\n\n addCreatedAtField(notificationEntity, { description: 'When the notification was created' })\n\n // Notification-User Association (Many-to-One)\n notificationEntity.addAssociation(\n { key: userEntity.key },\n {\n info: { name: 'user', displayName: 'User', description: 'User for this notification' },\n required: true,\n multiple: false,\n }\n )\n\n // Health Status Entity\n const healthStatusEntity = monitoringModel.addEntity({\n info: {\n name: 'health_status',\n displayName: 'Health Status',\n description: 'System and device health status',\n },\n })\n\n addIdField(healthStatusEntity, {\n displayName: 'Health ID',\n description: 'Unique identifier for the health status',\n })\n\n addNameField(healthStatusEntity, { description: 'Health status name and description' })\n\n healthStatusEntity.addProperty({\n info: { name: 'health_type', displayName: 'Health Type', description: 'Type of health status' },\n type: 'string',\n required: true,\n schema: {\n enum: ['system', 'device', 'network', 'battery', 'connectivity'],\n },\n })\n\n healthStatusEntity.addProperty({\n info: { name: 'check_time', displayName: 'Check Time', description: 'Health check time' },\n type: 'datetime',\n required: true,\n })\n\n healthStatusEntity.addProperty({\n info: { name: 'score', displayName: 'Score', description: 'Health score (0-100)' },\n type: 'number',\n required: true,\n schema: {\n minimum: 0,\n maximum: 100,\n },\n })\n\n addCustomStatusField(healthStatusEntity, ['excellent', 'good', 'fair', 'poor', 'critical'], {\n displayName: 'Health Status',\n description: 'Current health status',\n })\n\n addCreatedAtField(healthStatusEntity, { description: 'When the health status was created' })\n\n // HealthStatus-Device Association (Many-to-One)\n healthStatusEntity.addAssociation(\n { key: deviceEntity.key },\n {\n info: { name: 'device', displayName: 'Device', description: 'Device for this health status' },\n required: false,\n multiple: false,\n }\n )\n\n //\n // 6. INTEGRATION NAMESPACE\n //\n const integration = domain.addNamespace({\n info: {\n name: 'Integration',\n displayName: 'Integration',\n description: 'Third-party services, APIs, and protocols',\n },\n })\n\n // Integration Model\n const integrationModel = integration.addModel({\n info: {\n name: 'Integrations',\n displayName: 'Integration Management',\n description: 'Third-party integrations and APIs',\n },\n })\n\n // Integration Entity\n const integrationEntity = integrationModel.addEntity({\n info: {\n name: 'integration',\n displayName: 'Integration',\n description: 'Third-party service integration',\n },\n })\n\n addIdField(integrationEntity, {\n displayName: 'Integration ID',\n description: 'Unique identifier for the integration',\n })\n\n addNameField(integrationEntity, { description: 'Integration name and description' })\n\n addDescriptionField(integrationEntity, { description: 'Integration description and capabilities' })\n\n integrationEntity.addProperty({\n info: { name: 'integration_type', displayName: 'Integration Type', description: 'Type of integration' },\n type: 'string',\n required: true,\n schema: {\n enum: ['api', 'webhook', 'protocol', 'service', 'platform'],\n },\n })\n\n integrationEntity.addProperty({\n info: { name: 'provider', displayName: 'Provider', description: 'Integration provider' },\n type: 'string',\n required: true,\n })\n\n integrationEntity.addProperty({\n info: { name: 'endpoint_url', displayName: 'Endpoint URL', description: 'Integration endpoint URL' },\n type: 'string',\n required: false,\n })\n\n integrationEntity.addProperty({\n info: { name: 'api_key', displayName: 'API Key', description: 'Integration API key' },\n type: 'string',\n required: false,\n })\n\n integrationEntity.addProperty({\n info: { name: 'protocol', displayName: 'Protocol', description: 'Integration protocol' },\n type: 'string',\n required: false,\n schema: {\n enum: ['http', 'https', 'mqtt', 'coap', 'websocket', 'tcp'],\n },\n })\n\n addCustomStatusField(integrationEntity, ['active', 'inactive', 'testing', 'error'], {\n displayName: 'Integration Status',\n description: 'Current status of the integration',\n })\n\n addCreatedAtField(integrationEntity, { description: 'When the integration was created' })\n\n // API Call Entity\n const apiCallEntity = integrationModel.addEntity({\n info: {\n name: 'api_call',\n displayName: 'API Call',\n description: 'API call to third-party service',\n },\n })\n\n addIdField(apiCallEntity, { displayName: 'Call ID', description: 'Unique identifier for the API call' })\n\n addNameField(apiCallEntity, { description: 'API call name and description' })\n\n apiCallEntity.addProperty({\n info: { name: 'endpoint', displayName: 'Endpoint', description: 'API endpoint' },\n type: 'string',\n required: true,\n })\n\n apiCallEntity.addProperty({\n info: { name: 'method', displayName: 'Method', description: 'HTTP method' },\n type: 'string',\n required: true,\n schema: {\n enum: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'],\n },\n })\n\n apiCallEntity.addProperty({\n info: { name: 'request_data', displayName: 'Request Data', description: 'API request data' },\n type: 'string',\n required: false,\n })\n\n apiCallEntity.addProperty({\n info: { name: 'response_data', displayName: 'Response Data', description: 'API response data' },\n type: 'string',\n required: false,\n })\n\n apiCallEntity.addProperty({\n info: { name: 'response_code', displayName: 'Response Code', description: 'HTTP response code' },\n type: 'number',\n required: false,\n })\n\n apiCallEntity.addProperty({\n info: { name: 'duration', displayName: 'Duration', description: 'API call duration in milliseconds' },\n type: 'number',\n required: false,\n schema: {\n minimum: 0,\n },\n })\n\n addCustomStatusField(apiCallEntity, ['pending', 'in_progress', 'completed', 'failed', 'timeout'], {\n displayName: 'Call Status',\n description: 'Current status of the API call',\n })\n\n addCreatedAtField(apiCallEntity, { description: 'When the API call was created' })\n\n // ApiCall-Integration Association (Many-to-One)\n apiCallEntity.addAssociation(\n { key: integrationEntity.key },\n {\n info: { name: 'integration', displayName: 'Integration', description: 'Integration for this API call' },\n required: true,\n multiple: false,\n }\n )\n\n return domain\n}\n"]}
|