@api-client/core 0.18.55 → 0.18.57

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.
Files changed (148) hide show
  1. package/build/src/modeling/Semantics.js +1 -1
  2. package/build/src/modeling/Semantics.js.map +1 -1
  3. package/build/src/modeling/helpers/Intelisense.d.ts +1 -0
  4. package/build/src/modeling/helpers/Intelisense.d.ts.map +1 -1
  5. package/build/src/modeling/helpers/Intelisense.js +23 -0
  6. package/build/src/modeling/helpers/Intelisense.js.map +1 -1
  7. package/build/tsconfig.tsbuildinfo +1 -1
  8. package/data/models/example-generator-api.json +15 -15
  9. package/package.json +2 -7
  10. package/src/modeling/Semantics.ts +1 -1
  11. package/src/modeling/helpers/Intelisense.ts +23 -0
  12. package/tests/unit/modeling/helpers/intellisense.spec.ts +46 -0
  13. package/build/src/modeling/templates/index.d.ts +0 -21
  14. package/build/src/modeling/templates/index.d.ts.map +0 -1
  15. package/build/src/modeling/templates/index.js +0 -176
  16. package/build/src/modeling/templates/index.js.map +0 -1
  17. package/build/src/modeling/templates/meta/blog-publishing-platform.json +0 -1
  18. package/build/src/modeling/templates/meta/ecommerce-platform.json +0 -1
  19. package/build/src/modeling/templates/meta/education-management-platform.json +0 -1
  20. package/build/src/modeling/templates/meta/financial-services-platform.json +0 -1
  21. package/build/src/modeling/templates/meta/gaming-platform.json +0 -1
  22. package/build/src/modeling/templates/meta/healthcare-management-platform.json +0 -1
  23. package/build/src/modeling/templates/meta/hospitality-platform.json +0 -1
  24. package/build/src/modeling/templates/meta/index.d.ts +0 -64
  25. package/build/src/modeling/templates/meta/index.d.ts.map +0 -1
  26. package/build/src/modeling/templates/meta/index.js +0 -150
  27. package/build/src/modeling/templates/meta/index.js.map +0 -1
  28. package/build/src/modeling/templates/meta/iot-smart-home-platform.json +0 -1
  29. package/build/src/modeling/templates/meta/legal-services-platform.json +0 -1
  30. package/build/src/modeling/templates/meta/manufacturing-platform.json +0 -1
  31. package/build/src/modeling/templates/meta/non-profit-platform.json +0 -1
  32. package/build/src/modeling/templates/meta/real-estate-management-platform.json +0 -1
  33. package/build/src/modeling/templates/template-registry.d.ts +0 -55
  34. package/build/src/modeling/templates/template-registry.d.ts.map +0 -1
  35. package/build/src/modeling/templates/template-registry.js +0 -111
  36. package/build/src/modeling/templates/template-registry.js.map +0 -1
  37. package/build/src/modeling/templates/types.d.ts +0 -167
  38. package/build/src/modeling/templates/types.d.ts.map +0 -1
  39. package/build/src/modeling/templates/types.js +0 -2
  40. package/build/src/modeling/templates/types.js.map +0 -1
  41. package/build/src/modeling/templates/verticals/business-services/ecommerce-domain.d.ts +0 -39
  42. package/build/src/modeling/templates/verticals/business-services/ecommerce-domain.d.ts.map +0 -1
  43. package/build/src/modeling/templates/verticals/business-services/ecommerce-domain.js +0 -672
  44. package/build/src/modeling/templates/verticals/business-services/ecommerce-domain.js.map +0 -1
  45. package/build/src/modeling/templates/verticals/business-services/financial-services-domain.d.ts +0 -40
  46. package/build/src/modeling/templates/verticals/business-services/financial-services-domain.d.ts.map +0 -1
  47. package/build/src/modeling/templates/verticals/business-services/financial-services-domain.js +0 -942
  48. package/build/src/modeling/templates/verticals/business-services/financial-services-domain.js.map +0 -1
  49. package/build/src/modeling/templates/verticals/business-services/hospitality-domain.d.ts +0 -45
  50. package/build/src/modeling/templates/verticals/business-services/hospitality-domain.d.ts.map +0 -1
  51. package/build/src/modeling/templates/verticals/business-services/hospitality-domain.js +0 -797
  52. package/build/src/modeling/templates/verticals/business-services/hospitality-domain.js.map +0 -1
  53. package/build/src/modeling/templates/verticals/business-services/index.d.ts +0 -21
  54. package/build/src/modeling/templates/verticals/business-services/index.d.ts.map +0 -1
  55. package/build/src/modeling/templates/verticals/business-services/index.js +0 -50
  56. package/build/src/modeling/templates/verticals/business-services/index.js.map +0 -1
  57. package/build/src/modeling/templates/verticals/business-services/legal-services-domain.d.ts +0 -46
  58. package/build/src/modeling/templates/verticals/business-services/legal-services-domain.d.ts.map +0 -1
  59. package/build/src/modeling/templates/verticals/business-services/legal-services-domain.js +0 -837
  60. package/build/src/modeling/templates/verticals/business-services/legal-services-domain.js.map +0 -1
  61. package/build/src/modeling/templates/verticals/education-training/education-domain.d.ts +0 -40
  62. package/build/src/modeling/templates/verticals/education-training/education-domain.d.ts.map +0 -1
  63. package/build/src/modeling/templates/verticals/education-training/education-domain.js +0 -725
  64. package/build/src/modeling/templates/verticals/education-training/education-domain.js.map +0 -1
  65. package/build/src/modeling/templates/verticals/education-training/index.d.ts +0 -18
  66. package/build/src/modeling/templates/verticals/education-training/index.d.ts.map +0 -1
  67. package/build/src/modeling/templates/verticals/education-training/index.js +0 -21
  68. package/build/src/modeling/templates/verticals/education-training/index.js.map +0 -1
  69. package/build/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.d.ts +0 -40
  70. package/build/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.d.ts.map +0 -1
  71. package/build/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.js +0 -859
  72. package/build/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.js.map +0 -1
  73. package/build/src/modeling/templates/verticals/healthcare-life-sciences/index.d.ts +0 -18
  74. package/build/src/modeling/templates/verticals/healthcare-life-sciences/index.d.ts.map +0 -1
  75. package/build/src/modeling/templates/verticals/healthcare-life-sciences/index.js +0 -21
  76. package/build/src/modeling/templates/verticals/healthcare-life-sciences/index.js.map +0 -1
  77. package/build/src/modeling/templates/verticals/index.d.ts +0 -79
  78. package/build/src/modeling/templates/verticals/index.d.ts.map +0 -1
  79. package/build/src/modeling/templates/verticals/index.js +0 -186
  80. package/build/src/modeling/templates/verticals/index.js.map +0 -1
  81. package/build/src/modeling/templates/verticals/manufacturing-logistics/index.d.ts +0 -18
  82. package/build/src/modeling/templates/verticals/manufacturing-logistics/index.d.ts.map +0 -1
  83. package/build/src/modeling/templates/verticals/manufacturing-logistics/index.js +0 -22
  84. package/build/src/modeling/templates/verticals/manufacturing-logistics/index.js.map +0 -1
  85. package/build/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.d.ts +0 -45
  86. package/build/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.d.ts.map +0 -1
  87. package/build/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.js +0 -710
  88. package/build/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.js.map +0 -1
  89. package/build/src/modeling/templates/verticals/public-sector/index.d.ts +0 -18
  90. package/build/src/modeling/templates/verticals/public-sector/index.d.ts.map +0 -1
  91. package/build/src/modeling/templates/verticals/public-sector/index.js +0 -22
  92. package/build/src/modeling/templates/verticals/public-sector/index.js.map +0 -1
  93. package/build/src/modeling/templates/verticals/public-sector/non-profit-domain.d.ts +0 -47
  94. package/build/src/modeling/templates/verticals/public-sector/non-profit-domain.d.ts.map +0 -1
  95. package/build/src/modeling/templates/verticals/public-sector/non-profit-domain.js +0 -864
  96. package/build/src/modeling/templates/verticals/public-sector/non-profit-domain.js.map +0 -1
  97. package/build/src/modeling/templates/verticals/real-estate-construction/index.d.ts +0 -18
  98. package/build/src/modeling/templates/verticals/real-estate-construction/index.d.ts.map +0 -1
  99. package/build/src/modeling/templates/verticals/real-estate-construction/index.js +0 -21
  100. package/build/src/modeling/templates/verticals/real-estate-construction/index.js.map +0 -1
  101. package/build/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.d.ts +0 -40
  102. package/build/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.d.ts.map +0 -1
  103. package/build/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.js +0 -727
  104. package/build/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.js.map +0 -1
  105. package/build/src/modeling/templates/verticals/technology-media/blog-domain.d.ts +0 -40
  106. package/build/src/modeling/templates/verticals/technology-media/blog-domain.d.ts.map +0 -1
  107. package/build/src/modeling/templates/verticals/technology-media/blog-domain.js +0 -629
  108. package/build/src/modeling/templates/verticals/technology-media/blog-domain.js.map +0 -1
  109. package/build/src/modeling/templates/verticals/technology-media/gaming-domain.d.ts +0 -46
  110. package/build/src/modeling/templates/verticals/technology-media/gaming-domain.d.ts.map +0 -1
  111. package/build/src/modeling/templates/verticals/technology-media/gaming-domain.js +0 -1033
  112. package/build/src/modeling/templates/verticals/technology-media/gaming-domain.js.map +0 -1
  113. package/build/src/modeling/templates/verticals/technology-media/index.d.ts +0 -21
  114. package/build/src/modeling/templates/verticals/technology-media/index.d.ts.map +0 -1
  115. package/build/src/modeling/templates/verticals/technology-media/index.js +0 -42
  116. package/build/src/modeling/templates/verticals/technology-media/index.js.map +0 -1
  117. package/build/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.d.ts +0 -47
  118. package/build/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.d.ts.map +0 -1
  119. package/build/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.js +0 -1029
  120. package/build/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.js.map +0 -1
  121. package/src/modeling/templates/meta/blog-publishing-platform.json +0 -1
  122. package/src/modeling/templates/meta/ecommerce-platform.json +0 -1
  123. package/src/modeling/templates/meta/education-management-platform.json +0 -1
  124. package/src/modeling/templates/meta/financial-services-platform.json +0 -1
  125. package/src/modeling/templates/meta/gaming-platform.json +0 -1
  126. package/src/modeling/templates/meta/healthcare-management-platform.json +0 -1
  127. package/src/modeling/templates/meta/hospitality-platform.json +0 -1
  128. package/src/modeling/templates/meta/iot-smart-home-platform.json +0 -1
  129. package/src/modeling/templates/meta/legal-services-platform.json +0 -1
  130. package/src/modeling/templates/meta/manufacturing-platform.json +0 -1
  131. package/src/modeling/templates/meta/non-profit-platform.json +0 -1
  132. package/src/modeling/templates/meta/real-estate-management-platform.json +0 -1
  133. package/src/modeling/templates/readme.md +0 -260
  134. package/src/modeling/templates/template-registry.ts +0 -140
  135. package/src/modeling/templates/types.ts +0 -175
  136. package/src/modeling/templates/verticals/README.md +0 -122
  137. package/src/modeling/templates/verticals/business-services/ecommerce-domain.ts +0 -844
  138. package/src/modeling/templates/verticals/business-services/financial-services-domain.ts +0 -1177
  139. package/src/modeling/templates/verticals/business-services/hospitality-domain.ts +0 -994
  140. package/src/modeling/templates/verticals/business-services/legal-services-domain.ts +0 -1059
  141. package/src/modeling/templates/verticals/education-training/education-domain.ts +0 -922
  142. package/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.ts +0 -1111
  143. package/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.ts +0 -895
  144. package/src/modeling/templates/verticals/public-sector/non-profit-domain.ts +0 -1109
  145. package/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.ts +0 -944
  146. package/src/modeling/templates/verticals/technology-media/blog-domain.ts +0 -796
  147. package/src/modeling/templates/verticals/technology-media/gaming-domain.ts +0 -1290
  148. package/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.ts +0 -1289
