@api-client/core 0.18.20 → 0.18.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/build/src/modeling/helpers/Intelisense.d.ts +1 -0
  2. package/build/src/modeling/helpers/Intelisense.d.ts.map +1 -1
  3. package/build/src/modeling/helpers/Intelisense.js +1 -0
  4. package/build/src/modeling/helpers/Intelisense.js.map +1 -1
  5. package/build/src/modeling/templates/index.d.ts +21 -0
  6. package/build/src/modeling/templates/index.d.ts.map +1 -0
  7. package/build/src/modeling/templates/index.js +176 -0
  8. package/build/src/modeling/templates/index.js.map +1 -0
  9. package/build/src/modeling/templates/meta/blog-publishing-platform.json +1 -0
  10. package/build/src/modeling/templates/meta/ecommerce-platform.json +1 -0
  11. package/build/src/modeling/templates/meta/education-management-platform.json +1 -0
  12. package/build/src/modeling/templates/meta/financial-services-platform.json +1 -0
  13. package/build/src/modeling/templates/meta/gaming-platform.json +1 -0
  14. package/build/src/modeling/templates/meta/healthcare-management-platform.json +1 -0
  15. package/build/src/modeling/templates/meta/hospitality-platform.json +1 -0
  16. package/build/src/modeling/templates/meta/index.d.ts +56 -0
  17. package/build/src/modeling/templates/meta/index.d.ts.map +1 -0
  18. package/build/src/modeling/templates/meta/index.js +120 -0
  19. package/build/src/modeling/templates/meta/index.js.map +1 -0
  20. package/build/src/modeling/templates/meta/iot-smart-home-platform.json +1 -0
  21. package/build/src/modeling/templates/meta/legal-services-platform.json +1 -0
  22. package/build/src/modeling/templates/meta/manufacturing-platform.json +1 -0
  23. package/build/src/modeling/templates/meta/non-profit-platform.json +1 -0
  24. package/build/src/modeling/templates/meta/real-estate-management-platform.json +1 -0
  25. package/build/src/modeling/templates/template-registry.d.ts +55 -0
  26. package/build/src/modeling/templates/template-registry.d.ts.map +1 -0
  27. package/build/src/modeling/templates/template-registry.js +111 -0
  28. package/build/src/modeling/templates/template-registry.js.map +1 -0
  29. package/build/src/modeling/templates/types.d.ts +158 -0
  30. package/build/src/modeling/templates/types.d.ts.map +1 -1
  31. package/build/src/modeling/templates/types.js.map +1 -1
  32. package/build/src/modeling/templates/{ecommerce-domain.d.ts → verticals/business-services/ecommerce-domain.d.ts} +2 -2
  33. package/build/src/modeling/templates/verticals/business-services/ecommerce-domain.d.ts.map +1 -0
  34. package/build/src/modeling/templates/{ecommerce-domain.js → verticals/business-services/ecommerce-domain.js} +6 -6
  35. package/build/src/modeling/templates/verticals/business-services/ecommerce-domain.js.map +1 -0
  36. package/build/src/modeling/templates/verticals/business-services/financial-services-domain.d.ts +40 -0
  37. package/build/src/modeling/templates/verticals/business-services/financial-services-domain.d.ts.map +1 -0
  38. package/build/src/modeling/templates/verticals/business-services/financial-services-domain.js +744 -0
  39. package/build/src/modeling/templates/verticals/business-services/financial-services-domain.js.map +1 -0
  40. package/build/src/modeling/templates/verticals/business-services/hospitality-domain.d.ts +45 -0
  41. package/build/src/modeling/templates/verticals/business-services/hospitality-domain.d.ts.map +1 -0
  42. package/build/src/modeling/templates/verticals/business-services/hospitality-domain.js +797 -0
  43. package/build/src/modeling/templates/verticals/business-services/hospitality-domain.js.map +1 -0
  44. package/build/src/modeling/templates/verticals/business-services/index.d.ts +21 -0
  45. package/build/src/modeling/templates/verticals/business-services/index.d.ts.map +1 -0
  46. package/build/src/modeling/templates/verticals/business-services/index.js +50 -0
  47. package/build/src/modeling/templates/verticals/business-services/index.js.map +1 -0
  48. package/build/src/modeling/templates/verticals/business-services/legal-services-domain.d.ts +46 -0
  49. package/build/src/modeling/templates/verticals/business-services/legal-services-domain.d.ts.map +1 -0
  50. package/build/src/modeling/templates/verticals/business-services/legal-services-domain.js +837 -0
  51. package/build/src/modeling/templates/verticals/business-services/legal-services-domain.js.map +1 -0
  52. package/build/src/modeling/templates/verticals/education-training/education-domain.d.ts +40 -0
  53. package/build/src/modeling/templates/verticals/education-training/education-domain.d.ts.map +1 -0
  54. package/build/src/modeling/templates/verticals/education-training/education-domain.js +725 -0
  55. package/build/src/modeling/templates/verticals/education-training/education-domain.js.map +1 -0
  56. package/build/src/modeling/templates/verticals/education-training/index.d.ts +18 -0
  57. package/build/src/modeling/templates/verticals/education-training/index.d.ts.map +1 -0
  58. package/build/src/modeling/templates/verticals/education-training/index.js +21 -0
  59. package/build/src/modeling/templates/verticals/education-training/index.js.map +1 -0
  60. package/build/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.d.ts +40 -0
  61. package/build/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.d.ts.map +1 -0
  62. package/build/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.js +859 -0
  63. package/build/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.js.map +1 -0
  64. package/build/src/modeling/templates/verticals/healthcare-life-sciences/index.d.ts +18 -0
  65. package/build/src/modeling/templates/verticals/healthcare-life-sciences/index.d.ts.map +1 -0
  66. package/build/src/modeling/templates/verticals/healthcare-life-sciences/index.js +21 -0
  67. package/build/src/modeling/templates/verticals/healthcare-life-sciences/index.js.map +1 -0
  68. package/build/src/modeling/templates/verticals/index.d.ts +79 -0
  69. package/build/src/modeling/templates/verticals/index.d.ts.map +1 -0
  70. package/build/src/modeling/templates/verticals/index.js +186 -0
  71. package/build/src/modeling/templates/verticals/index.js.map +1 -0
  72. package/build/src/modeling/templates/verticals/manufacturing-logistics/index.d.ts +18 -0
  73. package/build/src/modeling/templates/verticals/manufacturing-logistics/index.d.ts.map +1 -0
  74. package/build/src/modeling/templates/verticals/manufacturing-logistics/index.js +22 -0
  75. package/build/src/modeling/templates/verticals/manufacturing-logistics/index.js.map +1 -0
  76. package/build/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.d.ts +45 -0
  77. package/build/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.d.ts.map +1 -0
  78. package/build/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.js +710 -0
  79. package/build/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.js.map +1 -0
  80. package/build/src/modeling/templates/verticals/public-sector/index.d.ts +18 -0
  81. package/build/src/modeling/templates/verticals/public-sector/index.d.ts.map +1 -0
  82. package/build/src/modeling/templates/verticals/public-sector/index.js +22 -0
  83. package/build/src/modeling/templates/verticals/public-sector/index.js.map +1 -0
  84. package/build/src/modeling/templates/verticals/public-sector/non-profit-domain.d.ts +47 -0
  85. package/build/src/modeling/templates/verticals/public-sector/non-profit-domain.d.ts.map +1 -0
  86. package/build/src/modeling/templates/verticals/public-sector/non-profit-domain.js +864 -0
  87. package/build/src/modeling/templates/verticals/public-sector/non-profit-domain.js.map +1 -0
  88. package/build/src/modeling/templates/verticals/real-estate-construction/index.d.ts +18 -0
  89. package/build/src/modeling/templates/verticals/real-estate-construction/index.d.ts.map +1 -0
  90. package/build/src/modeling/templates/verticals/real-estate-construction/index.js +21 -0
  91. package/build/src/modeling/templates/verticals/real-estate-construction/index.js.map +1 -0
  92. package/build/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.d.ts +40 -0
  93. package/build/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.d.ts.map +1 -0
  94. package/build/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.js +727 -0
  95. package/build/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.js.map +1 -0
  96. package/build/src/modeling/templates/{blog-domain.d.ts → verticals/technology-media/blog-domain.d.ts} +2 -2
  97. package/build/src/modeling/templates/verticals/technology-media/blog-domain.d.ts.map +1 -0
  98. package/build/src/modeling/templates/{blog-domain.js → verticals/technology-media/blog-domain.js} +5 -5
  99. package/build/src/modeling/templates/verticals/technology-media/blog-domain.js.map +1 -0
  100. package/build/src/modeling/templates/verticals/technology-media/gaming-domain.d.ts +46 -0
  101. package/build/src/modeling/templates/verticals/technology-media/gaming-domain.d.ts.map +1 -0
  102. package/build/src/modeling/templates/verticals/technology-media/gaming-domain.js +1033 -0
  103. package/build/src/modeling/templates/verticals/technology-media/gaming-domain.js.map +1 -0
  104. package/build/src/modeling/templates/verticals/technology-media/index.d.ts +21 -0
  105. package/build/src/modeling/templates/verticals/technology-media/index.d.ts.map +1 -0
  106. package/build/src/modeling/templates/verticals/technology-media/index.js +42 -0
  107. package/build/src/modeling/templates/verticals/technology-media/index.js.map +1 -0
  108. package/build/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.d.ts +47 -0
  109. package/build/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.d.ts.map +1 -0
  110. package/build/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.js +1027 -0
  111. package/build/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.js.map +1 -0
  112. package/build/tsconfig.tsbuildinfo +1 -1
  113. package/data/models/example-generator-api.json +6 -6
  114. package/package.json +1 -1
  115. package/src/modeling/helpers/Intelisense.ts +1 -0
  116. package/src/modeling/templates/meta/blog-publishing-platform.json +1 -0
  117. package/src/modeling/templates/meta/ecommerce-platform.json +1 -0
  118. package/src/modeling/templates/meta/education-management-platform.json +1 -0
  119. package/src/modeling/templates/meta/financial-services-platform.json +1 -0
  120. package/src/modeling/templates/meta/gaming-platform.json +1 -0
  121. package/src/modeling/templates/meta/healthcare-management-platform.json +1 -0
  122. package/src/modeling/templates/meta/hospitality-platform.json +1 -0
  123. package/src/modeling/templates/meta/iot-smart-home-platform.json +1 -0
  124. package/src/modeling/templates/meta/legal-services-platform.json +1 -0
  125. package/src/modeling/templates/meta/manufacturing-platform.json +1 -0
  126. package/src/modeling/templates/meta/non-profit-platform.json +1 -0
  127. package/src/modeling/templates/meta/real-estate-management-platform.json +1 -0
  128. package/src/modeling/templates/readme.md +260 -0
  129. package/src/modeling/templates/template-registry.ts +140 -0
  130. package/src/modeling/templates/types.ts +166 -0
  131. package/src/modeling/templates/verticals/README.md +122 -0
  132. package/src/modeling/templates/{ecommerce-domain.ts → verticals/business-services/ecommerce-domain.ts} +7 -7
  133. package/src/modeling/templates/verticals/business-services/financial-services-domain.ts +943 -0
  134. package/src/modeling/templates/verticals/business-services/hospitality-domain.ts +994 -0
  135. package/src/modeling/templates/verticals/business-services/legal-services-domain.ts +1059 -0
  136. package/src/modeling/templates/verticals/education-training/education-domain.ts +922 -0
  137. package/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.ts +1111 -0
  138. package/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.ts +895 -0
  139. package/src/modeling/templates/verticals/public-sector/non-profit-domain.ts +1109 -0
  140. package/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.ts +944 -0
  141. package/src/modeling/templates/{blog-domain.ts → verticals/technology-media/blog-domain.ts} +6 -6
  142. package/src/modeling/templates/verticals/technology-media/gaming-domain.ts +1290 -0
  143. package/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.ts +1287 -0
  144. package/build/src/modeling/templates/blog-domain.d.ts.map +0 -1
  145. package/build/src/modeling/templates/blog-domain.js.map +0 -1
  146. package/build/src/modeling/templates/ecommerce-domain.d.ts.map +0 -1
  147. package/build/src/modeling/templates/ecommerce-domain.js.map +0 -1
@@ -0,0 +1 @@
1
+ { "id": "healthcare-management-platform", "name": "Healthcare Management Platform", "description": "A comprehensive healthcare management platform with patient care, provider management, appointment scheduling, medical records, and insurance billing. Perfect for hospitals, clinics, and healthcare providers.", "createdAt": "2025-01-27T00:00:00.000Z", "updatedAt": "2025-01-27T00:00:00.000Z", "version": "1.0.0", "author": "API Now! Core Team", "tags": ["healthcare", "medical", "patient-care", "appointments", "billing", "compliance"], "structure": { "domain": { "name": "Healthcare Management Platform", "description": "A comprehensive healthcare management platform with patient care, provider management, appointment scheduling, and medical records", "totalEntities": 14, "totalProperties": 118, "totalAssociations": 23 }, "namespaces": [{ "name": "PatientCare", "displayName": "Patient Care", "description": "Patient management, demographics, and medical history", "modelCount": 1, "entityCount": 2, "models": [{ "name": "Patients", "displayName": "Patient Management", "description": "Patient records and demographic information", "entityCount": 2, "entities": [{ "name": "patient", "displayName": "Patient", "description": "Patient record with demographic and medical information", "propertyCount": 15, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Patient ID", "description": "Unique identifier for the patient", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "mrn", "displayName": "Medical Record Number", "description": "Medical record number for the patient", "type": "string", "required": true, "unique": true, "semantics": [] }, { "name": "first_name", "displayName": "First Name", "description": "Patient first name", "type": "string", "semantics": [] }, { "name": "last_name", "displayName": "Last Name", "description": "Patient last name", "type": "string", "semantics": [] }, { "name": "date_of_birth", "displayName": "Date of Birth", "description": "Patient date of birth", "type": "date", "required": true, "semantics": [] }, { "name": "gender", "displayName": "Gender", "description": "Patient gender identity", "type": "string", "required": true, "semantics": [], "enumValues": ["male", "female", "other", "prefer_not_to_say"] }, { "name": "phone", "displayName": "Phone Number", "description": "Patient primary phone number", "type": "string", "semantics": ["Semantic#Phone"] }, { "name": "email", "displayName": "Email Address", "description": "Patient email address", "type": "string", "required": true, "semantics": ["Semantic#Email"] }, { "name": "emergency_contact_name", "displayName": "Emergency Contact Name", "description": "Name of emergency contact", "type": "string", "semantics": [] }, { "name": "blood_type", "displayName": "Blood Type", "description": "Patient blood type", "type": "string", "semantics": [], "enumValues": ["A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"] }, { "name": "allergies", "displayName": "Allergies", "description": "Known allergies and reactions", "type": "string", "semantics": [] }, { "name": "medical_history", "displayName": "Medical History", "description": "Summary of medical history", "type": "string", "semantics": ["Semantic#Summary"] }, { "name": "status", "displayName": "Patient Status", "description": "Current status of the patient", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "inactive", "deceased"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the patient record was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }, { "name": "updated_at", "displayName": "Updated At", "description": "When the patient record was last updated", "type": "datetime", "readOnly": true, "semantics": ["Semantic#UpdatedTimestamp"] }], "associations": [{ "name": "addresses", "displayName": "Patient Addresses", "description": "Addresses associated with the patient", "required": false, "multiple": true, "targetEntities": ["address"], "semantics": [], "cardinality": "One-to-Many" }], "semantics": [] }, { "name": "address", "displayName": "Address", "description": "Patient address information", "propertyCount": 8, "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 (home, work, billing)", "type": "string", "required": true, "semantics": [], "enumValues": ["home", "work", "billing", "mailing"] }, { "name": "line1", "displayName": "Address Line 1", "description": "Primary street address", "type": "string", "required": true, "semantics": [] }, { "name": "line2", "displayName": "Address Line 2", "description": "Secondary address information", "type": "string", "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": "ProviderManagement", "displayName": "Provider Management", "description": "Healthcare providers, staff, and facility management", "modelCount": 1, "entityCount": 2, "models": [{ "name": "Providers", "displayName": "Provider Management", "description": "Healthcare providers and staff", "entityCount": 2, "entities": [{ "name": "provider", "displayName": "Healthcare Provider", "description": "Healthcare provider or medical staff member", "propertyCount": 12, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Provider ID", "description": "Unique identifier for the provider", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "first_name", "displayName": "First Name", "description": "Provider first name", "type": "string", "semantics": [] }, { "name": "last_name", "displayName": "Last Name", "description": "Provider last name", "type": "string", "semantics": [] }, { "name": "npi", "displayName": "NPI Number", "description": "National Provider Identifier", "type": "string", "required": true, "unique": true, "semantics": [] }, { "name": "license_number", "displayName": "License Number", "description": "Medical license number", "type": "string", "required": true, "semantics": [] }, { "name": "email", "displayName": "Email Address", "description": "Provider email address", "type": "string", "required": true, "semantics": ["Semantic#Email"] }, { "name": "phone", "displayName": "Phone Number", "description": "Provider phone number", "type": "string", "semantics": ["Semantic#Phone"] }, { "name": "status", "displayName": "Provider Status", "description": "Current status of the provider", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "inactive", "suspended"], "defaultValue": "active" }, { "name": "provider_type", "displayName": "Provider Type", "description": "Type of healthcare provider", "type": "string", "required": true, "semantics": [], "enumValues": ["doctor", "nurse", "specialist", "therapist", "technician"] }, { "name": "specialty", "displayName": "Medical Specialty", "description": "Medical specialty or area of expertise", "type": "string", "required": false, "semantics": [], "enumValues": ["cardiology", "dermatology", "neurology", "orthopedics", "pediatrics", "general"] }, { "name": "created_at", "displayName": "Created At", "description": "When the provider record was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }, { "name": "updated_at", "displayName": "Updated At", "description": "When the provider record was last updated", "type": "datetime", "readOnly": true, "semantics": ["Semantic#UpdatedTimestamp"] }], "associations": [{ "name": "facilities", "displayName": "Provider Facilities", "description": "Facilities where this provider works", "required": false, "multiple": true, "targetEntities": ["facility"], "semantics": [], "cardinality": "One-to-Many" }], "semantics": [] }, { "name": "facility", "displayName": "Healthcare Facility", "description": "Hospital, clinic, or medical facility", "propertyCount": 8, "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 healthcare facility", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Description of the facility and services offered", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "facility_type", "displayName": "Facility Type", "description": "Type of healthcare facility", "type": "string", "required": true, "semantics": [], "enumValues": ["hospital", "clinic", "urgent_care", "specialty_center", "laboratory"] }, { "name": "phone", "displayName": "Phone Number", "description": "Facility phone number", "type": "string", "semantics": ["Semantic#Phone"] }, { "name": "address", "displayName": "Facility Address", "description": "Physical address of the facility", "type": "string", "required": true, "semantics": [] }, { "name": "status", "displayName": "Facility Status", "description": "Current status of the facility", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "inactive", "temporary_closed"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the facility record was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [], "semantics": [] }] }] }, { "name": "AppointmentScheduling", "displayName": "Appointment Scheduling", "description": "Appointment booking, scheduling, and availability management", "modelCount": 2, "entityCount": 2, "models": [{ "name": "Appointments", "displayName": "Appointment Management", "description": "Patient appointments and scheduling", "entityCount": 1, "entities": [{ "name": "appointment", "displayName": "Appointment", "description": "Patient appointment with healthcare provider", "propertyCount": 10, "associationCount": 3, "properties": [{ "name": "id", "displayName": "Appointment ID", "description": "Unique identifier for the appointment", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "appointment_date", "displayName": "Appointment Date", "description": "Date of the appointment", "type": "date", "required": true, "semantics": [] }, { "name": "start_time", "displayName": "Start Time", "description": "Appointment start time", "type": "time", "required": true, "semantics": [] }, { "name": "end_time", "displayName": "End Time", "description": "Appointment end time", "type": "time", "required": true, "semantics": [] }, { "name": "duration_minutes", "displayName": "Duration (Minutes)", "description": "Appointment duration in minutes", "type": "number", "required": true, "semantics": [] }, { "name": "status", "displayName": "Appointment Status", "description": "Current status of the appointment", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["scheduled", "confirmed", "in_progress", "completed", "cancelled", "no_show"], "defaultValue": "scheduled" }, { "name": "reason", "displayName": "Appointment Reason", "description": "Reason for the appointment", "type": "string", "semantics": [] }, { "name": "notes", "displayName": "Appointment Notes", "description": "Additional notes for the appointment", "type": "string", "semantics": [] }, { "name": "created_at", "displayName": "Created At", "description": "When the appointment was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }, { "name": "updated_at", "displayName": "Updated At", "description": "When the appointment was last updated", "type": "datetime", "readOnly": true, "semantics": ["Semantic#UpdatedTimestamp"] }], "associations": [{ "name": "patient", "displayName": "Patient", "description": "Patient for this appointment", "required": true, "multiple": false, "targetEntities": ["patient"], "semantics": [], "cardinality": "One-to-One" }, { "name": "provider", "displayName": "Provider", "description": "Healthcare provider for this appointment", "required": true, "multiple": false, "targetEntities": ["provider"], "semantics": [], "cardinality": "One-to-One" }, { "name": "facility", "displayName": "Facility", "description": "Facility where appointment takes place", "required": true, "multiple": false, "targetEntities": ["facility"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }] }, { "name": "Availability", "displayName": "Provider Availability", "description": "Provider availability and scheduling rules", "entityCount": 1, "entities": [{ "name": "provider_availability", "displayName": "Provider Availability", "description": "Provider availability schedule and rules", "propertyCount": 5, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Availability ID", "description": "Unique identifier for availability", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "day_of_week", "displayName": "Day of Week", "description": "Day of the week for availability", "type": "string", "required": true, "semantics": [], "enumValues": ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"] }, { "name": "start_time", "displayName": "Start Time", "description": "Start time for availability", "type": "time", "required": true, "semantics": [] }, { "name": "end_time", "displayName": "End Time", "description": "End time for availability", "type": "time", "required": true, "semantics": [] }, { "name": "is_available", "displayName": "Is Available", "description": "Whether the provider is available during this time", "type": "boolean", "required": true, "semantics": [], "defaultValue": "true" }], "associations": [{ "name": "provider", "displayName": "Provider", "description": "Provider for this availability", "required": true, "multiple": false, "targetEntities": ["provider"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }] }] }, { "name": "MedicalRecords", "displayName": "Medical Records", "description": "Medical records, diagnoses, treatments, and lab results", "modelCount": 1, "entityCount": 4, "models": [{ "name": "MedicalRecords", "displayName": "Medical Records Management", "description": "Patient medical records and documentation", "entityCount": 4, "entities": [{ "name": "diagnosis", "displayName": "Diagnosis", "description": "Medical diagnosis for a patient", "propertyCount": 7, "associationCount": 2, "properties": [{ "name": "id", "displayName": "Diagnosis ID", "description": "Unique identifier for the diagnosis", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "icd_code", "displayName": "ICD Code", "description": "International Classification of Diseases code", "type": "string", "required": true, "semantics": [] }, { "name": "diagnosis_name", "displayName": "Diagnosis Name", "description": "Name of the diagnosis", "type": "string", "required": true, "semantics": [] }, { "name": "description", "displayName": "Description", "description": "Detailed description of the diagnosis", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "diagnosis_date", "displayName": "Diagnosis Date", "description": "Date when diagnosis was made", "type": "date", "required": true, "semantics": [] }, { "name": "status", "displayName": "Diagnosis Status", "description": "Current status of the diagnosis", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "resolved", "chronic"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the diagnosis was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "patient", "displayName": "Patient", "description": "Patient with this diagnosis", "required": true, "multiple": false, "targetEntities": ["patient"], "semantics": [], "cardinality": "One-to-One" }, { "name": "provider", "displayName": "Provider", "description": "Provider who made the diagnosis", "required": true, "multiple": false, "targetEntities": ["provider"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }, { "name": "treatment", "displayName": "Treatment", "description": "Medical treatment or procedure", "propertyCount": 6, "associationCount": 3, "properties": [{ "name": "id", "displayName": "Treatment ID", "description": "Unique identifier for the treatment", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Treatment Name", "description": "Name of the treatment or procedure", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Detailed description of the treatment", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "treatment_date", "displayName": "Treatment Date", "description": "Date when treatment was performed", "type": "date", "required": true, "semantics": [] }, { "name": "status", "displayName": "Treatment Status", "description": "Current status of the treatment", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["planned", "in_progress", "completed", "cancelled"], "defaultValue": "planned" }, { "name": "created_at", "displayName": "Created At", "description": "When the treatment was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "patient", "displayName": "Patient", "description": "Patient receiving the treatment", "required": true, "multiple": false, "targetEntities": ["patient"], "semantics": [], "cardinality": "One-to-One" }, { "name": "provider", "displayName": "Provider", "description": "Provider performing the treatment", "required": true, "multiple": false, "targetEntities": ["provider"], "semantics": [], "cardinality": "One-to-One" }, { "name": "diagnoses", "displayName": "Related Diagnoses", "description": "Diagnoses related to this treatment", "required": false, "multiple": true, "targetEntities": ["diagnosis"], "semantics": [], "cardinality": "One-to-Many" }], "semantics": [] }, { "name": "prescription", "displayName": "Prescription", "description": "Medication prescription", "propertyCount": 8, "associationCount": 2, "properties": [{ "name": "id", "displayName": "Prescription ID", "description": "Unique identifier for the prescription", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "medication_name", "displayName": "Medication Name", "description": "Name of the prescribed medication", "type": "string", "required": true, "semantics": [] }, { "name": "dosage", "displayName": "Dosage", "description": "Prescribed dosage information", "type": "string", "required": true, "semantics": [] }, { "name": "frequency", "displayName": "Frequency", "description": "How often to take the medication", "type": "string", "required": true, "semantics": [] }, { "name": "duration_days", "displayName": "Duration (Days)", "description": "Duration of prescription in days", "type": "number", "required": true, "semantics": [] }, { "name": "prescribed_date", "displayName": "Prescribed Date", "description": "Date when medication was prescribed", "type": "date", "required": true, "semantics": [] }, { "name": "status", "displayName": "Prescription Status", "description": "Current status of the prescription", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "completed", "discontinued"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the prescription was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "patient", "displayName": "Patient", "description": "Patient prescribed the medication", "required": true, "multiple": false, "targetEntities": ["patient"], "semantics": [], "cardinality": "One-to-One" }, { "name": "provider", "displayName": "Provider", "description": "Provider who prescribed the medication", "required": true, "multiple": false, "targetEntities": ["provider"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }, { "name": "lab_result", "displayName": "Lab Result", "description": "Laboratory test results", "propertyCount": 8, "associationCount": 2, "properties": [{ "name": "id", "displayName": "Lab Result ID", "description": "Unique identifier for the lab result", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Test Name", "description": "Name of the laboratory test", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "test_date", "displayName": "Test Date", "description": "Date when the test was performed", "type": "date", "required": true, "semantics": [] }, { "name": "result_value", "displayName": "Result Value", "description": "Numerical or text result value", "type": "string", "required": true, "semantics": [] }, { "name": "reference_range", "displayName": "Reference Range", "description": "Normal reference range for the test", "type": "string", "semantics": [] }, { "name": "status", "displayName": "Result Status", "description": "Status of the lab result", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["normal", "abnormal", "critical", "pending"], "defaultValue": "normal" }, { "name": "description", "displayName": "Description", "description": "Additional notes about the lab result", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "created_at", "displayName": "Created At", "description": "When the lab result was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "patient", "displayName": "Patient", "description": "Patient for this lab result", "required": true, "multiple": false, "targetEntities": ["patient"], "semantics": [], "cardinality": "One-to-One" }, { "name": "provider", "displayName": "Provider", "description": "Provider who ordered the test", "required": true, "multiple": false, "targetEntities": ["provider"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }] }] }, { "name": "InsuranceBilling", "displayName": "Insurance & Billing", "description": "Insurance coverage, claims, and billing management", "modelCount": 2, "entityCount": 4, "models": [{ "name": "Insurance", "displayName": "Insurance Management", "description": "Insurance coverage and policy information", "entityCount": 2, "entities": [{ "name": "insurance_policy", "displayName": "Insurance Policy", "description": "Patient insurance policy information", "propertyCount": 9, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Policy ID", "description": "Unique identifier for the policy", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "policy_number", "displayName": "Policy Number", "description": "Insurance policy number", "type": "string", "required": true, "unique": true, "semantics": [] }, { "name": "name", "displayName": "Insurance Provider", "description": "Name of the insurance provider", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "status", "displayName": "Policy Status", "description": "Current status of the insurance policy", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "inactive", "expired", "pending"], "defaultValue": "active" }, { "name": "effective_date", "displayName": "Effective Date", "description": "Date when policy becomes effective", "type": "date", "required": true, "semantics": [] }, { "name": "expiration_date", "displayName": "Expiration Date", "description": "Date when policy expires", "type": "date", "required": true, "semantics": [] }, { "name": "deductible", "displayName": "Deductible Amount", "description": "Annual deductible amount", "type": "number", "required": true, "semantics": ["Semantic#Currency"] }, { "name": "copay", "displayName": "Copay Amount", "description": "Copay amount for office visits", "type": "number", "required": true, "semantics": ["Semantic#Currency"] }, { "name": "created_at", "displayName": "Created At", "description": "When the policy was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "patient", "displayName": "Patient", "description": "Patient covered by this policy", "required": true, "multiple": false, "targetEntities": ["patient"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }, { "name": "claim", "displayName": "Insurance Claim", "description": "Insurance claim for medical services", "propertyCount": 8, "associationCount": 3, "properties": [{ "name": "id", "displayName": "Claim ID", "description": "Unique identifier for the claim", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "claim_number", "displayName": "Claim Number", "description": "Insurance claim number", "type": "string", "required": true, "unique": true, "semantics": [] }, { "name": "billed_amount", "displayName": "Billed Amount", "description": "Amount billed to insurance", "type": "number", "required": true, "semantics": ["Semantic#Currency"] }, { "name": "approved_amount", "displayName": "Approved Amount", "description": "Amount approved by insurance", "type": "number", "required": true, "semantics": ["Semantic#Currency"] }, { "name": "patient_responsibility", "displayName": "Patient Responsibility", "description": "Amount patient is responsible for", "type": "number", "required": true, "semantics": ["Semantic#Currency"] }, { "name": "status", "displayName": "Claim Status", "description": "Current status of the insurance claim", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["submitted", "processing", "approved", "denied", "paid"], "defaultValue": "submitted" }, { "name": "service_date", "displayName": "Service Date", "description": "Date when service was provided", "type": "date", "required": true, "semantics": [] }, { "name": "created_at", "displayName": "Created At", "description": "When the claim was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "patient", "displayName": "Patient", "description": "Patient for this claim", "required": true, "multiple": false, "targetEntities": ["patient"], "semantics": [], "cardinality": "One-to-One" }, { "name": "provider", "displayName": "Provider", "description": "Provider who provided the service", "required": true, "multiple": false, "targetEntities": ["provider"], "semantics": [], "cardinality": "One-to-One" }, { "name": "insurance_policy", "displayName": "Insurance Policy", "description": "Insurance policy for this claim", "required": true, "multiple": false, "targetEntities": ["insurance_policy"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }] }, { "name": "Billing", "displayName": "Billing Management", "description": "Patient billing and payment processing", "entityCount": 2, "entities": [{ "name": "invoice", "displayName": "Invoice", "description": "Patient invoice for medical services", "propertyCount": 8, "associationCount": 2, "properties": [{ "name": "id", "displayName": "Invoice ID", "description": "Unique identifier for the invoice", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "invoice_number", "displayName": "Invoice Number", "description": "Human-readable invoice number", "type": "string", "required": true, "unique": true, "semantics": [] }, { "name": "total_amount", "displayName": "Total Amount", "description": "Total amount due on the invoice", "type": "number", "required": true, "semantics": ["Semantic#Currency"] }, { "name": "paid_amount", "displayName": "Paid Amount", "description": "Amount already paid", "type": "number", "required": true, "semantics": ["Semantic#Currency"] }, { "name": "balance_due", "displayName": "Balance Due", "description": "Remaining balance due", "type": "number", "required": true, "semantics": ["Semantic#Currency"] }, { "name": "status", "displayName": "Invoice Status", "description": "Current status of the invoice", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["draft", "sent", "paid", "overdue", "cancelled"], "defaultValue": "draft" }, { "name": "due_date", "displayName": "Due Date", "description": "Date when payment is due", "type": "date", "required": true, "semantics": [] }, { "name": "created_at", "displayName": "Created At", "description": "When the invoice was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "patient", "displayName": "Patient", "description": "Patient for this invoice", "required": true, "multiple": false, "targetEntities": ["patient"], "semantics": [], "cardinality": "One-to-One" }, { "name": "provider", "displayName": "Provider", "description": "Provider who provided the services", "required": true, "multiple": false, "targetEntities": ["provider"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }, { "name": "payment", "displayName": "Payment", "description": "Payment transaction for medical services", "propertyCount": 6, "associationCount": 2, "properties": [{ "name": "id", "displayName": "Payment ID", "description": "Unique identifier for the payment", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "amount", "displayName": "Payment Amount", "description": "Amount of the payment", "type": "number", "required": true, "semantics": ["Semantic#Currency"] }, { "name": "payment_method", "displayName": "Payment Method", "description": "Method used for payment", "type": "string", "required": true, "semantics": [], "enumValues": ["cash", "check", "credit_card", "debit_card", "insurance", "bank_transfer"] }, { "name": "status", "displayName": "Payment Status", "description": "Current status of the payment", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["pending", "completed", "failed", "refunded"], "defaultValue": "pending" }, { "name": "payment_date", "displayName": "Payment Date", "description": "Date when payment was made", "type": "date", "required": true, "semantics": [] }, { "name": "created_at", "displayName": "Created At", "description": "When the payment was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "patient", "displayName": "Patient", "description": "Patient who made the payment", "required": true, "multiple": false, "targetEntities": ["patient"], "semantics": [], "cardinality": "One-to-One" }, { "name": "invoice", "displayName": "Invoice", "description": "Invoice this payment applies to", "required": true, "multiple": false, "targetEntities": ["invoice"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }] }] }] } }
@@ -0,0 +1 @@
1
+ { "id": "hospitality-platform", "name": "Hospitality Platform", "description": "A comprehensive hospitality platform with guest management, reservations, property management, services, revenue optimization, and operations", "createdAt": "2025-01-27T00:00:00.000Z", "updatedAt": "2025-01-27T00:00:00.000Z", "version": "1.0.0", "author": "API Now! Core Team", "tags": ["hospitality", "hotel", "guest-management", "reservations", "revenue-management"], "structure": { "domain": { "name": "Hospitality Platform", "description": "A comprehensive hospitality platform with guest management, reservations, property management, services, revenue optimization, and operations", "totalEntities": 15, "totalProperties": 122, "totalAssociations": 9 }, "namespaces": [{ "name": "GuestManagement", "displayName": "Guest Management", "description": "Guest profiles, preferences, and loyalty programs", "modelCount": 1, "entityCount": 3, "models": [{ "name": "Guests", "displayName": "Guest Management", "description": "Guest profiles and information", "entityCount": 3, "entities": [{ "name": "guest", "displayName": "Guest", "description": "Hotel guest with profile and preferences", "propertyCount": 12, "associationCount": 0, "properties": [{ "name": "id", "displayName": "Guest ID", "description": "Unique identifier for the guest", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Guest name and title", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Guest description and notes", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "email", "displayName": "Email Address", "description": "Guest email address", "type": "string", "required": true, "semantics": ["Semantic#Email"] }, { "name": "phone", "displayName": "Phone Number", "description": "Guest phone number", "type": "string", "semantics": ["Semantic#Phone"] }, { "name": "date_of_birth", "displayName": "Date of Birth", "description": "Guest date of birth", "type": "date", "required": false, "semantics": [] }, { "name": "nationality", "displayName": "Nationality", "description": "Guest nationality", "type": "string", "required": false, "semantics": [] }, { "name": "address", "displayName": "Address", "description": "Guest address", "type": "string", "required": false, "semantics": [] }, { "name": "guest_type", "displayName": "Guest Type", "description": "Type of guest", "type": "string", "required": true, "semantics": [], "enumValues": ["individual", "business", "group", "vip"] }, { "name": "status", "displayName": "Guest Status", "description": "Current status of the guest", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "inactive", "blacklisted"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the guest record was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }, { "name": "updated_at", "displayName": "Updated At", "description": "When the guest record was last updated", "type": "datetime", "readOnly": true, "semantics": ["Semantic#UpdatedTimestamp"] }], "associations": [], "semantics": [] }, { "name": "guest_preference", "displayName": "Guest Preference", "description": "Guest preferences and special requirements", "propertyCount": 6, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Preference ID", "description": "Unique identifier for the guest preference", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Preference name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "preference_type", "displayName": "Preference Type", "description": "Type of preference", "type": "string", "required": true, "semantics": [], "enumValues": ["room", "amenity", "service", "dietary", "accessibility"] }, { "name": "value", "displayName": "Value", "description": "Preference value or setting", "type": "string", "required": true, "semantics": [] }, { "name": "status", "displayName": "Preference Status", "description": "Current status of the preference", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "inactive"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the preference was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "guest", "displayName": "Guest", "description": "Guest for this preference", "required": true, "multiple": false, "targetEntities": ["guest"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }, { "name": "loyalty_program", "displayName": "Loyalty Program", "description": "Guest loyalty program and membership", "propertyCount": 7, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Loyalty ID", "description": "Unique identifier for the loyalty program", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Loyalty program name", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "membership_number", "displayName": "Membership Number", "description": "Loyalty membership number", "type": "string", "required": true, "unique": true, "semantics": [] }, { "name": "tier_level", "displayName": "Tier Level", "description": "Loyalty tier level", "type": "string", "required": true, "semantics": [], "enumValues": ["bronze", "silver", "gold", "platinum", "diamond"] }, { "name": "points_balance", "displayName": "Points Balance", "description": "Current points balance", "type": "number", "required": true, "semantics": [] }, { "name": "status", "displayName": "Loyalty Status", "description": "Current status of the loyalty membership", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "inactive", "suspended"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the loyalty membership was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "guest", "displayName": "Guest", "description": "Guest for this loyalty program", "required": true, "multiple": false, "targetEntities": ["guest"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }] }] }, { "name": "ReservationSystem", "displayName": "Reservation System", "description": "Bookings, availability, and pricing management", "modelCount": 1, "entityCount": 2, "models": [{ "name": "Reservations", "displayName": "Reservation Management", "description": "Reservation and booking management", "entityCount": 2, "entities": [{ "name": "reservation", "displayName": "Reservation", "description": "Guest reservation and booking", "propertyCount": 10, "associationCount": 2, "properties": [{ "name": "id", "displayName": "Reservation ID", "description": "Unique identifier for the reservation", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Reservation name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "check_in_date", "displayName": "Check-in Date", "description": "Guest check-in date", "type": "date", "required": true, "semantics": [] }, { "name": "check_out_date", "displayName": "Check-out Date", "description": "Guest check-out date", "type": "date", "required": true, "semantics": [] }, { "name": "adults", "displayName": "Adults", "description": "Number of adult guests", "type": "number", "required": true, "semantics": [] }, { "name": "children", "displayName": "Children", "description": "Number of children", "type": "number", "required": true, "semantics": [] }, { "name": "reservation_type", "displayName": "Reservation Type", "description": "Type of reservation", "type": "string", "required": true, "semantics": [], "enumValues": ["direct", "ota", "corporate", "group", "package"] }, { "name": "total_amount", "displayName": "Total Amount", "description": "Total reservation amount", "type": "number", "required": true, "semantics": ["Semantic#Currency"] }, { "name": "status", "displayName": "Reservation Status", "description": "Current status of the reservation", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["confirmed", "pending", "cancelled", "checked_in", "checked_out"], "defaultValue": "confirmed" }, { "name": "created_at", "displayName": "Created At", "description": "When the reservation was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "guest", "displayName": "Guest", "description": "Guest for this reservation", "required": true, "multiple": false, "targetEntities": ["guest"], "semantics": [], "cardinality": "One-to-One" }, { "name": "room", "displayName": "Room", "description": "Room for this reservation", "required": true, "multiple": false, "targetEntities": ["room"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }, { "name": "room_rate", "displayName": "Room Rate", "description": "Room pricing and rate management", "propertyCount": 8, "associationCount": 0, "properties": [{ "name": "id", "displayName": "Rate ID", "description": "Unique identifier for the room rate", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Rate name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "rate_type", "displayName": "Rate Type", "description": "Type of room rate", "type": "string", "required": true, "semantics": [], "enumValues": ["rack", "corporate", "package", "promotional", "seasonal"] }, { "name": "start_date", "displayName": "Start Date", "description": "Rate start date", "type": "date", "required": true, "semantics": [] }, { "name": "end_date", "displayName": "End Date", "description": "Rate end date", "type": "date", "required": true, "semantics": [] }, { "name": "base_rate", "displayName": "Base Rate", "description": "Base room rate", "type": "number", "required": true, "semantics": ["Semantic#Currency"] }, { "name": "status", "displayName": "Rate Status", "description": "Current status of the room rate", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "inactive", "expired"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the room rate was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [], "semantics": [] }] }] }, { "name": "PropertyManagement", "displayName": "Property Management", "description": "Rooms, amenities, and housekeeping management", "modelCount": 1, "entityCount": 3, "models": [{ "name": "Property", "displayName": "Property Management", "description": "Property and room management", "entityCount": 3, "entities": [{ "name": "room", "displayName": "Room", "description": "Hotel room with amenities and status", "propertyCount": 9, "associationCount": 0, "properties": [{ "name": "id", "displayName": "Room ID", "description": "Unique identifier for the room", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Room name and number", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Room description and features", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "room_type", "displayName": "Room Type", "description": "Type of room", "type": "string", "required": true, "semantics": [], "enumValues": ["standard", "deluxe", "suite", "presidential", "accessible"] }, { "name": "floor", "displayName": "Floor", "description": "Room floor number", "type": "number", "required": true, "semantics": [] }, { "name": "capacity", "displayName": "Capacity", "description": "Room guest capacity", "type": "number", "required": true, "semantics": [] }, { "name": "status", "displayName": "Room Status", "description": "Current status of the room", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["available", "occupied", "maintenance", "out_of_order"], "defaultValue": "available" }, { "name": "created_at", "displayName": "Created At", "description": "When the room was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }, { "name": "updated_at", "displayName": "Updated At", "description": "When the room was last updated", "type": "datetime", "readOnly": true, "semantics": ["Semantic#UpdatedTimestamp"] }], "associations": [], "semantics": [] }, { "name": "amenity", "displayName": "Amenity", "description": "Hotel amenities and services", "propertyCount": 7, "associationCount": 0, "properties": [{ "name": "id", "displayName": "Amenity ID", "description": "Unique identifier for the amenity", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Amenity name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Amenity description and features", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "amenity_type", "displayName": "Amenity Type", "description": "Type of amenity", "type": "string", "required": true, "semantics": [], "enumValues": ["room", "hotel", "recreation", "business", "wellness"] }, { "name": "location", "displayName": "Location", "description": "Amenity location", "type": "string", "required": true, "semantics": [] }, { "name": "status", "displayName": "Amenity Status", "description": "Current status of the amenity", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["available", "maintenance", "closed"], "defaultValue": "available" }, { "name": "created_at", "displayName": "Created At", "description": "When the amenity was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [], "semantics": [] }, { "name": "housekeeping_task", "displayName": "Housekeeping Task", "description": "Housekeeping tasks and room cleaning", "propertyCount": 7, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Task ID", "description": "Unique identifier for the housekeeping task", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Task name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "task_type", "displayName": "Task Type", "description": "Type of housekeeping task", "type": "string", "required": true, "semantics": [], "enumValues": ["daily_cleaning", "turnover", "deep_cleaning", "maintenance", "inspection"] }, { "name": "assigned_to", "displayName": "Assigned To", "description": "Staff member assigned to task", "type": "string", "required": true, "semantics": [] }, { "name": "scheduled_time", "displayName": "Scheduled Time", "description": "Scheduled task time", "type": "datetime", "required": true, "semantics": [] }, { "name": "status", "displayName": "Task Status", "description": "Current status of the housekeeping task", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["pending", "in_progress", "completed", "cancelled"], "defaultValue": "pending" }, { "name": "created_at", "displayName": "Created At", "description": "When the task was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "room", "displayName": "Room", "description": "Room for this housekeeping task", "required": true, "multiple": false, "targetEntities": ["room"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }] }] }, { "name": "ServiceManagement", "displayName": "Service Management", "description": "Concierge, room service, and activities management", "modelCount": 1, "entityCount": 2, "models": [{ "name": "Services", "displayName": "Service Management", "description": "Guest services and activities", "entityCount": 2, "entities": [{ "name": "service_request", "displayName": "Service Request", "description": "Guest service requests and orders", "propertyCount": 7, "associationCount": 2, "properties": [{ "name": "id", "displayName": "Request ID", "description": "Unique identifier for the service request", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Service request description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "service_type", "displayName": "Service Type", "description": "Type of service requested", "type": "string", "required": true, "semantics": [], "enumValues": ["concierge", "room_service", "housekeeping", "maintenance", "transportation"] }, { "name": "priority", "displayName": "Priority", "description": "Request priority level", "type": "string", "required": true, "semantics": [], "enumValues": ["low", "medium", "high", "urgent"] }, { "name": "requested_time", "displayName": "Requested Time", "description": "Time service was requested", "type": "datetime", "required": true, "semantics": [] }, { "name": "status", "displayName": "Request Status", "description": "Current status of the service request", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["pending", "in_progress", "completed", "cancelled"], "defaultValue": "pending" }, { "name": "created_at", "displayName": "Created At", "description": "When the service request was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "guest", "displayName": "Guest", "description": "Guest for this service request", "required": true, "multiple": false, "targetEntities": ["guest"], "semantics": [], "cardinality": "One-to-One" }, { "name": "room", "displayName": "Room", "description": "Room for this service request", "required": true, "multiple": false, "targetEntities": ["room"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }, { "name": "activity", "displayName": "Activity", "description": "Hotel activities and events", "propertyCount": 9, "associationCount": 0, "properties": [{ "name": "id", "displayName": "Activity ID", "description": "Unique identifier for the activity", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Activity name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Activity description and details", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "activity_type", "displayName": "Activity Type", "description": "Type of activity", "type": "string", "required": true, "semantics": [], "enumValues": ["recreation", "entertainment", "wellness", "business", "cultural"] }, { "name": "start_time", "displayName": "Start Time", "description": "Activity start time", "type": "datetime", "required": true, "semantics": [] }, { "name": "end_time", "displayName": "End Time", "description": "Activity end time", "type": "datetime", "required": true, "semantics": [] }, { "name": "capacity", "displayName": "Capacity", "description": "Activity capacity", "type": "number", "required": true, "semantics": [] }, { "name": "status", "displayName": "Activity Status", "description": "Current status of the activity", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["scheduled", "in_progress", "completed", "cancelled"], "defaultValue": "scheduled" }, { "name": "created_at", "displayName": "Created At", "description": "When the activity was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [], "semantics": [] }] }] }, { "name": "RevenueManagement", "displayName": "Revenue Management", "description": "Pricing, promotions, and revenue optimization", "modelCount": 1, "entityCount": 2, "models": [{ "name": "Revenue", "displayName": "Revenue Management", "description": "Revenue optimization and pricing", "entityCount": 2, "entities": [{ "name": "promotion", "displayName": "Promotion", "description": "Hotel promotions and special offers", "propertyCount": 9, "associationCount": 0, "properties": [{ "name": "id", "displayName": "Promotion ID", "description": "Unique identifier for the promotion", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Promotion name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Promotion details and terms", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "promotion_type", "displayName": "Promotion Type", "description": "Type of promotion", "type": "string", "required": true, "semantics": [], "enumValues": ["discount", "package", "loyalty", "seasonal", "corporate"] }, { "name": "start_date", "displayName": "Start Date", "description": "Promotion start date", "type": "date", "required": true, "semantics": [] }, { "name": "end_date", "displayName": "End Date", "description": "Promotion end date", "type": "date", "required": true, "semantics": [] }, { "name": "discount_percentage", "displayName": "Discount Percentage", "description": "Discount percentage", "type": "number", "required": false, "semantics": [] }, { "name": "status", "displayName": "Promotion Status", "description": "Current status of the promotion", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "inactive", "expired"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the promotion was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [], "semantics": [] }, { "name": "revenue_report", "displayName": "Revenue Report", "description": "Revenue reports and analytics", "propertyCount": 9, "associationCount": 0, "properties": [{ "name": "id", "displayName": "Report ID", "description": "Unique identifier for the revenue report", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Report name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "report_type", "displayName": "Report Type", "description": "Type of revenue report", "type": "string", "required": true, "semantics": [], "enumValues": ["daily", "weekly", "monthly", "quarterly", "annual"] }, { "name": "report_date", "displayName": "Report Date", "description": "Report date", "type": "date", "required": true, "semantics": [] }, { "name": "total_revenue", "displayName": "Total Revenue", "description": "Total revenue for the period", "type": "number", "required": true, "semantics": ["Semantic#Currency"] }, { "name": "average_daily_rate", "displayName": "Average Daily Rate", "description": "Average daily room rate", "type": "number", "required": true, "semantics": ["Semantic#Currency"] }, { "name": "occupancy_rate", "displayName": "Occupancy Rate", "description": "Room occupancy rate percentage", "type": "number", "required": true, "semantics": ["Semantic#Currency"] }, { "name": "status", "displayName": "Report Status", "description": "Current status of the revenue report", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["draft", "final", "archived"], "defaultValue": "draft" }, { "name": "created_at", "displayName": "Created At", "description": "When the revenue report was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [], "semantics": [] }] }] }, { "name": "Operations", "displayName": "Operations", "description": "Staff scheduling, maintenance, and security", "modelCount": 1, "entityCount": 3, "models": [{ "name": "Operations", "displayName": "Operations Management", "description": "Hotel operations and staff management", "entityCount": 3, "entities": [{ "name": "staff", "displayName": "Staff", "description": "Hotel staff and employees", "propertyCount": 10, "associationCount": 0, "properties": [{ "name": "id", "displayName": "Staff ID", "description": "Unique identifier for the staff member", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Staff name and title", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "email", "displayName": "Email Address", "description": "Staff email address", "type": "string", "required": true, "semantics": ["Semantic#Email"] }, { "name": "phone", "displayName": "Phone Number", "description": "Staff phone number", "type": "string", "semantics": ["Semantic#Phone"] }, { "name": "department", "displayName": "Department", "description": "Staff department", "type": "string", "required": true, "semantics": [], "enumValues": ["front_office", "housekeeping", "food_beverage", "maintenance", "security", "management"] }, { "name": "position", "displayName": "Position", "description": "Staff position", "type": "string", "required": true, "semantics": [] }, { "name": "hire_date", "displayName": "Hire Date", "description": "Staff hire date", "type": "date", "required": true, "semantics": [] }, { "name": "status", "displayName": "Staff Status", "description": "Current status of the staff member", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "inactive", "on_leave", "terminated"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the staff record was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }, { "name": "updated_at", "displayName": "Updated At", "description": "When the staff record was last updated", "type": "datetime", "readOnly": true, "semantics": ["Semantic#UpdatedTimestamp"] }], "associations": [], "semantics": [] }, { "name": "staff_schedule", "displayName": "Staff Schedule", "description": "Staff scheduling and shift management", "propertyCount": 6, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Schedule ID", "description": "Unique identifier for the staff schedule", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "shift_type", "displayName": "Shift Type", "description": "Type of work shift", "type": "string", "required": true, "semantics": [], "enumValues": ["morning", "afternoon", "night", "split", "overtime"] }, { "name": "start_time", "displayName": "Start Time", "description": "Shift start time", "type": "datetime", "required": true, "semantics": [] }, { "name": "end_time", "displayName": "End Time", "description": "Shift end time", "type": "datetime", "required": true, "semantics": [] }, { "name": "status", "displayName": "Schedule Status", "description": "Current status of the staff schedule", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["scheduled", "in_progress", "completed", "cancelled"], "defaultValue": "scheduled" }, { "name": "created_at", "displayName": "Created At", "description": "When the schedule was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "staff", "displayName": "Staff", "description": "Staff member for this schedule", "required": true, "multiple": false, "targetEntities": ["staff"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }, { "name": "maintenance_request", "displayName": "Maintenance Request", "description": "Property maintenance requests", "propertyCount": 6, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Maintenance ID", "description": "Unique identifier for the maintenance request", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Maintenance request description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "maintenance_type", "displayName": "Maintenance Type", "description": "Type of maintenance", "type": "string", "required": true, "semantics": [], "enumValues": ["preventive", "corrective", "emergency", "inspection"] }, { "name": "priority", "displayName": "Priority", "description": "Maintenance priority level", "type": "string", "required": true, "semantics": [], "enumValues": ["low", "medium", "high", "critical"] }, { "name": "status", "displayName": "Maintenance Status", "description": "Current status of the maintenance request", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["pending", "in_progress", "completed", "cancelled"], "defaultValue": "pending" }, { "name": "created_at", "displayName": "Created At", "description": "When the maintenance request was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "room", "displayName": "Room", "description": "Room for this maintenance request", "required": false, "multiple": false, "targetEntities": ["room"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }] }] }] } }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Auto-generated template registry index
3
+ * Generated on: 2025-07-29T00:46:22.520Z
4
+ *
5
+ * This file is auto-generated by scripts/generate-template-metadata.js
6
+ * Do not edit manually - your changes will be overwritten.
7
+ */
8
+ import type { DomainTemplate } from '../types.js';
9
+ /**
10
+ * Registry of all available template metadata
11
+ */
12
+ export declare const TEMPLATE_METADATA_REGISTRY: Record<string, DomainTemplate>;
13
+ /**
14
+ * Array of all template IDs for iteration
15
+ */
16
+ export declare const TEMPLATE_IDS: readonly ["ecommerce-platform", "blog-publishing-platform", "healthcare-management-platform", "financial-services-platform", "education-management-platform", "real-estate-management-platform", "manufacturing-platform", "hospitality-platform", "legal-services-platform", "non-profit-platform", "iot-smart-home-platform", "gaming-platform"];
17
+ /**
18
+ * Template categories for filtering
19
+ */
20
+ export declare const TEMPLATE_CATEGORIES: {
21
+ readonly business: readonly ["e-commerce", "retail", "business", "inventory", "orders", "crm", "finance"];
22
+ readonly content: readonly ["blog", "cms", "publishing", "content", "media", "editorial"];
23
+ readonly social: readonly ["social", "community", "networking", "communication"];
24
+ readonly technical: readonly ["api", "service", "microservice", "system", "integration"];
25
+ };
26
+ /**
27
+ * Get all templates
28
+ */
29
+ export declare function getAllTemplates(): DomainTemplate[];
30
+ /**
31
+ * Get template by ID
32
+ */
33
+ export declare function getTemplate(id: string): DomainTemplate | undefined;
34
+ /**
35
+ * Get templates by tag
36
+ */
37
+ export declare function getTemplatesByTag(tag: string): DomainTemplate[];
38
+ /**
39
+ * Get templates by category
40
+ */
41
+ export declare function getTemplatesByCategory(category: keyof typeof TEMPLATE_CATEGORIES): DomainTemplate[];
42
+ /**
43
+ * Search templates
44
+ */
45
+ export declare function searchTemplates(query: string): DomainTemplate[];
46
+ /**
47
+ * Get template statistics
48
+ */
49
+ export declare function getTemplateStats(): {
50
+ totalTemplates: number;
51
+ totalEntities: number;
52
+ totalProperties: number;
53
+ totalAssociations: number;
54
+ categoryCounts: Record<string, number>;
55
+ };
56
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modeling/templates/meta/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAgBjD;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAa5D,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,YAAY,oVAaf,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;CAKtB,CAAA;AAEV;;GAEG;AACH,wBAAgB,eAAe,IAAI,cAAc,EAAE,CAElD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAElE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CAE/D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,OAAO,mBAAmB,GAAG,cAAc,EAAE,CAKnG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAQ/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB;;;;;;EAqB/B"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Auto-generated template registry index
3
+ * Generated on: 2025-07-29T00:46:22.520Z
4
+ *
5
+ * This file is auto-generated by scripts/generate-template-metadata.js
6
+ * Do not edit manually - your changes will be overwritten.
7
+ */
8
+ // Template metadata imports
9
+ import ecommercePlatformMetadata from './ecommerce-platform.json' with { type: 'json' };
10
+ import blogPublishingPlatformMetadata from './blog-publishing-platform.json' with { type: 'json' };
11
+ import healthcareManagementPlatformMetadata from './healthcare-management-platform.json' with { type: 'json' };
12
+ import financialServicesPlatformMetadata from './financial-services-platform.json' with { type: 'json' };
13
+ import educationManagementPlatformMetadata from './education-management-platform.json' with { type: 'json' };
14
+ import realEstateManagementPlatformMetadata from './real-estate-management-platform.json' with { type: 'json' };
15
+ import manufacturingPlatformMetadata from './manufacturing-platform.json' with { type: 'json' };
16
+ import hospitalityPlatformMetadata from './hospitality-platform.json' with { type: 'json' };
17
+ import legalServicesPlatformMetadata from './legal-services-platform.json' with { type: 'json' };
18
+ import nonProfitPlatformMetadata from './non-profit-platform.json' with { type: 'json' };
19
+ import iotSmartHomePlatformMetadata from './iot-smart-home-platform.json' with { type: 'json' };
20
+ import gamingPlatformMetadata from './gaming-platform.json' with { type: 'json' };
21
+ /**
22
+ * Registry of all available template metadata
23
+ */
24
+ export const TEMPLATE_METADATA_REGISTRY = {
25
+ 'ecommerce-platform': ecommercePlatformMetadata,
26
+ 'blog-publishing-platform': blogPublishingPlatformMetadata,
27
+ 'healthcare-management-platform': healthcareManagementPlatformMetadata,
28
+ 'financial-services-platform': financialServicesPlatformMetadata,
29
+ 'education-management-platform': educationManagementPlatformMetadata,
30
+ 'real-estate-management-platform': realEstateManagementPlatformMetadata,
31
+ 'manufacturing-platform': manufacturingPlatformMetadata,
32
+ 'hospitality-platform': hospitalityPlatformMetadata,
33
+ 'legal-services-platform': legalServicesPlatformMetadata,
34
+ 'non-profit-platform': nonProfitPlatformMetadata,
35
+ 'iot-smart-home-platform': iotSmartHomePlatformMetadata,
36
+ 'gaming-platform': gamingPlatformMetadata,
37
+ };
38
+ /**
39
+ * Array of all template IDs for iteration
40
+ */
41
+ export const TEMPLATE_IDS = [
42
+ 'ecommerce-platform',
43
+ 'blog-publishing-platform',
44
+ 'healthcare-management-platform',
45
+ 'financial-services-platform',
46
+ 'education-management-platform',
47
+ 'real-estate-management-platform',
48
+ 'manufacturing-platform',
49
+ 'hospitality-platform',
50
+ 'legal-services-platform',
51
+ 'non-profit-platform',
52
+ 'iot-smart-home-platform',
53
+ 'gaming-platform',
54
+ ];
55
+ /**
56
+ * Template categories for filtering
57
+ */
58
+ export const TEMPLATE_CATEGORIES = {
59
+ business: ['e-commerce', 'retail', 'business', 'inventory', 'orders', 'crm', 'finance'],
60
+ content: ['blog', 'cms', 'publishing', 'content', 'media', 'editorial'],
61
+ social: ['social', 'community', 'networking', 'communication'],
62
+ technical: ['api', 'service', 'microservice', 'system', 'integration'],
63
+ };
64
+ /**
65
+ * Get all templates
66
+ */
67
+ export function getAllTemplates() {
68
+ return Object.values(TEMPLATE_METADATA_REGISTRY);
69
+ }
70
+ /**
71
+ * Get template by ID
72
+ */
73
+ export function getTemplate(id) {
74
+ return TEMPLATE_METADATA_REGISTRY[id];
75
+ }
76
+ /**
77
+ * Get templates by tag
78
+ */
79
+ export function getTemplatesByTag(tag) {
80
+ return getAllTemplates().filter((template) => template.tags.includes(tag.toLowerCase()));
81
+ }
82
+ /**
83
+ * Get templates by category
84
+ */
85
+ export function getTemplatesByCategory(category) {
86
+ const categoryTags = TEMPLATE_CATEGORIES[category] || [];
87
+ return getAllTemplates().filter((template) => template.tags.some((tag) => categoryTags.includes(tag)));
88
+ }
89
+ /**
90
+ * Search templates
91
+ */
92
+ export function searchTemplates(query) {
93
+ const searchTerm = query.toLowerCase();
94
+ return getAllTemplates().filter((template) => template.name.toLowerCase().includes(searchTerm) ||
95
+ template.description.toLowerCase().includes(searchTerm) ||
96
+ template.tags.some((tag) => tag.includes(searchTerm)));
97
+ }
98
+ /**
99
+ * Get template statistics
100
+ */
101
+ export function getTemplateStats() {
102
+ const templates = getAllTemplates();
103
+ const totalEntities = templates.reduce((sum, t) => sum + t.structure.domain.totalEntities, 0);
104
+ const totalProperties = templates.reduce((sum, t) => sum + t.structure.domain.totalProperties, 0);
105
+ const totalAssociations = templates.reduce((sum, t) => sum + t.structure.domain.totalAssociations, 0);
106
+ const categoryCounts = {};
107
+ templates.forEach((template) => {
108
+ template.tags.forEach((tag) => {
109
+ categoryCounts[tag] = (categoryCounts[tag] || 0) + 1;
110
+ });
111
+ });
112
+ return {
113
+ totalTemplates: templates.length,
114
+ totalEntities,
115
+ totalProperties,
116
+ totalAssociations,
117
+ categoryCounts,
118
+ };
119
+ }
120
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modeling/templates/meta/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,4BAA4B;AAC5B,OAAO,yBAAyB,MAAM,2BAA2B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACvF,OAAO,8BAA8B,MAAM,iCAAiC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAClG,OAAO,oCAAoC,MAAM,uCAAuC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAC9G,OAAO,iCAAiC,MAAM,oCAAoC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACxG,OAAO,mCAAmC,MAAM,sCAAsC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAC5G,OAAO,oCAAoC,MAAM,wCAAwC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAC/G,OAAO,6BAA6B,MAAM,+BAA+B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAC/F,OAAO,2BAA2B,MAAM,6BAA6B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAC3F,OAAO,6BAA6B,MAAM,gCAAgC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAChG,OAAO,yBAAyB,MAAM,4BAA4B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACxF,OAAO,4BAA4B,MAAM,gCAAgC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAC/F,OAAO,sBAAsB,MAAM,wBAAwB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAEjF;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAmC;IACxE,oBAAoB,EAAE,yBAA2C;IACjE,0BAA0B,EAAE,8BAAgD;IAC5E,gCAAgC,EAAE,oCAAsD;IACxF,6BAA6B,EAAE,iCAAmD;IAClF,+BAA+B,EAAE,mCAAqD;IACtF,iCAAiC,EAAE,oCAAsD;IACzF,wBAAwB,EAAE,6BAA+C;IACzE,sBAAsB,EAAE,2BAA6C;IACrE,yBAAyB,EAAE,6BAA+C;IAC1E,qBAAqB,EAAE,yBAA2C;IAClE,yBAAyB,EAAE,4BAA8C;IACzE,iBAAiB,EAAE,sBAAwC;CACnD,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,oBAAoB;IACpB,0BAA0B;IAC1B,gCAAgC;IAChC,6BAA6B;IAC7B,+BAA+B;IAC/B,iCAAiC;IACjC,wBAAwB;IACxB,sBAAsB;IACtB,yBAAyB;IACzB,qBAAqB;IACrB,yBAAyB;IACzB,iBAAiB;CACT,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;IACvF,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC;IACvE,MAAM,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,CAAC;IAC9D,SAAS,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,CAAC;CAC9D,CAAA;AAEV;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAA;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,OAAO,0BAA0B,CAAC,EAAE,CAAC,CAAA;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;AAC1F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAA0C;IAC/E,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IACxD,OAAO,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC3C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAE,YAAkC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAC/E,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;IACtC,OAAO,eAAe,EAAE,CAAC,MAAM,CAC7B,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;QAChD,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;QACvD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CACxD,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,SAAS,GAAG,eAAe,EAAE,CAAA;IAEnC,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAA;IAC7F,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAA;IACjG,MAAM,iBAAiB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;IAErG,MAAM,cAAc,GAA2B,EAAE,CAAA;IACjD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC7B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACtD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,cAAc,EAAE,SAAS,CAAC,MAAM;QAChC,aAAa;QACb,eAAe;QACf,iBAAiB;QACjB,cAAc;KACf,CAAA;AACH,CAAC","sourcesContent":["/**\n * Auto-generated template registry index\n * Generated on: 2025-07-29T00:46:22.520Z\n *\n * This file is auto-generated by scripts/generate-template-metadata.js\n * Do not edit manually - your changes will be overwritten.\n */\n\nimport type { DomainTemplate } from '../types.js'\n\n// Template metadata imports\nimport ecommercePlatformMetadata from './ecommerce-platform.json' with { type: 'json' }\nimport blogPublishingPlatformMetadata from './blog-publishing-platform.json' with { type: 'json' }\nimport healthcareManagementPlatformMetadata from './healthcare-management-platform.json' with { type: 'json' }\nimport financialServicesPlatformMetadata from './financial-services-platform.json' with { type: 'json' }\nimport educationManagementPlatformMetadata from './education-management-platform.json' with { type: 'json' }\nimport realEstateManagementPlatformMetadata from './real-estate-management-platform.json' with { type: 'json' }\nimport manufacturingPlatformMetadata from './manufacturing-platform.json' with { type: 'json' }\nimport hospitalityPlatformMetadata from './hospitality-platform.json' with { type: 'json' }\nimport legalServicesPlatformMetadata from './legal-services-platform.json' with { type: 'json' }\nimport nonProfitPlatformMetadata from './non-profit-platform.json' with { type: 'json' }\nimport iotSmartHomePlatformMetadata from './iot-smart-home-platform.json' with { type: 'json' }\nimport gamingPlatformMetadata from './gaming-platform.json' with { type: 'json' }\n\n/**\n * Registry of all available template metadata\n */\nexport const TEMPLATE_METADATA_REGISTRY: Record<string, DomainTemplate> = {\n 'ecommerce-platform': ecommercePlatformMetadata as DomainTemplate,\n 'blog-publishing-platform': blogPublishingPlatformMetadata as DomainTemplate,\n 'healthcare-management-platform': healthcareManagementPlatformMetadata as DomainTemplate,\n 'financial-services-platform': financialServicesPlatformMetadata as DomainTemplate,\n 'education-management-platform': educationManagementPlatformMetadata as DomainTemplate,\n 'real-estate-management-platform': realEstateManagementPlatformMetadata as DomainTemplate,\n 'manufacturing-platform': manufacturingPlatformMetadata as DomainTemplate,\n 'hospitality-platform': hospitalityPlatformMetadata as DomainTemplate,\n 'legal-services-platform': legalServicesPlatformMetadata as DomainTemplate,\n 'non-profit-platform': nonProfitPlatformMetadata as DomainTemplate,\n 'iot-smart-home-platform': iotSmartHomePlatformMetadata as DomainTemplate,\n 'gaming-platform': gamingPlatformMetadata as DomainTemplate,\n} as const\n\n/**\n * Array of all template IDs for iteration\n */\nexport const TEMPLATE_IDS = [\n 'ecommerce-platform',\n 'blog-publishing-platform',\n 'healthcare-management-platform',\n 'financial-services-platform',\n 'education-management-platform',\n 'real-estate-management-platform',\n 'manufacturing-platform',\n 'hospitality-platform',\n 'legal-services-platform',\n 'non-profit-platform',\n 'iot-smart-home-platform',\n 'gaming-platform',\n] as const\n\n/**\n * Template categories for filtering\n */\nexport const TEMPLATE_CATEGORIES = {\n business: ['e-commerce', 'retail', 'business', 'inventory', 'orders', 'crm', 'finance'],\n content: ['blog', 'cms', 'publishing', 'content', 'media', 'editorial'],\n social: ['social', 'community', 'networking', 'communication'],\n technical: ['api', 'service', 'microservice', 'system', 'integration'],\n} as const\n\n/**\n * Get all templates\n */\nexport function getAllTemplates(): DomainTemplate[] {\n return Object.values(TEMPLATE_METADATA_REGISTRY)\n}\n\n/**\n * Get template by ID\n */\nexport function getTemplate(id: string): DomainTemplate | undefined {\n return TEMPLATE_METADATA_REGISTRY[id]\n}\n\n/**\n * Get templates by tag\n */\nexport function getTemplatesByTag(tag: string): DomainTemplate[] {\n return getAllTemplates().filter((template) => template.tags.includes(tag.toLowerCase()))\n}\n\n/**\n * Get templates by category\n */\nexport function getTemplatesByCategory(category: keyof typeof TEMPLATE_CATEGORIES): DomainTemplate[] {\n const categoryTags = TEMPLATE_CATEGORIES[category] || []\n return getAllTemplates().filter((template) =>\n template.tags.some((tag) => (categoryTags as readonly string[]).includes(tag))\n )\n}\n\n/**\n * Search templates\n */\nexport function searchTemplates(query: string): DomainTemplate[] {\n const searchTerm = query.toLowerCase()\n return getAllTemplates().filter(\n (template) =>\n template.name.toLowerCase().includes(searchTerm) ||\n template.description.toLowerCase().includes(searchTerm) ||\n template.tags.some((tag) => tag.includes(searchTerm))\n )\n}\n\n/**\n * Get template statistics\n */\nexport function getTemplateStats() {\n const templates = getAllTemplates()\n\n const totalEntities = templates.reduce((sum, t) => sum + t.structure.domain.totalEntities, 0)\n const totalProperties = templates.reduce((sum, t) => sum + t.structure.domain.totalProperties, 0)\n const totalAssociations = templates.reduce((sum, t) => sum + t.structure.domain.totalAssociations, 0)\n\n const categoryCounts: Record<string, number> = {}\n templates.forEach((template) => {\n template.tags.forEach((tag) => {\n categoryCounts[tag] = (categoryCounts[tag] || 0) + 1\n })\n })\n\n return {\n totalTemplates: templates.length,\n totalEntities,\n totalProperties,\n totalAssociations,\n categoryCounts,\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ { "id": "iot-smart-home-platform", "name": "IoT Smart Home Platform", "description": "A comprehensive IoT/Smart Home platform with device management, data collection, automation, user management, monitoring, and integration", "createdAt": "2025-01-27T00:00:00.000Z", "updatedAt": "2025-01-27T00:00:00.000Z", "version": "1.0.0", "author": "API Now! Core Team", "tags": ["iot", "smart-home", "automation", "device-management", "sensors"], "structure": { "domain": { "name": "IoT Smart Home Platform", "description": "A comprehensive IoT/Smart Home platform with device management, data collection, automation, user management, monitoring, and integration", "totalEntities": 18, "totalProperties": 162, "totalAssociations": 14 }, "namespaces": [{ "name": "DeviceManagement", "displayName": "Device Management", "description": "Devices, sensors, connectivity, and firmware", "modelCount": 1, "entityCount": 3, "models": [{ "name": "Devices", "displayName": "Device Management", "description": "IoT devices and sensors", "entityCount": 3, "entities": [{ "name": "device", "displayName": "Device", "description": "IoT device with sensors and capabilities", "propertyCount": 14, "associationCount": 0, "properties": [{ "name": "id", "displayName": "Device ID", "description": "Unique identifier for the device", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Device name and model", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Device description and capabilities", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "device_type", "displayName": "Device Type", "description": "Type of IoT device", "type": "string", "required": true, "semantics": [], "enumValues": ["sensor", "actuator", "controller", "gateway", "camera", "thermostat", "light", "lock", "appliance", "speaker"] }, { "name": "manufacturer", "displayName": "Manufacturer", "description": "Device manufacturer", "type": "string", "required": true, "semantics": [] }, { "name": "model", "displayName": "Model", "description": "Device model", "type": "string", "required": true, "semantics": [] }, { "name": "serial_number", "displayName": "Serial Number", "description": "Device serial number", "type": "string", "required": true, "unique": true, "semantics": [] }, { "name": "mac_address", "displayName": "MAC Address", "description": "Device MAC address", "type": "string", "required": true, "unique": true, "semantics": [] }, { "name": "ip_address", "displayName": "IP Address", "description": "Device IP address", "type": "string", "required": false, "semantics": [] }, { "name": "location", "displayName": "Location", "description": "Device location in home", "type": "string", "required": false, "semantics": [] }, { "name": "firmware_version", "displayName": "Firmware Version", "description": "Current firmware version", "type": "string", "required": true, "semantics": [] }, { "name": "status", "displayName": "Device Status", "description": "Current status of the device", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["online", "offline", "maintenance", "error", "updating"], "defaultValue": "online" }, { "name": "created_at", "displayName": "Created At", "description": "When the device was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }, { "name": "updated_at", "displayName": "Updated At", "description": "When the device was last updated", "type": "datetime", "readOnly": true, "semantics": ["Semantic#UpdatedTimestamp"] }], "associations": [], "semantics": [] }, { "name": "sensor", "displayName": "Sensor", "description": "IoT sensor with measurement capabilities", "propertyCount": 9, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Sensor ID", "description": "Unique identifier for the sensor", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Sensor name and type", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Sensor description and capabilities", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "sensor_type", "displayName": "Sensor Type", "description": "Type of sensor", "type": "string", "required": true, "semantics": [], "enumValues": ["temperature", "humidity", "pressure", "motion", "light", "sound", "air_quality", "water_level", "smoke", "carbon_monoxide"] }, { "name": "measurement_unit", "displayName": "Measurement Unit", "description": "Unit of measurement", "type": "string", "required": true, "semantics": [] }, { "name": "min_value", "displayName": "Minimum Value", "description": "Minimum measurement value", "type": "number", "required": false, "semantics": [] }, { "name": "max_value", "displayName": "Maximum Value", "description": "Maximum measurement value", "type": "number", "required": false, "semantics": [] }, { "name": "status", "displayName": "Sensor Status", "description": "Current status of the sensor", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "inactive", "calibrating", "error"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the sensor was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "device", "displayName": "Device", "description": "Device for this sensor", "required": true, "multiple": false, "targetEntities": ["device"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }, { "name": "firmware", "displayName": "Firmware", "description": "Device firmware versions and updates", "propertyCount": 9, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Firmware ID", "description": "Unique identifier for the firmware", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Firmware name and version", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Firmware description and changes", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "version", "displayName": "Version", "description": "Firmware version number", "type": "string", "required": true, "semantics": [] }, { "name": "release_date", "displayName": "Release Date", "description": "Firmware release date", "type": "date", "required": true, "semantics": [] }, { "name": "file_size", "displayName": "File Size", "description": "Firmware file size in bytes", "type": "number", "required": true, "semantics": [] }, { "name": "compatibility", "displayName": "Compatibility", "description": "Compatible device models", "type": "string", "required": true, "semantics": [] }, { "name": "status", "displayName": "Firmware Status", "description": "Current status of the firmware", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["available", "installing", "installed", "failed"], "defaultValue": "available" }, { "name": "created_at", "displayName": "Created At", "description": "When the firmware was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "device", "displayName": "Device", "description": "Device for this firmware", "required": true, "multiple": false, "targetEntities": ["device"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }] }] }, { "name": "DataCollection", "displayName": "Data Collection", "description": "Sensor data, telemetry, and analytics", "modelCount": 1, "entityCount": 3, "models": [{ "name": "Data", "displayName": "Data Collection", "description": "Sensor data and telemetry", "entityCount": 3, "entities": [{ "name": "sensor_data", "displayName": "Sensor Data", "description": "Sensor measurement data", "propertyCount": 8, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Data ID", "description": "Unique identifier for the sensor data", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Data name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "timestamp", "displayName": "Timestamp", "description": "Data timestamp", "type": "datetime", "required": true, "semantics": [] }, { "name": "value", "displayName": "Value", "description": "Sensor measurement value", "type": "number", "required": true, "semantics": [] }, { "name": "unit", "displayName": "Unit", "description": "Measurement unit", "type": "string", "required": true, "semantics": [] }, { "name": "quality", "displayName": "Quality", "description": "Data quality indicator", "type": "string", "required": true, "semantics": [], "enumValues": ["excellent", "good", "fair", "poor"] }, { "name": "status", "displayName": "Data Status", "description": "Current status of the sensor data", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["raw", "processed", "archived"], "defaultValue": "raw" }, { "name": "created_at", "displayName": "Created At", "description": "When the data was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "sensor", "displayName": "Sensor", "description": "Sensor for this data", "required": true, "multiple": false, "targetEntities": ["sensor"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }, { "name": "telemetry", "displayName": "Telemetry", "description": "Device telemetry and system metrics", "propertyCount": 8, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Telemetry ID", "description": "Unique identifier for the telemetry", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Telemetry name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "timestamp", "displayName": "Timestamp", "description": "Telemetry timestamp", "type": "datetime", "required": true, "semantics": [] }, { "name": "metric_type", "displayName": "Metric Type", "description": "Type of telemetry metric", "type": "string", "required": true, "semantics": [], "enumValues": ["cpu_usage", "memory_usage", "network_traffic", "battery_level", "signal_strength", "temperature"] }, { "name": "value", "displayName": "Value", "description": "Telemetry value", "type": "number", "required": true, "semantics": [] }, { "name": "unit", "displayName": "Unit", "description": "Measurement unit", "type": "string", "required": true, "semantics": [] }, { "name": "status", "displayName": "Telemetry Status", "description": "Current status of the telemetry", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["normal", "warning", "critical"], "defaultValue": "normal" }, { "name": "created_at", "displayName": "Created At", "description": "When the telemetry was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "device", "displayName": "Device", "description": "Device for this telemetry", "required": true, "multiple": false, "targetEntities": ["device"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }, { "name": "analytics", "displayName": "Analytics", "description": "Data analytics and insights", "propertyCount": 9, "associationCount": 0, "properties": [{ "name": "id", "displayName": "Analytics ID", "description": "Unique identifier for the analytics", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Analytics name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Analytics description and insights", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "analytics_type", "displayName": "Analytics Type", "description": "Type of analytics", "type": "string", "required": true, "semantics": [], "enumValues": ["trend_analysis", "pattern_recognition", "anomaly_detection", "predictive_modeling", "usage_statistics"] }, { "name": "time_period", "displayName": "Time Period", "description": "Analytics time period", "type": "string", "required": true, "semantics": [], "enumValues": ["hourly", "daily", "weekly", "monthly", "yearly"] }, { "name": "start_date", "displayName": "Start Date", "description": "Analytics start date", "type": "date", "required": true, "semantics": [] }, { "name": "end_date", "displayName": "End Date", "description": "Analytics end date", "type": "date", "required": true, "semantics": [] }, { "name": "status", "displayName": "Analytics Status", "description": "Current status of the analytics", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["processing", "completed", "failed"], "defaultValue": "processing" }, { "name": "created_at", "displayName": "Created At", "description": "When the analytics was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [], "semantics": [] }] }] }, { "name": "Automation", "displayName": "Automation", "description": "Rules, triggers, actions, and schedules", "modelCount": 1, "entityCount": 4, "models": [{ "name": "Automation", "displayName": "Automation Management", "description": "Automation rules and schedules", "entityCount": 4, "entities": [{ "name": "rule", "displayName": "Rule", "description": "Automation rule with conditions and actions", "propertyCount": 9, "associationCount": 0, "properties": [{ "name": "id", "displayName": "Rule ID", "description": "Unique identifier for the rule", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Rule name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Rule description and logic", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "rule_type", "displayName": "Rule Type", "description": "Type of automation rule", "type": "string", "required": true, "semantics": [], "enumValues": ["if_then", "schedule", "location_based", "time_based", "condition_based"] }, { "name": "condition", "displayName": "Condition", "description": "Rule condition logic", "type": "string", "required": true, "semantics": [] }, { "name": "action", "displayName": "Action", "description": "Rule action to execute", "type": "string", "required": true, "semantics": [] }, { "name": "priority", "displayName": "Priority", "description": "Rule priority level", "type": "string", "required": true, "semantics": [], "enumValues": ["low", "medium", "high", "critical"] }, { "name": "status", "displayName": "Rule Status", "description": "Current status of the rule", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "inactive", "testing", "error"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the rule was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [], "semantics": [] }, { "name": "trigger", "displayName": "Trigger", "description": "Automation trigger event", "propertyCount": 8, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Trigger ID", "description": "Unique identifier for the trigger", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Trigger name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Trigger description and conditions", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "trigger_type", "displayName": "Trigger Type", "description": "Type of trigger", "type": "string", "required": true, "semantics": [], "enumValues": ["sensor_threshold", "time_schedule", "location_change", "device_state", "user_action"] }, { "name": "condition", "displayName": "Condition", "description": "Trigger condition", "type": "string", "required": true, "semantics": [] }, { "name": "frequency", "displayName": "Frequency", "description": "Trigger frequency", "type": "string", "required": false, "semantics": [], "enumValues": ["once", "recurring", "continuous"] }, { "name": "status", "displayName": "Trigger Status", "description": "Current status of the trigger", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "inactive", "paused"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the trigger was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "rule", "displayName": "Rule", "description": "Rule for this trigger", "required": true, "multiple": false, "targetEntities": ["rule"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }, { "name": "action", "displayName": "Action", "description": "Automation action to execute", "propertyCount": 8, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Action ID", "description": "Unique identifier for the action", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Action name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Action description and parameters", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "action_type", "displayName": "Action Type", "description": "Type of action", "type": "string", "required": true, "semantics": [], "enumValues": ["device_control", "notification", "data_logging", "api_call", "script_execution"] }, { "name": "parameters", "displayName": "Parameters", "description": "Action parameters", "type": "string", "required": false, "semantics": [] }, { "name": "delay", "displayName": "Delay", "description": "Action delay in seconds", "type": "number", "required": false, "semantics": [] }, { "name": "status", "displayName": "Action Status", "description": "Current status of the action", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["pending", "executing", "completed", "failed"], "defaultValue": "pending" }, { "name": "created_at", "displayName": "Created At", "description": "When the action was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "rule", "displayName": "Rule", "description": "Rule for this action", "required": true, "multiple": false, "targetEntities": ["rule"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }, { "name": "schedule", "displayName": "Schedule", "description": "Automation schedule", "propertyCount": 9, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Schedule ID", "description": "Unique identifier for the schedule", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Schedule name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Schedule description and timing", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "schedule_type", "displayName": "Schedule Type", "description": "Type of schedule", "type": "string", "required": true, "semantics": [], "enumValues": ["daily", "weekly", "monthly", "custom", "sunrise_sunset"] }, { "name": "start_time", "displayName": "Start Time", "description": "Schedule start time", "type": "time", "required": true, "semantics": [] }, { "name": "end_time", "displayName": "End Time", "description": "Schedule end time", "type": "time", "required": false, "semantics": [] }, { "name": "days_of_week", "displayName": "Days of Week", "description": "Days of week for schedule", "type": "string", "required": false, "semantics": [] }, { "name": "status", "displayName": "Schedule Status", "description": "Current status of the schedule", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "inactive", "paused"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the schedule was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "rule", "displayName": "Rule", "description": "Rule for this schedule", "required": true, "multiple": false, "targetEntities": ["rule"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }] }] }, { "name": "UserManagement", "displayName": "User Management", "description": "Users, permissions, and device access", "modelCount": 1, "entityCount": 3, "models": [{ "name": "Users", "displayName": "User Management", "description": "User accounts and permissions", "entityCount": 3, "entities": [{ "name": "user", "displayName": "User", "description": "System user with access permissions", "propertyCount": 11, "associationCount": 0, "properties": [{ "name": "id", "displayName": "User ID", "description": "Unique identifier for the user", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "User name and title", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "User description and notes", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "email", "displayName": "Email Address", "description": "User email address", "type": "string", "required": true, "semantics": ["Semantic#Email"] }, { "name": "phone", "displayName": "Phone Number", "description": "User phone number", "type": "string", "semantics": ["Semantic#Phone"] }, { "name": "user_type", "displayName": "User Type", "description": "Type of user", "type": "string", "required": true, "semantics": [], "enumValues": ["owner", "admin", "family_member", "guest", "service_account"] }, { "name": "username", "displayName": "Username", "description": "User login username", "type": "string", "required": true, "unique": true, "semantics": [] }, { "name": "last_login", "displayName": "Last Login", "description": "User last login date", "type": "datetime", "required": false, "semantics": [] }, { "name": "status", "displayName": "User Status", "description": "Current status of the user", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "inactive", "suspended", "pending"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the user was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }, { "name": "updated_at", "displayName": "Updated At", "description": "When the user was last updated", "type": "datetime", "readOnly": true, "semantics": ["Semantic#UpdatedTimestamp"] }], "associations": [], "semantics": [] }, { "name": "permission", "displayName": "Permission", "description": "User permissions and access rights", "propertyCount": 8, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Permission ID", "description": "Unique identifier for the permission", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Permission name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Permission description and scope", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "permission_type", "displayName": "Permission Type", "description": "Type of permission", "type": "string", "required": true, "semantics": [], "enumValues": ["read", "write", "admin", "control", "view", "configure"] }, { "name": "resource", "displayName": "Resource", "description": "Resource for permission", "type": "string", "required": true, "semantics": [] }, { "name": "scope", "displayName": "Scope", "description": "Permission scope", "type": "string", "required": true, "semantics": [], "enumValues": ["all", "specific", "room", "device", "system"] }, { "name": "status", "displayName": "Permission Status", "description": "Current status of the permission", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "inactive", "temporary"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the permission was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "user", "displayName": "User", "description": "User for this permission", "required": true, "multiple": false, "targetEntities": ["user"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }, { "name": "device_access", "displayName": "Device Access", "description": "User access to specific devices", "propertyCount": 7, "associationCount": 2, "properties": [{ "name": "id", "displayName": "Access ID", "description": "Unique identifier for the device access", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Access name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "access_type", "displayName": "Access Type", "description": "Type of device access", "type": "string", "required": true, "semantics": [], "enumValues": ["full_control", "read_only", "limited_control", "monitor_only"] }, { "name": "granted_date", "displayName": "Granted Date", "description": "Access granted date", "type": "date", "required": true, "semantics": [] }, { "name": "expiry_date", "displayName": "Expiry Date", "description": "Access expiry date", "type": "date", "required": false, "semantics": [] }, { "name": "status", "displayName": "Access Status", "description": "Current status of the device access", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "expired", "revoked"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the access was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "user", "displayName": "User", "description": "User for this device access", "required": true, "multiple": false, "targetEntities": ["user"], "semantics": [], "cardinality": "One-to-One" }, { "name": "device", "displayName": "Device", "description": "Device for this access", "required": true, "multiple": false, "targetEntities": ["device"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }] }] }, { "name": "Monitoring", "displayName": "Monitoring", "description": "Alerts, notifications, and health status", "modelCount": 1, "entityCount": 3, "models": [{ "name": "Monitoring", "displayName": "Monitoring Management", "description": "System monitoring and alerting", "entityCount": 3, "entities": [{ "name": "alert", "displayName": "Alert", "description": "System alert or notification", "propertyCount": 9, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Alert ID", "description": "Unique identifier for the alert", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Alert name and title", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Alert description and details", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "alert_type", "displayName": "Alert Type", "description": "Type of alert", "type": "string", "required": true, "semantics": [], "enumValues": ["error", "warning", "info", "critical", "maintenance"] }, { "name": "severity", "displayName": "Severity", "description": "Alert severity level", "type": "string", "required": true, "semantics": [], "enumValues": ["low", "medium", "high", "critical"] }, { "name": "triggered_at", "displayName": "Triggered At", "description": "Alert trigger time", "type": "datetime", "required": true, "semantics": [] }, { "name": "resolved_at", "displayName": "Resolved At", "description": "Alert resolution time", "type": "datetime", "required": false, "semantics": [] }, { "name": "status", "displayName": "Alert Status", "description": "Current status of the alert", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "acknowledged", "resolved", "dismissed"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the alert was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "device", "displayName": "Device", "description": "Device for this alert", "required": false, "multiple": false, "targetEntities": ["device"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }, { "name": "notification", "displayName": "Notification", "description": "User notification message", "propertyCount": 9, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Notification ID", "description": "Unique identifier for the notification", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Notification name and title", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Notification message content", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "notification_type", "displayName": "Notification Type", "description": "Type of notification", "type": "string", "required": true, "semantics": [], "enumValues": ["email", "sms", "push", "in_app", "webhook"] }, { "name": "recipient", "displayName": "Recipient", "description": "Notification recipient", "type": "string", "required": true, "semantics": [] }, { "name": "sent_at", "displayName": "Sent At", "description": "Notification sent time", "type": "datetime", "required": true, "semantics": [] }, { "name": "read_at", "displayName": "Read At", "description": "Notification read time", "type": "datetime", "required": false, "semantics": [] }, { "name": "status", "displayName": "Notification Status", "description": "Current status of the notification", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["pending", "sent", "delivered", "read", "failed"], "defaultValue": "pending" }, { "name": "created_at", "displayName": "Created At", "description": "When the notification was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "user", "displayName": "User", "description": "User for this notification", "required": true, "multiple": false, "targetEntities": ["user"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }, { "name": "health_status", "displayName": "Health Status", "description": "System and device health status", "propertyCount": 7, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Health ID", "description": "Unique identifier for the health status", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Health status name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "health_type", "displayName": "Health Type", "description": "Type of health status", "type": "string", "required": true, "semantics": [], "enumValues": ["system", "device", "network", "battery", "connectivity"] }, { "name": "check_time", "displayName": "Check Time", "description": "Health check time", "type": "datetime", "required": true, "semantics": [] }, { "name": "score", "displayName": "Score", "description": "Health score (0-100)", "type": "number", "required": true, "semantics": [] }, { "name": "status", "displayName": "Health Status", "description": "Current health status", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["excellent", "good", "fair", "poor", "critical"], "defaultValue": "excellent" }, { "name": "created_at", "displayName": "Created At", "description": "When the health status was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "device", "displayName": "Device", "description": "Device for this health status", "required": false, "multiple": false, "targetEntities": ["device"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }] }] }, { "name": "Integration", "displayName": "Integration", "description": "Third-party services, APIs, and protocols", "modelCount": 1, "entityCount": 2, "models": [{ "name": "Integrations", "displayName": "Integration Management", "description": "Third-party integrations and APIs", "entityCount": 2, "entities": [{ "name": "integration", "displayName": "Integration", "description": "Third-party service integration", "propertyCount": 10, "associationCount": 0, "properties": [{ "name": "id", "displayName": "Integration ID", "description": "Unique identifier for the integration", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "Integration name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "description", "displayName": "Description", "description": "Integration description and capabilities", "type": "string", "semantics": ["Semantic#Description"] }, { "name": "integration_type", "displayName": "Integration Type", "description": "Type of integration", "type": "string", "required": true, "semantics": [], "enumValues": ["api", "webhook", "protocol", "service", "platform"] }, { "name": "provider", "displayName": "Provider", "description": "Integration provider", "type": "string", "required": true, "semantics": [] }, { "name": "endpoint_url", "displayName": "Endpoint URL", "description": "Integration endpoint URL", "type": "string", "required": false, "semantics": [] }, { "name": "api_key", "displayName": "API Key", "description": "Integration API key", "type": "string", "required": false, "semantics": [] }, { "name": "protocol", "displayName": "Protocol", "description": "Integration protocol", "type": "string", "required": false, "semantics": [], "enumValues": ["http", "https", "mqtt", "coap", "websocket", "tcp"] }, { "name": "status", "displayName": "Integration Status", "description": "Current status of the integration", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["active", "inactive", "testing", "error"], "defaultValue": "active" }, { "name": "created_at", "displayName": "Created At", "description": "When the integration was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [], "semantics": [] }, { "name": "api_call", "displayName": "API Call", "description": "API call to third-party service", "propertyCount": 10, "associationCount": 1, "properties": [{ "name": "id", "displayName": "Call ID", "description": "Unique identifier for the API call", "type": "string", "primary": true, "readOnly": true, "semantics": [] }, { "name": "name", "displayName": "Name", "description": "API call name and description", "type": "string", "semantics": ["Semantic#Title"] }, { "name": "endpoint", "displayName": "Endpoint", "description": "API endpoint", "type": "string", "required": true, "semantics": [] }, { "name": "method", "displayName": "Method", "description": "HTTP method", "type": "string", "required": true, "semantics": [], "enumValues": ["GET", "POST", "PUT", "DELETE", "PATCH"] }, { "name": "request_data", "displayName": "Request Data", "description": "API request data", "type": "string", "required": false, "semantics": [] }, { "name": "response_data", "displayName": "Response Data", "description": "API response data", "type": "string", "required": false, "semantics": [] }, { "name": "response_code", "displayName": "Response Code", "description": "HTTP response code", "type": "number", "required": false, "semantics": [] }, { "name": "duration", "displayName": "Duration", "description": "API call duration in milliseconds", "type": "number", "required": false, "semantics": [] }, { "name": "status", "displayName": "Call Status", "description": "Current status of the API call", "type": "string", "required": true, "semantics": ["Semantic#Status"], "enumValues": ["pending", "in_progress", "completed", "failed", "timeout"], "defaultValue": "pending" }, { "name": "created_at", "displayName": "Created At", "description": "When the API call was created", "type": "datetime", "readOnly": true, "semantics": ["Semantic#CreatedTimestamp"] }], "associations": [{ "name": "integration", "displayName": "Integration", "description": "Integration for this API call", "required": true, "multiple": false, "targetEntities": ["integration"], "semantics": [], "cardinality": "One-to-One" }], "semantics": [] }] }] }] } }