@@ -1 +0,0 @@
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 { SemanticType } from '../../../Semantics.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 semantics: [{ id: SemanticType.ClientIPAddress }],\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"]}
@@ -1 +0,0 @@
1
- {"id":"blog-publishing-platform","name":"Blog Publishing Platform","description":"A comprehensive content management and publishing platform for blogs, magazines, and digital publications. Includes content management, user roles, publishing workflow, and social features.","createdAt":"2025-07-27T21:14:57.328Z","updatedAt":"2025-07-27T21:14:57.328Z","version":"1.0.0","author":"API Now! Core Team","tags":["blog","cms","publishing","content","media","editorial"],"structure":{"domain":{"name":"Blog Publishing Platform","description":"A comprehensive content management and publishing platform for blogs, magazines, and digital publications","totalEntities":8,"totalProperties":70,"totalAssociations":14},"namespaces":[{"name":"ContentManagement","displayName":"Content Management","description":"Core content creation, editing, and organization features","modelCount":2,"entityCount":4,"models":[{"name":"Publications","displayName":"Publications Management","description":"Individual blogs, magazines, or publications within the platform","entityCount":1,"entities":[{"name":"publication","displayName":"Publication","description":"Individual blog or publication site","propertyCount":8,"associationCount":0,"properties":[{"name":"id","displayName":"Publication ID","description":"Unique identifier for the publication","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"name","displayName":"Publication Name","description":"Display name of the publication","type":"string","semantics":["Semantic#Title"]},{"name":"slug","displayName":"URL Slug","description":"URL-friendly identifier for the publication","type":"string","required":true,"unique":true,"semantics":["Semantic#PublicUniqueName"]},{"name":"description","displayName":"Description","description":"Publication description and tagline","type":"string","semantics":["Semantic#Description"]},{"name":"domain","displayName":"Custom Domain","description":"Custom domain name for the publication","type":"string","semantics":[]},{"name":"logo_url","displayName":"Logo URL","description":"URL to publication logo image","type":"string","semantics":["Semantic#ImageURL"]},{"name":"status","displayName":"Publication Status","description":"Current status of the publication","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["active","suspended","archived"],"defaultValue":"active"},{"name":"created_at","displayName":"Created At","description":"When the publication was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[],"semantics":[]}]},{"name":"Content","displayName":"Content Management","description":"Posts, pages, and other content types","entityCount":3,"entities":[{"name":"category","displayName":"Content Category","description":"Content categorization for organization and navigation","propertyCount":5,"associationCount":2,"properties":[{"name":"id","displayName":"Category ID","description":"Unique identifier for the category","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"name","displayName":"Category Name","description":"Display name of the category","type":"string","semantics":["Semantic#Title"]},{"name":"slug","displayName":"URL Slug","description":"URL-friendly identifier for the category","type":"string","required":true,"unique":true,"semantics":["Semantic#PublicUniqueName"]},{"name":"description","displayName":"Description","description":"Category description","type":"string","semantics":["Semantic#Description"]},{"name":"color","displayName":"Color","description":"Theme color for the category","type":"string","semantics":[]}],"associations":[{"name":"publication","displayName":"Publication","description":"Publication this category belongs to","required":true,"multiple":false,"targetEntities":["publication"],"semantics":[],"cardinality":"One-to-One"},{"name":"parentCategory","displayName":"Parent Category","description":"Parent category for hierarchical organization","required":false,"multiple":false,"targetEntities":["category"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]},{"name":"Tag","displayName":"Content Tag","description":"Tags for flexible content labeling and discovery","propertyCount":3,"associationCount":1,"properties":[{"name":"id","displayName":"Tag ID","description":"Unique identifier for the tag","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"name","displayName":"Tag Name","description":"Display name of the tag","type":"string","semantics":["Semantic#Title"]},{"name":"slug","displayName":"URL Slug","description":"URL-friendly identifier for the tag","type":"string","required":true,"unique":true,"semantics":["Semantic#PublicUniqueName"]}],"associations":[{"name":"publication","displayName":"Publication","description":"Publication this tag belongs to","required":true,"multiple":false,"targetEntities":["publication"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]},{"name":"Post","displayName":"Blog Post","description":"Individual blog posts and articles","propertyCount":16,"associationCount":4,"properties":[{"name":"id","displayName":"Post ID","description":"Unique identifier for the post","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"title","displayName":"Post Title","description":"Title of the blog post","type":"string","required":true,"semantics":["Semantic#Title"]},{"name":"slug","displayName":"URL Slug","description":"URL-friendly identifier for the post","type":"string","required":true,"unique":true,"semantics":["Semantic#PublicUniqueName"]},{"name":"excerpt","displayName":"Excerpt","description":"Brief summary or excerpt of the post","type":"string","semantics":["Semantic#Summary"]},{"name":"content","displayName":"Content","description":"Full content of the post in HTML or Markdown","type":"string","required":true,"semantics":["Semantic#HTML"]},{"name":"content_format","displayName":"Content Format","description":"Format of the content (HTML, Markdown, etc.)","type":"string","required":true,"semantics":[],"enumValues":["html","markdown","richtext"],"defaultValue":"markdown"},{"name":"featured_image_url","displayName":"Featured Image URL","description":"URL to featured image","type":"string","semantics":["Semantic#ImageURL"]},{"name":"status","displayName":"Post Status","description":"Current publishing status of the post","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["draft","pending_review","scheduled","published","archived"],"defaultValue":"draft"},{"name":"published_at","displayName":"Published At","description":"When the post was published","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]},{"name":"scheduled_at","displayName":"Scheduled At","description":"When the post is scheduled to be published","type":"datetime","semantics":[]},{"name":"view_count","displayName":"View Count","description":"Number of times the post has been viewed","type":"number","required":true,"semantics":[]},{"name":"reading_time","displayName":"Reading Time","description":"Estimated reading time in minutes","type":"number","readOnly":true,"semantics":["Semantic#Calculated"]},{"name":"word_count","displayName":"Word Count","description":"Number of words in the post content","type":"number","readOnly":true,"semantics":["Semantic#Calculated"]},{"name":"meta_title","displayName":"Meta Title","description":"SEO meta title","type":"string","semantics":[]},{"name":"meta_description","displayName":"Meta Description","description":"SEO meta description","type":"string","semantics":[]},{"name":"updated_at","displayName":"Updated At","description":"When the post was last updated","type":"datetime","readOnly":true,"semantics":["Semantic#UpdatedTimestamp"]}],"associations":[{"name":"publication","displayName":"Publication","description":"Publication this post belongs to","required":true,"multiple":false,"targetEntities":["publication"],"semantics":[],"cardinality":"One-to-One"},{"name":"categories","displayName":"Post Categories","description":"Categories this post belongs to","required":false,"multiple":true,"targetEntities":["category"],"semantics":["Semantic#Categories"],"cardinality":"One-to-Many"},{"name":"tags","displayName":"Post Tags","description":"Tags associated with this post","required":false,"multiple":true,"targetEntities":["Tag"],"semantics":["Semantic#Tags"],"cardinality":"One-to-Many"},{"name":"author","displayName":"Post Author","description":"Author who wrote this post","required":true,"multiple":false,"targetEntities":["user"],"semantics":["Semantic#ResourceOwnerIdentifier"],"cardinality":"One-to-One"}],"semantics":[]}]}]},{"name":"UserManagement","displayName":"User Management","description":"Authors, editors, subscribers, and user roles management","modelCount":1,"entityCount":1,"models":[{"name":"Users","displayName":"User Management","description":"User accounts and authentication","entityCount":1,"entities":[{"name":"user","displayName":"User Account","description":"User account for authors, editors, and subscribers","propertyCount":14,"associationCount":0,"properties":[{"name":"id","displayName":"User ID","description":"Unique identifier for the user","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"email","displayName":"Email Address","description":"User email address for login and communication","type":"string","required":true,"semantics":["Semantic#Email"]},{"name":"password","displayName":"Password","description":"Encrypted password for authentication","type":"string","required":true,"semantics":["Semantic#Password"]},{"name":"username","displayName":"Username","description":"Unique username for the user","type":"string","required":true,"unique":true,"semantics":["Semantic#PublicUniqueName"]},{"name":"display_name","displayName":"Display Name","description":"Public display name for the user","type":"string","required":true,"semantics":[]},{"name":"first_name","displayName":"First Name","description":"User first name","type":"string","semantics":[]},{"name":"last_name","displayName":"Last Name","description":"User last name","type":"string","semantics":[]},{"name":"bio","displayName":"Biography","description":"User biography and description","type":"string","semantics":["Semantic#Description"]},{"name":"avatar_url","displayName":"Avatar URL","description":"URL to user profile picture","type":"string","semantics":["Semantic#ImageURL"]},{"name":"website","displayName":"Website","description":"User personal website URL","type":"string","semantics":["Semantic#URL"]},{"name":"role","displayName":"User Role","description":"User role for permission management","type":"string","required":true,"semantics":["Semantic#UserRole"],"enumValues":["subscriber","author","editor","admin","super_admin"],"defaultValue":"subscriber"},{"name":"status","displayName":"User Status","description":"Current status of the user account","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["active","inactive","suspended","pending_verification"],"defaultValue":"active"},{"name":"emailVerified","displayName":"Email Verified","description":"Whether the user has verified their email","type":"boolean","required":true,"semantics":[],"defaultValue":"false"},{"name":"created_at","displayName":"Created At","description":"When the user account was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[],"semantics":["Semantic#User"]}]}]},{"name":"SocialFeatures","displayName":"Social Features","description":"Comments, likes, shares, and social interactions","modelCount":1,"entityCount":1,"models":[{"name":"Comments","displayName":"Comment System","description":"Post comments and replies","entityCount":1,"entities":[{"name":"comment","displayName":"Comment","description":"User comments on posts","propertyCount":7,"associationCount":3,"properties":[{"name":"id","displayName":"Comment ID","description":"Unique identifier for the comment","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"content","displayName":"Comment Content","description":"Content of the comment","type":"string","required":true,"semantics":[]},{"name":"author_name","displayName":"Author Name","description":"Name of the comment author (for guest comments)","type":"string","semantics":[]},{"name":"author_email","displayName":"Author Email","description":"Email of the comment author (for guest comments)","type":"string","required":true,"semantics":["Semantic#Email"]},{"name":"status","displayName":"Comment Status","description":"Moderation status of the comment","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["pending","approved","rejected","spam"],"defaultValue":"pending"},{"name":"user_agent","displayName":"User Agent","description":"Browser user agent string","type":"string","semantics":[]},{"name":"created_at","displayName":"Created At","description":"When the comment was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"post","displayName":"Post","description":"Post this comment belongs to","required":true,"multiple":false,"targetEntities":["Post"],"semantics":[],"cardinality":"One-to-One"},{"name":"author","displayName":"Comment Author","description":"Registered user who wrote this comment","required":false,"multiple":false,"targetEntities":["user"],"semantics":["Semantic#ResourceOwnerIdentifier"],"cardinality":"One-to-One"},{"name":"parent_comment","displayName":"Parent Comment","description":"Parent comment for replies","required":false,"multiple":false,"targetEntities":["comment"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]}]}]},{"name":"Analytics","displayName":"Analytics & Tracking","description":"Analytics, metrics, and performance tracking","modelCount":1,"entityCount":1,"models":[{"name":"Analytics","displayName":"Content Analytics","description":"Content performance and user engagement metrics","entityCount":1,"entities":[{"name":"page_view","displayName":"Page View","description":"Individual page view tracking record","propertyCount":7,"associationCount":2,"properties":[{"name":"id","displayName":"Page View ID","description":"Unique identifier for the page view","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"path","displayName":"Page Path","description":"URL path of the viewed page","type":"string","required":true,"semantics":[]},{"name":"referrer","displayName":"Referrer","description":"Referring URL","type":"string","semantics":["Semantic#URL"]},{"name":"ip_address","displayName":"IP Address","description":"Visitor IP address","type":"string","semantics":["Semantic#ClientIPAddress"]},{"name":"user_agent","displayName":"User Agent","description":"Browser user agent string","type":"string","semantics":[]},{"name":"session_id","displayName":"Session ID","description":"Visitor session identifier","type":"string","semantics":[]},{"name":"viewed_at","displayName":"Viewed At","description":"When the page was viewed","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"post","displayName":"Viewed Post","description":"Post that was viewed (if applicable)","required":false,"multiple":false,"targetEntities":["Post"],"semantics":[],"cardinality":"One-to-One"},{"name":"publication","displayName":"Publication","description":"Publication this page view belongs to","required":true,"multiple":false,"targetEntities":["publication"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]}]}]},{"name":"MediaManagement","displayName":"Media Management","description":"Image, video, and file upload management","modelCount":1,"entityCount":1,"models":[{"name":"Media","displayName":"Media Library","description":"Uploaded files, images, and media assets","entityCount":1,"entities":[{"name":"media_file","displayName":"Media File","description":"Uploaded media files (images, videos, documents)","propertyCount":10,"associationCount":2,"properties":[{"name":"id","displayName":"Media File ID","description":"Unique identifier for the media file","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"filename","displayName":"File Name","description":"Original filename of the uploaded file","type":"string","required":true,"semantics":[]},{"name":"storage_key","displayName":"Storage Key","description":"Unique storage key for the file","type":"string","required":true,"unique":true,"semantics":[]},{"name":"url","displayName":"File URL","description":"Public URL to access the file","type":"string","required":true,"semantics":["Semantic#URL"]},{"name":"mime_type","displayName":"MIME Type","description":"MIME type of the file","type":"string","required":true,"semantics":[]},{"name":"file_size","displayName":"File Size","description":"File size in bytes","type":"number","required":true,"semantics":[]},{"name":"width","displayName":"Image Width","description":"Width in pixels (for images)","type":"number","required":true,"semantics":[]},{"name":"height","displayName":"Image Height","description":"Height in pixels (for images)","type":"number","required":true,"semantics":[]},{"name":"alt_text","displayName":"Alt Text","description":"Alternative text for accessibility","type":"string","semantics":[]},{"name":"uploaded_at","displayName":"Uploaded At","description":"When the file was uploaded","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"uploader","displayName":"File Uploader","description":"User who uploaded this file","required":true,"multiple":false,"targetEntities":["user"],"semantics":["Semantic#ResourceOwnerIdentifier"],"cardinality":"One-to-One"},{"name":"publication","displayName":"Publication","description":"Publication this media file belongs to","required":true,"multiple":false,"targetEntities":["publication"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]}]}]}]}}
@@ -1 +0,0 @@
1
- {"id":"ecommerce-platform","name":"E-Commerce Platform","description":"A comprehensive e-commerce platform with user management, product catalog, inventory, and order processing capabilities. Perfect for online stores, marketplaces, and retail businesses.","createdAt":"2025-07-27T21:14:57.328Z","updatedAt":"2025-07-27T21:14:57.328Z","version":"1.0.0","author":"API Now! Core Team","tags":["e-commerce","retail","shopping","business","inventory","orders"],"structure":{"domain":{"name":"E-Commerce Platform","description":"A comprehensive e-commerce platform with user management, product catalog, and order processing capabilities","totalEntities":11,"totalProperties":73,"totalAssociations":14},"namespaces":[{"name":"UserManagement","displayName":"User Management","description":"Handles user authentication, authorization, and profile management","modelCount":2,"entityCount":3,"models":[{"name":"Authentication","displayName":"User Authentication","description":"User accounts and authentication data","entityCount":1,"entities":[{"name":"User","displayName":"User Account","description":"Represents a user account in the system","propertyCount":9,"associationCount":2,"properties":[{"name":"id","displayName":"User ID","description":"Unique identifier for the user","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"email","displayName":"Email Address","description":"User email address for login and communication","type":"string","required":true,"semantics":["Semantic#Email"]},{"name":"password","displayName":"Password","description":"User password for authentication","type":"string","required":true,"semantics":["Semantic#Password"]},{"name":"first_name","displayName":"First Name","description":"User first name","type":"string","required":true,"semantics":[]},{"name":"last_name","displayName":"Last Name","description":"User last name","type":"string","required":true,"semantics":[]},{"name":"role","displayName":"User Role","description":"User role for permission management","type":"string","required":true,"semantics":["Semantic#UserRole"],"enumValues":["customer","admin","moderator"],"defaultValue":"customer"},{"name":"email_verified","displayName":"Email Verified","description":"Whether the user has verified their email address","type":"boolean","required":true,"semantics":[],"defaultValue":"false"},{"name":"created_at","displayName":"Created At","description":"When the user account was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]},{"name":"updated_at","displayName":"Updated At","description":"When the user account was last updated","type":"datetime","readOnly":true,"semantics":["Semantic#UpdatedTimestamp"]}],"associations":[{"name":"profile","displayName":"User Profile","description":"Link to extended profile information","required":false,"multiple":false,"targetEntities":["user_profile"],"semantics":[],"cardinality":"One-to-One"},{"name":"addresses","displayName":"User Addresses","description":"User shipping and billing addresses","required":false,"multiple":true,"targetEntities":["address"],"semantics":[],"cardinality":"One-to-Many"}],"semantics":["Semantic#User"]}]},{"name":"UserProfile","displayName":"User Profile","description":"Extended user profile information","entityCount":2,"entities":[{"name":"user_profile","displayName":"User Profile","description":"Extended profile information for users","propertyCount":4,"associationCount":0,"properties":[{"name":"id","displayName":"Profile ID","description":"Unique identifier for the profile","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"birthdate","displayName":"Date of Birth","description":"User date of birth","type":"date","semantics":[]},{"name":"phone","displayName":"Phone Number","description":"User phone number","type":"string","semantics":["Semantic#Phone"]},{"name":"avatar_url","displayName":"Avatar URL","description":"URL to user profile picture","type":"string","semantics":["Semantic#ImageURL"]}],"associations":[],"semantics":[]},{"name":"address","displayName":"Address","description":"Physical address information","propertyCount":9,"associationCount":0,"properties":[{"name":"id","displayName":"Address ID","description":"Unique identifier for the address","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"type","displayName":"Address Type","description":"Type of address (shipping, billing, etc.)","type":"string","required":true,"semantics":[],"enumValues":["shipping","billing","both"]},{"name":"line1","displayName":"Address Line 1","description":"Primary street address, including house number and street name","type":"string","required":true,"semantics":[]},{"name":"line2","displayName":"Address Line 2","description":"Optional field for additional street-level information like apartment numbers or building names.","type":"string","required":false,"semantics":[]},{"name":"line3","displayName":"Address Line 3","description":"Optional field for additional street-level information like apartment numbers or building names.","type":"string","required":false,"semantics":[]},{"name":"city","displayName":"City","description":"City name","type":"string","required":true,"semantics":[]},{"name":"state","displayName":"State/Province","description":"State or province","type":"string","required":true,"semantics":[]},{"name":"postal_code","displayName":"ZIP/Postal Code","description":"ZIP or postal code","type":"string","required":true,"semantics":[]},{"name":"country","displayName":"Country","description":"Country name","type":"string","required":true,"semantics":[]}],"associations":[],"semantics":[]}]}]},{"name":"ProductCatalog","displayName":"Product Catalog","description":"Product information, categories, and inventory management","modelCount":2,"entityCount":3,"models":[{"name":"Products","displayName":"Product Management","description":"Core product entities and relationships","entityCount":2,"entities":[{"name":"category","displayName":"Product Category","description":"Product categorization for organization and navigation","propertyCount":4,"associationCount":1,"properties":[{"name":"id","displayName":"Category ID","description":"Unique identifier for the category","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"name","displayName":"Category Name","description":"Display name of the category","type":"string","semantics":["Semantic#Title"]},{"name":"slug","displayName":"URL Slug","description":"URL-friendly identifier for the category","type":"string","required":true,"unique":true,"semantics":["Semantic#PublicUniqueName"]},{"name":"description","displayName":"Description","description":"Category description","type":"string","semantics":["Semantic#Description"]}],"associations":[{"name":"parent_category","displayName":"Parent Category","description":"Parent category for hierarchical organization","required":false,"multiple":false,"targetEntities":["category"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]},{"name":"product","displayName":"Product","description":"Core product information and specifications","propertyCount":13,"associationCount":2,"properties":[{"name":"id","displayName":"Product ID","description":"Unique identifier for the product","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"name","displayName":"Product Name","description":"Display name of the product","type":"string","semantics":["Semantic#Title"]},{"name":"slug","displayName":"URL Slug","description":"URL-friendly identifier for the product","type":"string","required":true,"unique":true,"semantics":["Semantic#PublicUniqueName"]},{"name":"description","displayName":"Description","description":"Detailed product description","type":"string","semantics":["Semantic#Description"]},{"name":"short_description","displayName":"Short Description","description":"Brief product summary","type":"string","semantics":["Semantic#Summary"]},{"name":"sku","displayName":"SKU","description":"Stock Keeping Unit - unique product identifier","type":"string","required":true,"unique":true,"semantics":["Semantic#SKU"]},{"name":"price","displayName":"Price","description":"Product price in cents (USD)","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"compare_at_price","displayName":"Compare at Price","description":"Original price for discount display","type":"number","semantics":["Semantic#Currency"]},{"name":"status","displayName":"Status","description":"Current status of the product","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["inactive","active","pending","archived"],"defaultValue":"inactive"},{"name":"weight","displayName":"Weight","description":"Product weight in grams","type":"number","semantics":[]},{"name":"images","displayName":"Images","description":"Array of product image URLs","type":"string","multiple":true,"semantics":["Semantic#ImageURL"]},{"name":"created_at","displayName":"Created At","description":"When the product was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]},{"name":"updated_at","displayName":"Updated At","description":"When the product was last updated","type":"datetime","readOnly":true,"semantics":["Semantic#UpdatedTimestamp"]}],"associations":[{"name":"categories","displayName":"Product Categories","description":"Categories this product belongs to","required":true,"multiple":true,"targetEntities":["category"],"semantics":["Semantic#Categories"],"cardinality":"One-to-Many"},{"name":"inventory","displayName":"Product Inventory","description":"Inventory information for this product","required":true,"multiple":false,"targetEntities":["inventory"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]}]},{"name":"Inventory","displayName":"Inventory Management","description":"Stock levels and inventory tracking","entityCount":1,"entities":[{"name":"inventory","displayName":"Inventory","description":"Stock levels and inventory information for products","propertyCount":4,"associationCount":0,"properties":[{"name":"id","displayName":"Inventory ID","description":"Unique identifier for the inventory record","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"quantity","displayName":"Stock Quantity","description":"Available stock quantity","type":"number","required":true,"semantics":[],"defaultValue":"0"},{"name":"trackQuantity","displayName":"Track Quantity","description":"Whether to track inventory for this product","type":"boolean","required":true,"semantics":[],"defaultValue":"true"},{"name":"allowBackorder","displayName":"Allow Backorder","description":"Whether to allow ordering when out of stock","type":"boolean","required":true,"semantics":[],"defaultValue":"false"}],"associations":[],"semantics":[]}]}]},{"name":"OrderManagement","displayName":"Order Management","description":"Shopping cart, orders, and payment processing","modelCount":3,"entityCount":5,"models":[{"name":"ShoppingCart","displayName":"Shopping Cart","description":"Shopping cart and cart items","entityCount":2,"entities":[{"name":"cart","displayName":"Shopping Cart","description":"User shopping cart","propertyCount":5,"associationCount":2,"properties":[{"name":"id","displayName":"Cart ID","description":"Unique identifier for the cart","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"sessionId","displayName":"Session ID","description":"Session identifier for guest carts","type":"string","semantics":[]},{"name":"expiresAt","displayName":"Expires At","description":"When the cart expires for cleanup","type":"datetime","semantics":[]},{"name":"created_at","displayName":"Created At","description":"When the cart was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]},{"name":"updated_at","displayName":"Updated At","description":"When the cart was last updated","type":"datetime","readOnly":true,"semantics":["Semantic#UpdatedTimestamp"]}],"associations":[{"name":"user","displayName":"Cart Owner","description":"User who owns this cart","required":false,"multiple":false,"targetEntities":["User"],"semantics":["Semantic#ResourceOwnerIdentifier"],"cardinality":"One-to-One"},{"name":"items","displayName":"Cart Items","description":"Items in this cart","required":false,"multiple":true,"targetEntities":["cart_item"],"semantics":[],"cardinality":"One-to-Many"}],"semantics":[]},{"name":"cart_item","displayName":"Cart Item","description":"Individual items in a shopping cart","propertyCount":4,"associationCount":1,"properties":[{"name":"id","displayName":"Cart Item ID","description":"Unique identifier for the cart item","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"quantity","displayName":"Quantity","description":"Number of items","type":"number","required":true,"semantics":[]},{"name":"unitPrice","displayName":"Unit Price","description":"Price per unit at time of adding to cart","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"total_price","displayName":"Total Price","description":"Total price for this line item","type":"number","required":true,"readOnly":true,"semantics":["Semantic#Currency","Semantic#Calculated"]}],"associations":[{"name":"product","displayName":"Product","description":"Product for this cart item","required":true,"multiple":false,"targetEntities":["product"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]}]},{"name":"Orders","displayName":"Order Processing","description":"Orders and order fulfillment","entityCount":2,"entities":[{"name":"order","displayName":"Order","description":"Customer order","propertyCount":10,"associationCount":5,"properties":[{"name":"id","displayName":"Order ID","description":"Unique identifier for the order","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"order_number","displayName":"Order Number","description":"Human-readable order number","type":"string","required":true,"unique":true,"semantics":[]},{"name":"status","displayName":"Order Status","description":"Current status of the order","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["pending","confirmed","processing","shipped","delivered","cancelled","refunded"],"defaultValue":"pending"},{"name":"subtotal","displayName":"Subtotal","description":"Order subtotal before taxes and shipping","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"taxAmount","displayName":"Tax Amount","description":"Total tax amount","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"shippingAmount","displayName":"Shipping Amount","description":"Shipping cost","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"total_amount","displayName":"Total Amount","description":"Final order total","type":"number","required":true,"semantics":["Semantic#Currency","Semantic#Calculated"]},{"name":"notes","displayName":"Order Notes","description":"Customer notes or special instructions","type":"string","semantics":[]},{"name":"created_at","displayName":"Created At","description":"When the order was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]},{"name":"updated_at","displayName":"Updated At","description":"When the order was last updated","type":"datetime","readOnly":true,"semantics":["Semantic#UpdatedTimestamp"]}],"associations":[{"name":"customer","displayName":"Customer","description":"Customer who placed this order","required":true,"multiple":false,"targetEntities":["User"],"semantics":["Semantic#ResourceOwnerIdentifier"],"cardinality":"One-to-One"},{"name":"shipping_address","displayName":"Shipping Address","description":"Address for order delivery","required":true,"multiple":false,"targetEntities":["address"],"semantics":[],"cardinality":"One-to-One"},{"name":"billing_address","displayName":"Billing Address","description":"Address for billing purposes","required":true,"multiple":false,"targetEntities":["address"],"semantics":[],"cardinality":"One-to-One"},{"name":"items","displayName":"Order Items","description":"Items in this order","required":true,"multiple":true,"targetEntities":["order_item"],"semantics":[],"cardinality":"One-to-Many"},{"name":"payments","displayName":"Order Payments","description":"Payment transactions for this order","required":false,"multiple":true,"targetEntities":["payment"],"semantics":[],"cardinality":"One-to-Many"}],"semantics":[]},{"name":"order_item","displayName":"Order Line Item","description":"Individual line items in an order","propertyCount":4,"associationCount":1,"properties":[{"name":"id","displayName":"Order Item ID","description":"Unique identifier for the order item","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"quantity","displayName":"Quantity","description":"Number of items ordered","type":"number","required":true,"semantics":[]},{"name":"unitPrice","displayName":"Unit Price","description":"Price per unit at time of order","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"total_price","displayName":"Total Price","description":"Total price for this line item","type":"number","required":true,"readOnly":true,"semantics":["Semantic#Currency","Semantic#Calculated"]}],"associations":[{"name":"product","displayName":"Product","description":"Product for this order item","required":true,"multiple":false,"targetEntities":["product"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]}]},{"name":"Payments","displayName":"Payment Processing","description":"Payment methods and transactions","entityCount":1,"entities":[{"name":"payment","displayName":"Payment","description":"Payment transaction record","propertyCount":7,"associationCount":0,"properties":[{"name":"id","displayName":"Payment ID","description":"Unique identifier for the payment","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"method","displayName":"Payment Method","description":"Method used for payment","type":"string","required":true,"semantics":[],"enumValues":["credit_card","debit_card","paypal","bank_transfer","apple_pay","google_pay"]},{"name":"status","displayName":"Payment Status","description":"Current status of the payment","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["pending","authorized","captured","failed","cancelled","refunded"],"defaultValue":"pending"},{"name":"amount","displayName":"Payment Amount","description":"Amount charged","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"currency","displayName":"Currency","description":"Currency code for the payment","type":"string","required":true,"semantics":[],"defaultValue":"USD"},{"name":"transaction_id","displayName":"Transaction ID","description":"External payment processor transaction ID","type":"string","semantics":[]},{"name":"created_at","displayName":"Created At","description":"When the payment was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[],"semantics":[]}]}]}]}}
@@ -1 +0,0 @@
1
- {"id":"education-management-platform","name":"Education Management Platform","description":"A comprehensive education management platform with student management, course management, faculty management, campus operations, and learning analytics. Perfect for schools, universities, and educational institutions.","createdAt":"2025-01-27T00:00:00.000Z","updatedAt":"2025-01-27T00:00:00.000Z","version":"1.0.0","author":"API Now! Core Team","tags":["education","academic","student-management","course-management","learning-analytics"],"structure":{"domain":{"name":"Education Management Platform","description":"A comprehensive education management platform with student management, course management, faculty management, campus operations, and learning analytics","totalEntities":15,"totalProperties":99,"totalAssociations":15},"namespaces":[{"name":"StudentManagement","displayName":"Student Management","description":"Student records, enrollment, and academic history","modelCount":1,"entityCount":3,"models":[{"name":"Students","displayName":"Student Management","description":"Student records and information","entityCount":3,"entities":[{"name":"student","displayName":"Student","description":"Student record with academic information","propertyCount":13,"associationCount":0,"properties":[{"name":"id","displayName":"Student ID","description":"Unique identifier for the student","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"student_number","displayName":"Student Number","description":"Student identification number","type":"string","required":true,"unique":true,"semantics":[]},{"name":"first_name","displayName":"First Name","description":"Student first name","type":"string","semantics":[]},{"name":"last_name","displayName":"Last Name","description":"Student last name","type":"string","semantics":[]},{"name":"date_of_birth","displayName":"Date of Birth","description":"Student date of birth","type":"date","required":true,"semantics":[]},{"name":"email","displayName":"Email Address","description":"Student email address","type":"string","required":true,"semantics":["Semantic#Email"]},{"name":"phone","displayName":"Phone Number","description":"Student phone number","type":"string","semantics":["Semantic#Phone"]},{"name":"address","displayName":"Address","description":"Student residential address","type":"string","required":true,"semantics":[]},{"name":"emergency_contact_name","displayName":"Emergency Contact Name","description":"Emergency contact name","type":"string","semantics":[]},{"name":"status","displayName":"Student Status","description":"Current status of the student","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["active","inactive","graduated","withdrawn","suspended"],"defaultValue":"active"},{"name":"academic_level","displayName":"Academic Level","description":"Current academic level of the student","type":"string","required":true,"semantics":[],"enumValues":["freshman","sophomore","junior","senior","graduate"]},{"name":"created_at","displayName":"Created At","description":"When the student record was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]},{"name":"updated_at","displayName":"Updated At","description":"When the student record was last updated","type":"datetime","readOnly":true,"semantics":["Semantic#UpdatedTimestamp"]}],"associations":[],"semantics":[]},{"name":"enrollment","displayName":"Enrollment","description":"Student course enrollment records","propertyCount":4,"associationCount":2,"properties":[{"name":"id","displayName":"Enrollment ID","description":"Unique identifier for the enrollment","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"enrollment_date","displayName":"Enrollment Date","description":"Date when student enrolled","type":"date","required":true,"semantics":[]},{"name":"status","displayName":"Enrollment Status","description":"Current status of the enrollment","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["enrolled","dropped","completed","incomplete"],"defaultValue":"enrolled"},{"name":"created_at","displayName":"Created At","description":"When the enrollment was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"student","displayName":"Student","description":"Student for this enrollment","required":true,"multiple":false,"targetEntities":["student"],"semantics":[],"cardinality":"One-to-One"},{"name":"course_section","displayName":"Course Section","description":"Course section for this enrollment","required":true,"multiple":false,"targetEntities":["course_section"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]},{"name":"academic_history","displayName":"Academic History","description":"Student academic history and records","propertyCount":6,"associationCount":1,"properties":[{"name":"id","displayName":"History ID","description":"Unique identifier for the academic history","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"gpa","displayName":"GPA","description":"Grade Point Average","type":"number","required":true,"semantics":[]},{"name":"credits_earned","displayName":"Credits Earned","description":"Total credits earned","type":"number","required":true,"semantics":[]},{"name":"academic_year","displayName":"Academic Year","description":"Academic year","type":"string","required":true,"semantics":[]},{"name":"description","displayName":"Description","description":"Academic history notes and achievements","type":"string","semantics":["Semantic#Description"]},{"name":"created_at","displayName":"Created At","description":"When the academic history was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"student","displayName":"Student","description":"Student for this academic history","required":true,"multiple":false,"targetEntities":["student"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]}]}]},{"name":"CourseManagement","displayName":"Course Management","description":"Courses, curriculum, assignments, and grades","modelCount":1,"entityCount":4,"models":[{"name":"Courses","displayName":"Course Management","description":"Course information and curriculum","entityCount":4,"entities":[{"name":"course","displayName":"Course","description":"Academic course information","propertyCount":8,"associationCount":0,"properties":[{"name":"id","displayName":"Course ID","description":"Unique identifier for the course","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"course_code","displayName":"Course Code","description":"Course identification code","type":"string","required":true,"unique":true,"semantics":[]},{"name":"name","displayName":"Course Name","description":"Name of the course","type":"string","semantics":["Semantic#Title"]},{"name":"description","displayName":"Description","description":"Course description and objectives","type":"string","semantics":["Semantic#Description"]},{"name":"credits","displayName":"Credits","description":"Number of credits for the course","type":"number","required":true,"semantics":[]},{"name":"status","displayName":"Course Status","description":"Current status of the course","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["active","inactive","archived"],"defaultValue":"active"},{"name":"created_at","displayName":"Created At","description":"When the course was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]},{"name":"updated_at","displayName":"Updated At","description":"When the course was last updated","type":"datetime","readOnly":true,"semantics":["Semantic#UpdatedTimestamp"]}],"associations":[],"semantics":[]},{"name":"course_section","displayName":"Course Section","description":"Specific section of a course","propertyCount":6,"associationCount":2,"properties":[{"name":"id","displayName":"Section ID","description":"Unique identifier for the section","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"section_number","displayName":"Section Number","description":"Section number","type":"string","required":true,"semantics":[]},{"name":"capacity","displayName":"Capacity","description":"Maximum number of students","type":"number","required":true,"semantics":[]},{"name":"enrolled_count","displayName":"Enrolled Count","description":"Number of enrolled students","type":"number","required":true,"semantics":[]},{"name":"status","displayName":"Section Status","description":"Current status of the section","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["open","full","closed","cancelled"],"defaultValue":"open"},{"name":"created_at","displayName":"Created At","description":"When the section was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"course","displayName":"Course","description":"Course for this section","required":true,"multiple":false,"targetEntities":["course"],"semantics":[],"cardinality":"One-to-One"},{"name":"instructor","displayName":"Instructor","description":"Faculty instructor for this section","required":true,"multiple":false,"targetEntities":["faculty"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]},{"name":"assignment","displayName":"Assignment","description":"Course assignments and assessments","propertyCount":7,"associationCount":1,"properties":[{"name":"id","displayName":"Assignment ID","description":"Unique identifier for the assignment","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"name","displayName":"Assignment Name","description":"Name of the assignment","type":"string","semantics":["Semantic#Title"]},{"name":"description","displayName":"Description","description":"Assignment description and requirements","type":"string","semantics":["Semantic#Description"]},{"name":"due_date","displayName":"Due Date","description":"Assignment due date","type":"date","required":true,"semantics":[]},{"name":"total_points","displayName":"Total Points","description":"Total possible points","type":"number","required":true,"semantics":[]},{"name":"status","displayName":"Assignment Status","description":"Current status of the assignment","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["draft","published","submitted","graded"],"defaultValue":"draft"},{"name":"created_at","displayName":"Created At","description":"When the assignment was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"course_section","displayName":"Course Section","description":"Course section for this assignment","required":true,"multiple":false,"targetEntities":["course_section"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]},{"name":"grade","displayName":"Grade","description":"Student grades and assessments","propertyCount":5,"associationCount":2,"properties":[{"name":"id","displayName":"Grade ID","description":"Unique identifier for the grade","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"score","displayName":"Score","description":"Numerical score earned","type":"number","required":true,"semantics":[]},{"name":"letter_grade","displayName":"Letter Grade","description":"Letter grade (A, B, C, D, F)","type":"string","required":true,"semantics":[],"enumValues":["A","A-","B+","B","B-","C+","C","C-","D+","D","F"]},{"name":"description","displayName":"Description","description":"Grade comments and feedback","type":"string","semantics":["Semantic#Description"]},{"name":"created_at","displayName":"Created At","description":"When the grade was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"student","displayName":"Student","description":"Student for this grade","required":true,"multiple":false,"targetEntities":["student"],"semantics":[],"cardinality":"One-to-One"},{"name":"assignment","displayName":"Assignment","description":"Assignment for this grade","required":true,"multiple":false,"targetEntities":["assignment"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]}]}]},{"name":"FacultyManagement","displayName":"Faculty Management","description":"Teachers, staff, departments, and roles","modelCount":1,"entityCount":2,"models":[{"name":"Faculty","displayName":"Faculty Management","description":"Faculty and staff information","entityCount":2,"entities":[{"name":"faculty","displayName":"Faculty Member","description":"Faculty member or staff","propertyCount":9,"associationCount":1,"properties":[{"name":"id","displayName":"Faculty ID","description":"Unique identifier for the faculty member","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"first_name","displayName":"First Name","description":"Faculty first name","type":"string","semantics":[]},{"name":"last_name","displayName":"Last Name","description":"Faculty last name","type":"string","semantics":[]},{"name":"email","displayName":"Email Address","description":"Faculty email address","type":"string","required":true,"semantics":["Semantic#Email"]},{"name":"phone","displayName":"Phone Number","description":"Faculty phone number","type":"string","semantics":["Semantic#Phone"]},{"name":"status","displayName":"Faculty Status","description":"Current status of the faculty member","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["active","inactive","on_leave","retired"],"defaultValue":"active"},{"name":"faculty_rank","displayName":"Faculty Rank","description":"Academic rank of the faculty member","type":"string","required":true,"semantics":[],"enumValues":["professor","associate_professor","assistant_professor","lecturer","instructor"]},{"name":"created_at","displayName":"Created At","description":"When the faculty record was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]},{"name":"updated_at","displayName":"Updated At","description":"When the faculty record was last updated","type":"datetime","readOnly":true,"semantics":["Semantic#UpdatedTimestamp"]}],"associations":[{"name":"department","displayName":"Department","description":"Department for this faculty member","required":true,"multiple":false,"targetEntities":["department"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]},{"name":"department","displayName":"Department","description":"Academic department","propertyCount":5,"associationCount":0,"properties":[{"name":"id","displayName":"Department ID","description":"Unique identifier for the department","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"name","displayName":"Department Name","description":"Name of the department","type":"string","semantics":["Semantic#Title"]},{"name":"description","displayName":"Description","description":"Department description and mission","type":"string","semantics":["Semantic#Description"]},{"name":"status","displayName":"Department Status","description":"Current status of the department","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["active","inactive","merged"],"defaultValue":"active"},{"name":"created_at","displayName":"Created At","description":"When the department was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[],"semantics":[]}]}]},{"name":"CampusOperations","displayName":"Campus Operations","description":"Facilities, events, and resources","modelCount":1,"entityCount":2,"models":[{"name":"Campus","displayName":"Campus Management","description":"Campus facilities and operations","entityCount":2,"entities":[{"name":"facility","displayName":"Facility","description":"Campus facilities and buildings","propertyCount":6,"associationCount":0,"properties":[{"name":"id","displayName":"Facility ID","description":"Unique identifier for the facility","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"name","displayName":"Facility Name","description":"Name of the facility","type":"string","semantics":["Semantic#Title"]},{"name":"description","displayName":"Description","description":"Facility description and features","type":"string","semantics":["Semantic#Description"]},{"name":"facility_type","displayName":"Facility Type","description":"Type of campus facility","type":"string","required":true,"semantics":[],"enumValues":["classroom","laboratory","office","library","gymnasium","auditorium"]},{"name":"status","displayName":"Facility Status","description":"Current status of the facility","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["active","maintenance","closed"],"defaultValue":"active"},{"name":"created_at","displayName":"Created At","description":"When the facility was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[],"semantics":[]},{"name":"event","displayName":"Event","description":"Campus events and activities","propertyCount":7,"associationCount":1,"properties":[{"name":"id","displayName":"Event ID","description":"Unique identifier for the event","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"name","displayName":"Event Name","description":"Name of the event","type":"string","semantics":["Semantic#Title"]},{"name":"description","displayName":"Description","description":"Event description and details","type":"string","semantics":["Semantic#Description"]},{"name":"start_date","displayName":"Start Date","description":"Event start date and time","type":"datetime","required":true,"semantics":[]},{"name":"end_date","displayName":"End Date","description":"Event end date and time","type":"datetime","required":true,"semantics":[]},{"name":"status","displayName":"Event Status","description":"Current status of the event","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["scheduled","in_progress","completed","cancelled"],"defaultValue":"scheduled"},{"name":"created_at","displayName":"Created At","description":"When the event was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"facility","displayName":"Facility","description":"Facility for this event","required":true,"multiple":false,"targetEntities":["facility"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]}]}]},{"name":"LearningAnalytics","displayName":"Learning Analytics","description":"Progress tracking, assessments, and performance","modelCount":1,"entityCount":2,"models":[{"name":"Analytics","displayName":"Learning Analytics","description":"Student performance and learning analytics","entityCount":2,"entities":[{"name":"assessment","displayName":"Assessment","description":"Student assessments and evaluations","propertyCount":7,"associationCount":1,"properties":[{"name":"id","displayName":"Assessment ID","description":"Unique identifier for the assessment","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"name","displayName":"Assessment Name","description":"Name of the assessment","type":"string","semantics":["Semantic#Title"]},{"name":"description","displayName":"Description","description":"Assessment description and criteria","type":"string","semantics":["Semantic#Description"]},{"name":"assessment_date","displayName":"Assessment Date","description":"Date when assessment was conducted","type":"date","required":true,"semantics":[]},{"name":"score","displayName":"Score","description":"Assessment score","type":"number","required":true,"semantics":[]},{"name":"status","displayName":"Assessment Level","description":"Performance level of the assessment","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["excellent","good","satisfactory","needs_improvement","unsatisfactory"],"defaultValue":"excellent"},{"name":"created_at","displayName":"Created At","description":"When the assessment was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"student","displayName":"Student","description":"Student for this assessment","required":true,"multiple":false,"targetEntities":["student"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]},{"name":"progress_tracking","displayName":"Progress Tracking","description":"Student progress tracking and milestones","propertyCount":6,"associationCount":2,"properties":[{"name":"id","displayName":"Progress ID","description":"Unique identifier for the progress record","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"tracking_date","displayName":"Tracking Date","description":"Date of progress tracking","type":"date","required":true,"semantics":[]},{"name":"completion_percentage","displayName":"Completion Percentage","description":"Percentage of course completed","type":"number","required":true,"semantics":[]},{"name":"status","displayName":"Progress Status","description":"Current progress status","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["on_track","ahead","behind","at_risk"],"defaultValue":"on_track"},{"name":"description","displayName":"Description","description":"Progress notes and observations","type":"string","semantics":["Semantic#Description"]},{"name":"created_at","displayName":"Created At","description":"When the progress record was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"student","displayName":"Student","description":"Student for this progress tracking","required":true,"multiple":false,"targetEntities":["student"],"semantics":[],"cardinality":"One-to-One"},{"name":"course_section","displayName":"Course Section","description":"Course section for this progress","required":true,"multiple":false,"targetEntities":["course_section"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]}]}]},{"name":"Administrative","displayName":"Administrative","description":"Admissions, financial aid, and scheduling","modelCount":1,"entityCount":2,"models":[{"name":"Administrative","displayName":"Administrative Management","description":"Administrative processes and records","entityCount":2,"entities":[{"name":"admission","displayName":"Admission","description":"Student admission records","propertyCount":5,"associationCount":1,"properties":[{"name":"id","displayName":"Admission ID","description":"Unique identifier for the admission","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"application_date","displayName":"Application Date","description":"Date when application was submitted","type":"date","required":true,"semantics":[]},{"name":"status","displayName":"Admission Status","description":"Current status of the admission","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["pending","under_review","accepted","rejected","waitlisted"],"defaultValue":"pending"},{"name":"description","displayName":"Description","description":"Admission notes and decisions","type":"string","semantics":["Semantic#Description"]},{"name":"created_at","displayName":"Created At","description":"When the admission was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"student","displayName":"Student","description":"Student for this admission","required":true,"multiple":false,"targetEntities":["student"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]},{"name":"financial_aid","displayName":"Financial Aid","description":"Student financial aid and scholarships","propertyCount":5,"associationCount":1,"properties":[{"name":"id","displayName":"Financial Aid ID","description":"Unique identifier for the financial aid","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"aid_type","displayName":"Aid Type","description":"Type of financial aid","type":"string","required":true,"semantics":[],"enumValues":["scholarship","grant","loan","work_study"]},{"name":"amount","displayName":"Aid Amount","description":"Amount of financial aid awarded","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"status","displayName":"Aid Status","description":"Current status of the financial aid","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["pending","approved","disbursed","cancelled"],"defaultValue":"pending"},{"name":"created_at","displayName":"Created At","description":"When the financial aid was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"student","displayName":"Student","description":"Student for this financial aid","required":true,"multiple":false,"targetEntities":["student"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]}]}]}]}}
@@ -1 +0,0 @@
1
- {"id":"financial-services-platform","name":"Financial Services Platform","description":"A comprehensive financial services platform with account management, transaction processing, customer management, investment portfolios, and compliance features. Perfect for banks, credit unions, and fintech companies.","createdAt":"2025-01-27T00:00:00.000Z","updatedAt":"2025-01-27T00:00:00.000Z","version":"1.0.0","author":"API Now! Core Team","tags":["finance","banking","investment","compliance","fraud-detection","kyc"],"structure":{"domain":{"name":"Financial Services Platform","description":"A comprehensive financial services platform with account management, transaction processing, customer management, investment portfolios, and compliance features","totalEntities":17,"totalProperties":127,"totalAssociations":17},"namespaces":[{"name":"User Management","displayName":"User & Authentication Management","description":"Unified user authentication, roles, and profile management for customers and employees","modelCount":2,"entityCount":6,"models":[{"name":"Authentication","displayName":"Authentication & Access Control","description":"User authentication, sessions, and access control","entityCount":2,"entities":[{"name":"user","displayName":"User","description":"Unified user entity for both customers and employees with role-based access","propertyCount":14,"associationCount":3,"properties":[{"name":"id","displayName":"User ID","description":"Unique identifier for the user","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"username","displayName":"Username","description":"Unique username for login","type":"string","required":true,"unique":true,"semantics":[]},{"name":"password","displayName":"Password","description":"User password (hashed)","type":"string","required":true,"writeOnly":true,"semantics":["Semantic#Password"]},{"name":"email","displayName":"Email Address","description":"User email address","type":"string","required":true,"unique":true,"semantics":["Semantic#Email"]},{"name":"first_name","displayName":"First Name","description":"User first name","type":"string","semantics":[]},{"name":"last_name","displayName":"Last Name","description":"User last name","type":"string","semantics":[]},{"name":"phone","displayName":"Phone Number","description":"User phone number","type":"string","semantics":["Semantic#Phone"]},{"name":"user_type","displayName":"User Type","description":"Type of user account","type":"string","required":true,"semantics":[],"enumValues":["customer","employee","admin","system"]},{"name":"role","displayName":"User Role","description":"User role defining permissions and access level","type":"string","required":true,"semantics":["Semantic#UserRole"],"enumValues":["individual_customer","business_customer","premium_customer","private_banking_customer","teller","loan_officer","relationship_manager","compliance_officer","branch_manager","investment_advisor","risk_analyst","system_admin","security_admin","audit_admin"]},{"name":"status","displayName":"User Status","description":"Current status of the user account","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["active","inactive","suspended","pending_verification","locked"],"defaultValue":"active"},{"name":"email_verified","displayName":"Email Verified","description":"Whether user email is verified","type":"boolean","required":true,"semantics":[]},{"name":"last_login","displayName":"Last Login","description":"When user last logged in","type":"datetime","semantics":[]},{"name":"created_at","displayName":"Created At","description":"When the user account was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]},{"name":"updated_at","displayName":"Updated At","description":"When the user account was last updated","type":"datetime","readOnly":true,"semantics":["Semantic#UpdatedTimestamp"]}],"associations":[{"name":"sessions","displayName":"User Sessions","description":"Active sessions for this user","required":false,"multiple":true,"targetEntities":["user_session"],"semantics":[],"cardinality":"One-to-Many"},{"name":"customer_profile","displayName":"Customer Profile","description":"Extended customer profile information","required":false,"multiple":false,"targetEntities":["customer_profile"],"semantics":[],"cardinality":"One-to-One"},{"name":"employee_profile","displayName":"Employee Profile","description":"Extended employee profile information","required":false,"multiple":false,"targetEntities":["employee_profile"],"semantics":[],"cardinality":"One-to-One"}],"semantics":["Semantic#User"]},{"name":"user_session","displayName":"User Session","description":"Active user authentication sessions","propertyCount":5,"associationCount":0,"properties":[{"name":"id","displayName":"Session ID","description":"Unique session identifier","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"token","displayName":"Session Token","description":"Authentication token for the session","type":"string","required":true,"writeOnly":true,"semantics":[]},{"name":"expires_at","displayName":"Expires At","description":"When the session expires","type":"datetime","required":true,"semantics":[]},{"name":"ip_address","displayName":"IP Address","description":"IP address of the session","type":"string","semantics":["Semantic#ClientIPAddress"]},{"name":"created_at","displayName":"Created At","description":"When the session was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[],"semantics":[]}]},{"name":"User Profiles","displayName":"User Profile Management","description":"Extended user profile information and preferences","entityCount":4,"entities":[{"name":"customer_profile","displayName":"Customer Profile","description":"Additional profile information specific to customers","propertyCount":10,"associationCount":0,"properties":[{"name":"id","displayName":"Profile ID","description":"Unique profile identifier","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"date_of_birth","displayName":"Date of Birth","description":"Customer date of birth","type":"date","required":true,"semantics":[]},{"name":"ssn","displayName":"Social Security Number","description":"Customer SSN for identification","type":"string","required":true,"writeOnly":true,"semantics":[]},{"name":"address","displayName":"Address","description":"Customer residential address","type":"string","required":true,"semantics":[]},{"name":"city","displayName":"City","description":"Customer city","type":"string","required":true,"semantics":[]},{"name":"state","displayName":"State","description":"Customer state","type":"string","required":true,"semantics":[]},{"name":"zip_code","displayName":"ZIP Code","description":"Customer ZIP code","type":"string","required":true,"semantics":[]},{"name":"customer_type","displayName":"Customer Type","description":"Type of customer account","type":"string","required":true,"semantics":[],"enumValues":["individual","business","trust","partnership"]},{"name":"created_at","displayName":"Created At","description":"When the customer profile was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]},{"name":"updated_at","displayName":"Updated At","description":"When the customer profile was last updated","type":"datetime","readOnly":true,"semantics":["Semantic#UpdatedTimestamp"]}],"associations":[],"semantics":[]},{"name":"employee_profile","displayName":"Employee Profile","description":"Additional profile information specific to employees","propertyCount":7,"associationCount":0,"properties":[{"name":"id","displayName":"Employee Profile ID","description":"Unique employee profile identifier","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"employee_id","displayName":"Employee ID","description":"Company employee identifier","type":"string","required":true,"unique":true,"semantics":[]},{"name":"department","displayName":"Department","description":"Employee department","type":"string","required":true,"semantics":[],"enumValues":["retail_banking","commercial_banking","investment_services","risk_management","compliance","operations","technology","human_resources","legal"]},{"name":"hire_date","displayName":"Hire Date","description":"Employee hire date","type":"date","required":true,"semantics":[]},{"name":"manager_id","displayName":"Manager ID","description":"Employee manager identifier","type":"string","semantics":[]},{"name":"created_at","displayName":"Created At","description":"When the employee profile was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]},{"name":"updated_at","displayName":"Updated At","description":"When the employee profile was last updated","type":"datetime","readOnly":true,"semantics":["Semantic#UpdatedTimestamp"]}],"associations":[],"semantics":[]},{"name":"kyc_record","displayName":"KYC Record","description":"Know Your Customer verification and documentation","propertyCount":7,"associationCount":1,"properties":[{"name":"id","displayName":"KYC ID","description":"Unique identifier for the KYC record","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"status","displayName":"KYC Status","description":"Current status of KYC verification","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["pending","verified","rejected","expired"],"defaultValue":"pending"},{"name":"verification_date","displayName":"Verification Date","description":"Date when KYC was verified","type":"date","semantics":[]},{"name":"document_type","displayName":"Document Type","description":"Type of identification document","type":"string","required":true,"semantics":[],"enumValues":["passport","drivers_license","national_id","utility_bill","bank_statement"]},{"name":"document_number","displayName":"Document Number","description":"Document identification number","type":"string","required":true,"semantics":[]},{"name":"created_at","displayName":"Created At","description":"When the KYC record was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]},{"name":"updated_at","displayName":"Updated At","description":"When the KYC record was last updated","type":"datetime","readOnly":true,"semantics":["Semantic#UpdatedTimestamp"]}],"associations":[{"name":"user","displayName":"User","description":"User for this KYC record","required":true,"multiple":false,"targetEntities":["user"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]},{"name":"risk_profile","displayName":"Risk Profile","description":"Customer risk assessment and scoring","propertyCount":7,"associationCount":1,"properties":[{"name":"id","displayName":"Risk Profile ID","description":"Unique identifier for the risk profile","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"risk_score","displayName":"Risk Score","description":"Numerical risk score (1-100)","type":"number","required":true,"semantics":[]},{"name":"status","displayName":"Risk Level","description":"Risk level classification","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["low","medium","high","very_high"],"defaultValue":"low"},{"name":"assessment_date","displayName":"Assessment Date","description":"Date when risk was assessed","type":"date","required":true,"semantics":[]},{"name":"description","displayName":"Description","description":"Risk assessment notes and factors","type":"string","semantics":["Semantic#Description"]},{"name":"created_at","displayName":"Created At","description":"When the risk profile was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]},{"name":"updated_at","displayName":"Updated At","description":"When the risk profile was last updated","type":"datetime","readOnly":true,"semantics":["Semantic#UpdatedTimestamp"]}],"associations":[{"name":"user","displayName":"User","description":"User for this risk profile","required":true,"multiple":false,"targetEntities":["user"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]}]}]},{"name":"AccountManagement","displayName":"Account Management","description":"Bank accounts, investment accounts, and credit cards","modelCount":1,"entityCount":3,"models":[{"name":"Accounts","displayName":"Account Management","description":"Financial accounts and products","entityCount":3,"entities":[{"name":"bank_account","displayName":"Bank Account","description":"Checking and savings accounts","propertyCount":9,"associationCount":1,"properties":[{"name":"id","displayName":"Account ID","description":"Unique identifier for the account","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"account_number","displayName":"Account Number","description":"Bank account number","type":"string","required":true,"unique":true,"semantics":[]},{"name":"routing_number","displayName":"Routing Number","description":"Bank routing number","type":"string","required":true,"semantics":[]},{"name":"account_type","displayName":"Account Type","description":"Type of bank account","type":"string","required":true,"semantics":[],"enumValues":["checking","savings","money_market","cd"]},{"name":"balance","displayName":"Account Balance","description":"Current account balance","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"available_balance","displayName":"Available Balance","description":"Available balance for transactions","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"status","displayName":"Account Status","description":"Current status of the account","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["active","inactive","frozen","closed"],"defaultValue":"active"},{"name":"created_at","displayName":"Created At","description":"When the account was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]},{"name":"updated_at","displayName":"Updated At","description":"When the account was last updated","type":"datetime","readOnly":true,"semantics":["Semantic#UpdatedTimestamp"]}],"associations":[{"name":"user","displayName":"Account Holder","description":"User who owns this account","required":true,"multiple":false,"targetEntities":["user"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]},{"name":"investment_account","displayName":"Investment Account","description":"Investment and brokerage accounts","propertyCount":7,"associationCount":1,"properties":[{"name":"id","displayName":"Investment Account ID","description":"Unique identifier for the investment account","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"account_number","displayName":"Account Number","description":"Investment account number","type":"string","required":true,"unique":true,"semantics":[]},{"name":"account_type","displayName":"Account Type","description":"Type of investment account","type":"string","required":true,"semantics":[],"enumValues":["individual","joint","ira","401k","roth_ira"]},{"name":"total_value","displayName":"Total Portfolio Value","description":"Total value of all investments","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"cash_balance","displayName":"Cash Balance","description":"Available cash balance","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"status","displayName":"Account Status","description":"Current status of the investment account","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["active","inactive","suspended","closed"],"defaultValue":"active"},{"name":"created_at","displayName":"Created At","description":"When the investment account was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"user","displayName":"Account Holder","description":"User who owns this investment account","required":true,"multiple":false,"targetEntities":["user"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]},{"name":"credit_card","displayName":"Credit Card","description":"Credit card accounts and lines of credit","propertyCount":8,"associationCount":1,"properties":[{"name":"id","displayName":"Credit Card ID","description":"Unique identifier for the credit card","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"card_number","displayName":"Card Number","description":"Credit card number (masked)","type":"string","required":true,"writeOnly":true,"semantics":[]},{"name":"credit_limit","displayName":"Credit Limit","description":"Total credit limit","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"available_credit","displayName":"Available Credit","description":"Available credit remaining","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"current_balance","displayName":"Current Balance","description":"Current outstanding balance","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"apr","displayName":"APR","description":"Annual Percentage Rate","type":"number","required":true,"semantics":[]},{"name":"status","displayName":"Card Status","description":"Current status of the credit card","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["active","inactive","suspended","closed"],"defaultValue":"active"},{"name":"created_at","displayName":"Created At","description":"When the credit card was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"user","displayName":"Cardholder","description":"User who owns this credit card","required":true,"multiple":false,"targetEntities":["user"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]}]}]},{"name":"Transaction Processing","displayName":"Transaction Processing","description":"Payments, transfers, deposits, and withdrawals","modelCount":1,"entityCount":2,"models":[{"name":"Transactions","displayName":"Transaction Management","description":"Financial transactions and transfers","entityCount":2,"entities":[{"name":"transaction","displayName":"Transaction","description":"Financial transaction record","propertyCount":9,"associationCount":2,"properties":[{"name":"id","displayName":"Transaction ID","description":"Unique identifier for the transaction","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"transaction_number","displayName":"Transaction Number","description":"Human-readable transaction number","type":"string","required":true,"unique":true,"semantics":[]},{"name":"status","displayName":"Transaction Status","description":"Current status of the transaction","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["pending","processing","completed","failed","cancelled"],"defaultValue":"pending"},{"name":"transaction_type","displayName":"Transaction Type","description":"Type of financial transaction","type":"string","required":true,"semantics":[],"enumValues":["deposit","withdrawal","transfer","payment","fee"]},{"name":"amount","displayName":"Transaction Amount","description":"Amount of the transaction","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"description","displayName":"Description","description":"Transaction description","type":"string","semantics":[]},{"name":"transaction_date","displayName":"Transaction Date","description":"Date when transaction occurred","type":"date","required":true,"semantics":[]},{"name":"reference_number","displayName":"Reference Number","description":"External reference number","type":"string","semantics":[]},{"name":"created_at","displayName":"Created At","description":"When the transaction was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"user","displayName":"User","description":"User who initiated the transaction","required":true,"multiple":false,"targetEntities":["user"],"semantics":[],"cardinality":"One-to-One"},{"name":"account","displayName":"Account","description":"Account involved in the transaction","required":true,"multiple":false,"targetEntities":["bank_account"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]},{"name":"transfer","displayName":"Transfer","description":"Money transfers between accounts","propertyCount":5,"associationCount":2,"properties":[{"name":"id","displayName":"Transfer ID","description":"Unique identifier for the transfer","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"status","displayName":"Transfer Status","description":"Current status of the transfer","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["pending","processing","completed","failed","cancelled"],"defaultValue":"pending"},{"name":"amount","displayName":"Transfer Amount","description":"Amount being transferred","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"transfer_date","displayName":"Transfer Date","description":"Date when transfer was initiated","type":"date","required":true,"semantics":[]},{"name":"created_at","displayName":"Created At","description":"When the transfer was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"from_account","displayName":"From Account","description":"Source account for the transfer","required":true,"multiple":false,"targetEntities":["bank_account"],"semantics":[],"cardinality":"One-to-One"},{"name":"to_account","displayName":"To Account","description":"Destination account for the transfer","required":true,"multiple":false,"targetEntities":["bank_account"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]}]}]},{"name":"Investment Portfolio","displayName":"Investment Portfolio","description":"Assets, positions, and performance tracking","modelCount":1,"entityCount":3,"models":[{"name":"Portfolios","displayName":"Portfolio Management","description":"Investment portfolios and assets","entityCount":3,"entities":[{"name":"asset","displayName":"Asset","description":"Investment asset (stocks, bonds, etc.)","propertyCount":7,"associationCount":0,"properties":[{"name":"id","displayName":"Asset ID","description":"Unique identifier for the asset","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"symbol","displayName":"Symbol","description":"Asset symbol/ticker","type":"string","required":true,"unique":true,"semantics":[]},{"name":"name","displayName":"Asset Name","description":"Name of the asset","type":"string","semantics":["Semantic#Title"]},{"name":"asset_type","displayName":"Asset Type","description":"Type of investment asset","type":"string","required":true,"semantics":[],"enumValues":["stock","bond","etf","mutual_fund","commodity","crypto"]},{"name":"current_price","displayName":"Current Price","description":"Current market price of the asset","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"market_cap","displayName":"Market Cap","description":"Market capitalization","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"created_at","displayName":"Created At","description":"When the asset was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[],"semantics":[]},{"name":"position","displayName":"Position","description":"Investment position in a portfolio","propertyCount":6,"associationCount":2,"properties":[{"name":"id","displayName":"Position ID","description":"Unique identifier for the position","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"quantity","displayName":"Quantity","description":"Number of shares/units held","type":"number","required":true,"semantics":[]},{"name":"average_cost","displayName":"Average Cost","description":"Average cost per share/unit","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"current_value","displayName":"Current Value","description":"Current market value of the position","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"unrealized_gain_loss","displayName":"Unrealized Gain/Loss","description":"Unrealized profit or loss","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"created_at","displayName":"Created At","description":"When the position was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"account","displayName":"Investment Account","description":"Account holding this position","required":true,"multiple":false,"targetEntities":["investment_account"],"semantics":[],"cardinality":"One-to-One"},{"name":"asset","displayName":"Asset","description":"Asset for this position","required":true,"multiple":false,"targetEntities":["asset"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]},{"name":"performance","displayName":"Performance","description":"Portfolio performance tracking","propertyCount":5,"associationCount":1,"properties":[{"name":"id","displayName":"Performance ID","description":"Unique identifier for the performance record","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"date","displayName":"Date","description":"Date of performance measurement","type":"date","required":true,"semantics":[]},{"name":"total_value","displayName":"Total Value","description":"Total portfolio value on this date","type":"number","required":true,"semantics":["Semantic#Currency"]},{"name":"return_percentage","displayName":"Return Percentage","description":"Percentage return","type":"number","required":true,"semantics":[]},{"name":"created_at","displayName":"Created At","description":"When the performance record was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"account","displayName":"Investment Account","description":"Account for this performance record","required":true,"multiple":false,"targetEntities":["investment_account"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]}]}]},{"name":"Compliance Reporting","displayName":"Compliance & Reporting","description":"Regulatory reporting and audit trails","modelCount":1,"entityCount":2,"models":[{"name":"Compliance","displayName":"Compliance Management","description":"Regulatory compliance and reporting","entityCount":2,"entities":[{"name":"audit_trail","displayName":"Audit Trail","description":"System audit trail for compliance","propertyCount":8,"associationCount":0,"properties":[{"name":"id","displayName":"Audit ID","description":"Unique identifier for the audit record","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"action","displayName":"Action","description":"Action performed","type":"string","required":true,"semantics":[]},{"name":"entity_type","displayName":"Entity Type","description":"Type of entity affected","type":"string","required":true,"semantics":[]},{"name":"entity_id","displayName":"Entity ID","description":"ID of the affected entity","type":"string","required":true,"semantics":[]},{"name":"user_id","displayName":"User ID","description":"User who performed the action","type":"string","required":true,"semantics":[]},{"name":"ip_address","displayName":"IP Address","description":"IP address of the user","type":"string","semantics":["Semantic#ClientIPAddress"]},{"name":"description","displayName":"Description","description":"Additional details about the action","type":"string","semantics":["Semantic#Description"]},{"name":"timestamp","displayName":"Timestamp","description":"When the action occurred","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[],"semantics":[]},{"name":"regulatory_report","displayName":"Regulatory Report","description":"Regulatory reporting requirements","propertyCount":7,"associationCount":0,"properties":[{"name":"id","displayName":"Report ID","description":"Unique identifier for the report","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"name","displayName":"Report Name","description":"Name of the regulatory report","type":"string","semantics":["Semantic#Title"]},{"name":"status","displayName":"Report Status","description":"Current status of the report","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["draft","submitted","approved","rejected"],"defaultValue":"draft"},{"name":"report_type","displayName":"Report Type","description":"Type of regulatory report","type":"string","required":true,"semantics":[],"enumValues":["suspicious_activity","large_transaction","annual_report","quarterly_report"]},{"name":"reporting_period","displayName":"Reporting Period","description":"Period covered by the report","type":"string","required":true,"semantics":[]},{"name":"description","displayName":"Description","description":"Report content and details","type":"string","semantics":["Semantic#Description"]},{"name":"created_at","displayName":"Created At","description":"When the report was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[],"semantics":[]}]}]},{"name":"FraudDetection","displayName":"Fraud Detection","description":"Transaction monitoring and risk scoring","modelCount":1,"entityCount":1,"models":[{"name":"FraudDetection","displayName":"Fraud Detection Management","description":"Fraud detection and monitoring","entityCount":1,"entities":[{"name":"fraud_alert","displayName":"Fraud Alert","description":"Fraud detection alerts and flags","propertyCount":6,"associationCount":2,"properties":[{"name":"id","displayName":"Alert ID","description":"Unique identifier for the fraud alert","type":"string","primary":true,"readOnly":true,"semantics":[]},{"name":"status","displayName":"Alert Status","description":"Current status of the fraud alert","type":"string","required":true,"semantics":["Semantic#Status"],"enumValues":["pending","investigating","resolved","false_positive"],"defaultValue":"pending"},{"name":"alert_type","displayName":"Alert Type","description":"Type of fraud alert","type":"string","required":true,"semantics":[],"enumValues":["suspicious_transaction","unusual_pattern","identity_theft","account_takeover"]},{"name":"risk_score","displayName":"Risk Score","description":"Risk score (1-100)","type":"number","required":true,"semantics":[]},{"name":"description","displayName":"Description","description":"Details about the fraud alert","type":"string","semantics":["Semantic#Description"]},{"name":"created_at","displayName":"Created At","description":"When the fraud alert was created","type":"datetime","readOnly":true,"semantics":["Semantic#CreatedTimestamp"]}],"associations":[{"name":"transaction","displayName":"Transaction","description":"Transaction that triggered the alert","required":false,"multiple":false,"targetEntities":["transaction"],"semantics":[],"cardinality":"One-to-One"},{"name":"user","displayName":"User","description":"User associated with the alert","required":true,"multiple":false,"targetEntities":["user"],"semantics":[],"cardinality":"One-to-One"}],"semantics":[]}]}]}]}}