@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
@@ -1 +0,0 @@
1
- {"version":3,"file":"blog-domain.d.ts","sourceRoot":"","sources":["../../../../src/modeling/templates/blog-domain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAoB7C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAavD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,OAAO,GAAE,qBAA0B,GAAG,UAAU,CA6sBxF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"blog-domain.js","sourceRoot":"","sources":["../../../../src/modeling/templates/blog-domain.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Blog/Publishing Data Domain Example\n *\n * This file demonstrates how to create a comprehensive blog/publishing data domain\n * using the API Client Core modeling system. It follows the business-first approach\n * and demonstrates proper use of namespaces, models, entities, properties,\n * associations, and semantic annotations.\n *\n * The example includes:\n * - Content Management with posts, pages, and media\n * - User Management with authors, editors, and subscribers\n * - Publishing Workflow with drafts, reviews, and publication\n * - Social Features with comments, likes, and sharing\n * - Analytics and SEO with metadata and tracking\n * - Multi-tenant support for multiple blogs/publications\n *\n * @example\n * ```typescript\n * import { createBlogDomain } from './blog-domain.js'\n *\n * const domain = createBlogDomain()\n * console.log('Blog domain created with', domain.graph.nodeCount(), 'nodes')\n * ```\n */\n\nimport { DataDomain } from '../DataDomain.js'\nimport { SemanticType } from '../Semantics.js'\nimport { createCalculatedSemantic } from '../definitions/Calculated.js'\nimport { createURLSemantic } from '../definitions/URL.js'\nimport {\n addIdField,\n addNameField,\n addDescriptionField,\n addPublicUniqueNameField,\n addCustomStatusField,\n addCreatedAtField,\n addUpdatedAtField,\n addEmailField,\n addPasswordField,\n addFirstNameField,\n addLastNameField,\n addAvatarUrlField,\n addBooleanField,\n addQuantityField,\n} from '../helpers/Intelisense.js'\nimport type { CreateTemplateOptions } from './types.js'\n\nfunction createDomain(): DataDomain {\n return new DataDomain({\n info: {\n name: 'Blog Publishing Platform',\n displayName: 'Blog Publishing Platform',\n description:\n 'A comprehensive content management and publishing platform for blogs, magazines, and digital publications',\n },\n })\n}\n\n/**\n * Creates a comprehensive blog/publishing data domain following domain-driven design principles.\n *\n * This function demonstrates the proper hierarchy and organization for a publishing platform:\n * 1. Creates the root DataDomain for the publishing platform\n * 2. Organizes functionality into logical namespaces (Content, Users, Publishing, etc.)\n * 3. Groups related entities into models within each namespace\n * 4. Defines entities with proper semantic annotations for publishing workflows\n * 5. Establishes associations with appropriate cardinality for content relationships\n *\n * @returns A fully configured DataDomain with all blog/publishing entities and relationships\n */\nexport default function createBlogDomain(options: CreateTemplateOptions = {}): DataDomain {\n // Ensure the root data domain\n const domain = options.domain ?? createDomain()\n\n //\n // 1. CONTENT MANAGEMENT NAMESPACE\n //\n const contentManagement = domain.addNamespace({\n info: {\n name: 'ContentManagement',\n displayName: 'Content Management',\n description: 'Core content creation, editing, and organization features',\n },\n })\n\n // Publication Model - Multi-tenant support\n const publicationModel = contentManagement.addModel({\n info: {\n name: 'Publications',\n displayName: 'Publications Management',\n description: 'Individual blogs, magazines, or publications within the platform',\n },\n })\n\n // Publication Entity - Represents individual blogs/publications\n const publicationEntity = publicationModel.addEntity({\n info: {\n name: 'publication',\n displayName: 'Publication',\n description: 'Individual blog or publication site',\n },\n })\n\n addIdField(publicationEntity, { displayName: 'Publication ID', description: 'Unique identifier for the publication' })\n\n addNameField(publicationEntity, { displayName: 'Publication Name', description: 'Display name of the publication' })\n\n addPublicUniqueNameField(publicationEntity, {\n name: 'slug',\n displayName: 'URL Slug',\n description: 'URL-friendly identifier for the publication',\n })\n\n addDescriptionField(publicationEntity, { description: 'Publication description and tagline' })\n\n publicationEntity.addProperty({\n info: { name: 'domain', displayName: 'Custom Domain', description: 'Custom domain name for the publication' },\n type: 'string',\n // semantics: [{ id: SemanticType.DomainName }],\n })\n\n publicationEntity.addProperty({\n info: { name: 'logo_url', displayName: 'Logo URL', description: 'URL to publication logo image' },\n type: 'string',\n semantics: [{ id: SemanticType.ImageURL }],\n })\n\n addCustomStatusField(publicationEntity, ['active', 'suspended', 'archived'], {\n displayName: 'Publication Status',\n description: 'Current status of the publication',\n })\n\n addCreatedAtField(publicationEntity, { description: 'When the publication was created' })\n\n // Content Model\n const contentModel = contentManagement.addModel({\n info: {\n name: 'Content',\n displayName: 'Content Management',\n description: 'Posts, pages, and other content types',\n },\n })\n\n // Category Entity\n const categoryEntity = contentModel.addEntity({\n info: {\n name: 'category',\n displayName: 'Content Category',\n description: 'Content categorization for organization and navigation',\n },\n })\n\n addIdField(categoryEntity, { displayName: 'Category ID', description: 'Unique identifier for the category' })\n\n addNameField(categoryEntity, { displayName: 'Category Name', description: 'Display name of the category' })\n\n addPublicUniqueNameField(categoryEntity, {\n name: 'slug',\n displayName: 'URL Slug',\n description: 'URL-friendly identifier for the category',\n })\n\n addDescriptionField(categoryEntity, { description: 'Category description' })\n\n categoryEntity.addProperty({\n info: { name: 'color', displayName: 'Color', description: 'Theme color for the category' },\n type: 'string',\n // semantics: [{ id: SemanticType.Color }],\n })\n\n // Category-Publication Association (Many-to-One)\n categoryEntity.addAssociation(\n { key: publicationEntity.key },\n {\n info: { name: 'publication', displayName: 'Publication', description: 'Publication this category belongs to' },\n required: true,\n multiple: false,\n }\n )\n\n // Self-referencing association for category hierarchy\n categoryEntity.addAssociation(\n { key: categoryEntity.key },\n {\n info: {\n name: 'parentCategory',\n displayName: 'Parent Category',\n description: 'Parent category for hierarchical organization',\n },\n required: false,\n multiple: false,\n }\n )\n\n // Tag Entity\n const tagEntity = contentModel.addEntity({\n info: {\n name: 'Tag',\n displayName: 'Content Tag',\n description: 'Tags for flexible content labeling and discovery',\n },\n })\n\n addIdField(tagEntity, { displayName: 'Tag ID', description: 'Unique identifier for the tag' })\n\n addNameField(tagEntity, { displayName: 'Tag Name', description: 'Display name of the tag' })\n\n addPublicUniqueNameField(tagEntity, {\n name: 'slug',\n displayName: 'URL Slug',\n description: 'URL-friendly identifier for the tag',\n })\n\n // Tag-Publication Association (Many-to-One)\n tagEntity.addAssociation(\n { key: publicationEntity.key },\n {\n info: { name: 'publication', displayName: 'Publication', description: 'Publication this tag belongs to' },\n required: true,\n multiple: false,\n }\n )\n\n // Post Entity - Main content type\n const postEntity = contentModel.addEntity({\n info: {\n name: 'Post',\n displayName: 'Blog Post',\n description: 'Individual blog posts and articles',\n },\n })\n\n addIdField(postEntity, { displayName: 'Post ID', description: 'Unique identifier for the post' })\n\n postEntity.addProperty({\n info: { name: 'title', displayName: 'Post Title', description: 'Title of the blog post' },\n type: 'string',\n required: true,\n semantics: [{ id: SemanticType.Title }],\n })\n\n addPublicUniqueNameField(postEntity, {\n name: 'slug',\n displayName: 'URL Slug',\n description: 'URL-friendly identifier for the post',\n })\n\n postEntity.addProperty({\n info: { name: 'excerpt', displayName: 'Excerpt', description: 'Brief summary or excerpt of the post' },\n type: 'string',\n semantics: [{ id: SemanticType.Summary }],\n })\n\n postEntity.addProperty({\n info: { name: 'content', displayName: 'Content', description: 'Full content of the post in HTML or Markdown' },\n type: 'string',\n required: true,\n semantics: [{ id: SemanticType.HTML }],\n })\n\n postEntity.addProperty({\n info: {\n name: 'content_format',\n displayName: 'Content Format',\n description: 'Format of the content (HTML, Markdown, etc.)',\n },\n type: 'string',\n required: true,\n schema: {\n enum: ['html', 'markdown', 'richtext'],\n defaultValue: { type: 'literal', value: 'markdown' },\n },\n })\n\n postEntity.addProperty({\n info: { name: 'featured_image_url', displayName: 'Featured Image URL', description: 'URL to featured image' },\n type: 'string',\n semantics: [{ id: SemanticType.ImageURL }],\n })\n\n addCustomStatusField(postEntity, ['draft', 'pending_review', 'scheduled', 'published', 'archived'], {\n displayName: 'Post Status',\n description: 'Current publishing status of the post',\n })\n\n addCreatedAtField(postEntity, {\n name: 'published_at',\n displayName: 'Published At',\n description: 'When the post was published',\n })\n\n postEntity.addProperty({\n info: {\n name: 'scheduled_at',\n displayName: 'Scheduled At',\n description: 'When the post is scheduled to be published',\n },\n type: 'datetime',\n })\n\n addQuantityField(postEntity, {\n name: 'view_count',\n displayName: 'View Count',\n description: 'Number of times the post has been viewed',\n })\n\n postEntity.addProperty({\n info: { name: 'reading_time', displayName: 'Reading Time', description: 'Estimated reading time in minutes' },\n type: 'number',\n readOnly: true,\n semantics: [\n createCalculatedSemantic({\n formula: 'CEILING(LENGTH(REPLACE({{content}}, \" \", \"\")) / 250)',\n dependencies: [],\n recalculateOnUpdate: true,\n }),\n ],\n })\n\n postEntity.addProperty({\n info: { name: 'word_count', displayName: 'Word Count', description: 'Number of words in the post content' },\n type: 'number',\n readOnly: true,\n semantics: [\n createCalculatedSemantic({\n formula: 'LENGTH({{content}}) - LENGTH(REPLACE({{content}}, \" \", \"\")) + 1',\n dependencies: [],\n recalculateOnUpdate: true,\n }),\n ],\n })\n\n postEntity.addProperty({\n info: { name: 'meta_title', displayName: 'Meta Title', description: 'SEO meta title' },\n type: 'string',\n // semantics: [{ id: SemanticType.SEOTitle }],\n })\n\n postEntity.addProperty({\n info: { name: 'meta_description', displayName: 'Meta Description', description: 'SEO meta description' },\n type: 'string',\n // semantics: [{ id: SemanticType.SEODescription }],\n })\n\n addCreatedAtField(postEntity, { description: 'When the post was created' })\n addUpdatedAtField(postEntity, { description: 'When the post was last updated' })\n\n // Post-Publication Association (Many-to-One)\n postEntity.addAssociation(\n { key: publicationEntity.key },\n {\n info: { name: 'publication', displayName: 'Publication', description: 'Publication this post belongs to' },\n required: true,\n multiple: false,\n }\n )\n\n // Post-Category Association (Many-to-Many)\n postEntity.addAssociation(\n { key: categoryEntity.key },\n {\n info: { name: 'categories', displayName: 'Post Categories', description: 'Categories this post belongs to' },\n required: false,\n multiple: true,\n semantics: [{ id: SemanticType.Categories }],\n }\n )\n\n // Post-Tag Association (Many-to-Many)\n postEntity.addAssociation(\n { key: tagEntity.key },\n {\n info: { name: 'tags', displayName: 'Post Tags', description: 'Tags associated with this post' },\n required: false,\n multiple: true,\n semantics: [{ id: SemanticType.Tags }],\n }\n )\n\n //\n // 2. USER MANAGEMENT NAMESPACE\n //\n const userManagement = domain.addNamespace({\n info: {\n name: 'UserManagement',\n displayName: 'User Management',\n description: 'Authors, editors, subscribers, and user roles management',\n },\n })\n\n // User Model\n const userModel = userManagement.addModel({\n info: {\n name: 'Users',\n displayName: 'User Management',\n description: 'User accounts and authentication',\n },\n })\n\n // User Entity\n const userEntity = userModel.addEntity({\n info: {\n name: 'user',\n displayName: 'User Account',\n description: 'User account for authors, editors, and subscribers',\n },\n semantics: [{ id: SemanticType.User }],\n })\n\n addIdField(userEntity, { displayName: 'User ID', description: 'Unique identifier for the user' })\n\n addEmailField(userEntity, { description: 'User email address for login and communication' })\n\n addPasswordField(userEntity, { description: 'Encrypted password for authentication' })\n\n userEntity.addProperty({\n info: { name: 'username', displayName: 'Username', description: 'Unique username for the user' },\n type: 'string',\n required: true,\n unique: true,\n semantics: [{ id: SemanticType.PublicUniqueName }],\n })\n\n userEntity.addProperty({\n info: { name: 'display_name', displayName: 'Display Name', description: 'Public display name for the user' },\n type: 'string',\n required: true,\n })\n\n addFirstNameField(userEntity, { description: 'User first name' })\n addLastNameField(userEntity, { description: 'User last name' })\n\n userEntity.addProperty({\n info: { name: 'bio', displayName: 'Biography', description: 'User biography and description' },\n type: 'string',\n semantics: [{ id: SemanticType.Description }],\n })\n\n addAvatarUrlField(userEntity, { description: 'URL to user profile picture' })\n\n userEntity.addProperty({\n info: { name: 'website', displayName: 'Website', description: 'User personal website URL' },\n type: 'string',\n semantics: [createURLSemantic()],\n })\n\n // userEntity.addProperty({\n // info: {\n // name: 'social_links',\n // displayName: 'Social Links',\n // description: 'JSON object containing social media links',\n // },\n // type: 'string',\n // // semantics: [{ id: SemanticType.SocialMediaLinks }],\n // })\n\n addCustomStatusField(userEntity, ['subscriber', 'author', 'editor', 'admin', 'super_admin'], {\n name: 'role',\n displayName: 'User Role',\n description: 'User role for permission management',\n })\n\n addCustomStatusField(userEntity, ['active', 'inactive', 'suspended', 'pending_verification'], {\n displayName: 'User Status',\n description: 'Current status of the user account',\n })\n\n addBooleanField(userEntity, 'emailVerified', 'false', {\n displayName: 'Email Verified',\n description: 'Whether the user has verified their email',\n })\n\n // userEntity.addProperty({\n // info: { name: 'last_login_at', displayName: 'Last Login At', description: 'When the user last logged in' },\n // type: 'datetime',\n // readOnly: true,\n // semantics: [{ id: SemanticType.LastLoginTimestamp }],\n // })\n\n addCreatedAtField(userEntity, { description: 'When the user account was created' })\n\n // Post-Author Association (Many-to-One)\n postEntity.addAssociation(\n { key: userEntity.key },\n {\n info: { name: 'author', displayName: 'Post Author', description: 'Author who wrote this post' },\n required: true,\n multiple: false,\n semantics: [{ id: SemanticType.ResourceOwnerIdentifier }],\n }\n )\n\n //\n // 3. SOCIAL FEATURES NAMESPACE\n //\n const socialFeatures = domain.addNamespace({\n info: {\n name: 'SocialFeatures',\n displayName: 'Social Features',\n description: 'Comments, likes, shares, and social interactions',\n },\n })\n\n // Comment Model\n const commentModel = socialFeatures.addModel({\n info: {\n name: 'Comments',\n displayName: 'Comment System',\n description: 'Post comments and replies',\n },\n })\n\n // Comment Entity\n const commentEntity = commentModel.addEntity({\n info: {\n name: 'comment',\n displayName: 'Comment',\n description: 'User comments on posts',\n },\n })\n\n addIdField(commentEntity, { displayName: 'Comment ID', description: 'Unique identifier for the comment' })\n\n commentEntity.addProperty({\n info: { name: 'content', displayName: 'Comment Content', description: 'Content of the comment' },\n type: 'string',\n required: true,\n })\n\n commentEntity.addProperty({\n info: {\n name: 'author_name',\n displayName: 'Author Name',\n description: 'Name of the comment author (for guest comments)',\n },\n type: 'string',\n })\n\n addEmailField(commentEntity, {\n name: 'author_email',\n displayName: 'Author Email',\n description: 'Email of the comment author (for guest comments)',\n })\n\n addCustomStatusField(commentEntity, ['pending', 'approved', 'rejected', 'spam'], {\n displayName: 'Comment Status',\n description: 'Moderation status of the comment',\n })\n\n // commentEntity.addProperty({\n // info: { name: 'ip_address', displayName: 'IP Address', description: 'IP address of the commenter' },\n // type: 'string',\n // semantics: [{ id: SemanticType.IPAddress }],\n // })\n\n commentEntity.addProperty({\n info: { name: 'user_agent', displayName: 'User Agent', description: 'Browser user agent string' },\n type: 'string',\n })\n\n addCreatedAtField(commentEntity, { description: 'When the comment was created' })\n\n // Comment-Post Association (Many-to-One)\n commentEntity.addAssociation(\n { key: postEntity.key },\n {\n info: { name: 'post', displayName: 'Post', description: 'Post this comment belongs to' },\n required: true,\n multiple: false,\n }\n )\n\n // Comment-User Association (Many-to-One) - Optional for guest comments\n commentEntity.addAssociation(\n { key: userEntity.key },\n {\n info: { name: 'author', displayName: 'Comment Author', description: 'Registered user who wrote this comment' },\n required: false,\n multiple: false,\n semantics: [{ id: SemanticType.ResourceOwnerIdentifier }],\n }\n )\n\n // Self-referencing association for comment replies\n commentEntity.addAssociation(\n { key: commentEntity.key },\n {\n info: { name: 'parent_comment', displayName: 'Parent Comment', description: 'Parent comment for replies' },\n required: false,\n multiple: false,\n }\n )\n\n //\n // 4. ANALYTICS NAMESPACE\n //\n const analytics = domain.addNamespace({\n info: {\n name: 'Analytics',\n displayName: 'Analytics & Tracking',\n description: 'Analytics, metrics, and performance tracking',\n },\n })\n\n // Analytics Model\n const analyticsModel = analytics.addModel({\n info: {\n name: 'Analytics',\n displayName: 'Content Analytics',\n description: 'Content performance and user engagement metrics',\n },\n })\n\n // Page View Entity\n const pageViewEntity = analyticsModel.addEntity({\n info: {\n name: 'page_view',\n displayName: 'Page View',\n description: 'Individual page view tracking record',\n },\n })\n\n addIdField(pageViewEntity, { displayName: 'Page View ID', description: 'Unique identifier for the page view' })\n\n pageViewEntity.addProperty({\n info: { name: 'path', displayName: 'Page Path', description: 'URL path of the viewed page' },\n type: 'string',\n required: true,\n })\n\n pageViewEntity.addProperty({\n info: { name: 'referrer', displayName: 'Referrer', description: 'Referring URL' },\n type: 'string',\n semantics: [createURLSemantic()],\n })\n\n // pageViewEntity.addProperty({\n // info: { name: 'ip_address', displayName: 'IP Address', description: 'Visitor IP address' },\n // type: 'string',\n // semantics: [{ id: SemanticType.IPAddress }],\n // })\n\n pageViewEntity.addProperty({\n info: { name: 'user_agent', displayName: 'User Agent', description: 'Browser user agent string' },\n type: 'string',\n })\n\n pageViewEntity.addProperty({\n info: { name: 'session_id', displayName: 'Session ID', description: 'Visitor session identifier' },\n type: 'string',\n })\n\n addCreatedAtField(pageViewEntity, {\n name: 'viewed_at',\n displayName: 'Viewed At',\n description: 'When the page was viewed',\n })\n\n // PageView-Post Association (Many-to-One) - Optional, only for post views\n pageViewEntity.addAssociation(\n { key: postEntity.key },\n {\n info: { name: 'post', displayName: 'Viewed Post', description: 'Post that was viewed (if applicable)' },\n required: false,\n multiple: false,\n }\n )\n\n // PageView-Publication Association (Many-to-One)\n pageViewEntity.addAssociation(\n { key: publicationEntity.key },\n {\n info: { name: 'publication', displayName: 'Publication', description: 'Publication this page view belongs to' },\n required: true,\n multiple: false,\n }\n )\n\n //\n // 5. MEDIA MANAGEMENT NAMESPACE\n //\n const mediaManagement = domain.addNamespace({\n info: {\n name: 'MediaManagement',\n displayName: 'Media Management',\n description: 'Image, video, and file upload management',\n },\n })\n\n // Media Model\n const mediaModel = mediaManagement.addModel({\n info: {\n name: 'Media',\n displayName: 'Media Library',\n description: 'Uploaded files, images, and media assets',\n },\n })\n\n // Media File Entity\n const mediaFileEntity = mediaModel.addEntity({\n info: {\n name: 'media_file',\n displayName: 'Media File',\n description: 'Uploaded media files (images, videos, documents)',\n },\n })\n\n addIdField(mediaFileEntity, { displayName: 'Media File ID', description: 'Unique identifier for the media file' })\n\n mediaFileEntity.addProperty({\n info: { name: 'filename', displayName: 'File Name', description: 'Original filename of the uploaded file' },\n type: 'string',\n required: true,\n })\n\n mediaFileEntity.addProperty({\n info: { name: 'storage_key', displayName: 'Storage Key', description: 'Unique storage key for the file' },\n type: 'string',\n required: true,\n unique: true,\n })\n\n mediaFileEntity.addProperty({\n info: { name: 'url', displayName: 'File URL', description: 'Public URL to access the file' },\n type: 'string',\n required: true,\n semantics: [createURLSemantic()],\n })\n\n mediaFileEntity.addProperty({\n info: { name: 'mime_type', displayName: 'MIME Type', description: 'MIME type of the file' },\n type: 'string',\n required: true,\n })\n\n addQuantityField(mediaFileEntity, {\n name: 'file_size',\n displayName: 'File Size',\n description: 'File size in bytes',\n })\n\n addQuantityField(mediaFileEntity, {\n name: 'width',\n displayName: 'Image Width',\n description: 'Width in pixels (for images)',\n })\n\n addQuantityField(mediaFileEntity, {\n name: 'height',\n displayName: 'Image Height',\n description: 'Height in pixels (for images)',\n })\n\n mediaFileEntity.addProperty({\n info: { name: 'alt_text', displayName: 'Alt Text', description: 'Alternative text for accessibility' },\n type: 'string',\n // semantics: [{ id: SemanticType.ImageAltText }],\n })\n\n addCreatedAtField(mediaFileEntity, {\n name: 'uploaded_at',\n displayName: 'Uploaded At',\n description: 'When the file was uploaded',\n })\n\n // MediaFile-User Association (Many-to-One)\n mediaFileEntity.addAssociation(\n { key: userEntity.key },\n {\n info: { name: 'uploader', displayName: 'File Uploader', description: 'User who uploaded this file' },\n required: true,\n multiple: false,\n semantics: [{ id: SemanticType.ResourceOwnerIdentifier }],\n }\n )\n\n // MediaFile-Publication Association (Many-to-One)\n mediaFileEntity.addAssociation(\n { key: publicationEntity.key },\n {\n info: { name: 'publication', displayName: 'Publication', description: 'Publication this media file belongs to' },\n required: true,\n multiple: false,\n }\n )\n\n return domain\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ecommerce-domain.d.ts","sourceRoot":"","sources":["../../../../src/modeling/templates/ecommerce-domain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AA8B7C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAavD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,OAAO,GAAE,qBAA0B,GAAG,UAAU,CAkvB7F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ecommerce-domain.js","sourceRoot":"","sources":["../../../../src/modeling/templates/ecommerce-domain.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * E-Commerce Data Domain Example\n *\n * This file demonstrates how to create a comprehensive e-commerce data domain\n * using the API Client Core modeling system. It follows the business-first approach\n * and demonstrates proper use of namespaces, models, entities, properties,\n * associations, and semantic annotations.\n *\n * The example includes:\n * - User Management domain with proper authentication setup\n * - Product Catalog with categories and inventory\n * - Order Management with cart functionality and payment processing\n * - Proper semantic annotations for security, timestamps, and business logic\n * - Realistic associations between entities with proper cardinality\n *\n * @example\n * ```typescript\n * import { createEcommerceDomain } from './ecommerce-domain.js'\n *\n * const domain = createEcommerceDomain()\n * console.log('Domain created with', domain.graph.nodeCount(), 'nodes')\n * ```\n */\n\nimport { DataDomain } from '../DataDomain.js'\nimport { SemanticType } from '../Semantics.js'\nimport { createCalculatedSemantic } from '../definitions/Calculated.js'\nimport { createCurrencySemantic } from '../definitions/Currency.js'\nimport { createSummarySemantic } from '../definitions/Summary.js'\nimport {\n addAvatarUrlField,\n addCreatedAtField,\n addDescriptionField,\n addEmailField,\n addFirstNameField,\n addIdField,\n addLastNameField,\n addNameField,\n addPasswordField,\n addPhoneField,\n addPublicUniqueNameField,\n addUpdatedAtField,\n addSkuField,\n addPriceField,\n addQuantityField,\n addWeightField,\n addImagesField,\n addCustomStatusField,\n addBooleanField,\n addSessionIdField,\n addExpiresAtField,\n addUnitPriceField,\n addCurrencyAmountField,\n} from '../helpers/Intelisense.js'\nimport type { CreateTemplateOptions } from './types.js'\n\nfunction createDomain(): DataDomain {\n return new DataDomain({\n info: {\n name: 'E-Commerce Platform',\n displayName: 'E-Commerce Platform',\n description:\n 'A comprehensive e-commerce platform with user management, product catalog, and order processing capabilities',\n },\n })\n}\n\n/**\n * Creates a comprehensive e-commerce data domain following domain-driven design principles.\n *\n * This function demonstrates the proper hierarchy and organization for a business domain:\n * 1. Creates the root DataDomain\n * 2. Organizes functionality into logical namespaces (User Management, Product Catalog, etc.)\n * 3. Groups related entities into models within each namespace\n * 4. Defines entities with proper semantic annotations\n * 5. Establishes associations with appropriate cardinality and business rules\n *\n * @returns A fully configured DataDomain with all e-commerce entities and relationships\n */\nexport default function createEcommerceDomain(options: CreateTemplateOptions = {}): DataDomain {\n // Ensure the root data domain\n const domain = options.domain ?? createDomain()\n\n //\n // 1. USER MANAGEMENT NAMESPACE\n //\n const userManagement = domain.addNamespace({\n info: {\n name: 'UserManagement',\n displayName: 'User Management',\n description: 'Handles user authentication, authorization, and profile management',\n },\n })\n\n // User Authentication Model\n const authModel = userManagement.addModel({\n info: {\n name: 'Authentication',\n displayName: 'User Authentication',\n description: 'User accounts and authentication data',\n },\n })\n\n // User Entity - The core user account\n const userEntity = authModel.addEntity({\n info: {\n name: 'User',\n displayName: 'User Account',\n description: 'Represents a user account in the system',\n },\n semantics: [{ id: SemanticType.User }], // Mark this as a User entity for system-wide recognition\n })\n\n // User properties with proper semantic annotations\n addIdField(userEntity, { displayName: 'User ID', description: 'Unique identifier for the user' })\n addEmailField(userEntity, { description: 'User email address for login and communication' })\n addPasswordField(userEntity, { description: 'User password for authentication' })\n\n const fName = addFirstNameField(userEntity, { description: 'User first name' })\n fName.required = true\n\n const lName = addLastNameField(userEntity, { description: 'User last name' })\n lName.required = true\n\n userEntity.addProperty({\n info: { name: 'role', displayName: 'User Role', description: 'User role for permission management' },\n type: 'string',\n required: true,\n schema: {\n enum: ['customer', 'admin', 'moderator'],\n defaultValue: {\n type: 'literal',\n value: 'customer',\n },\n },\n semantics: [{ id: SemanticType.UserRole }],\n })\n\n userEntity.addProperty({\n info: {\n name: 'email_verified',\n displayName: 'Email Verified',\n description: 'Whether the user has verified their email address',\n },\n type: 'boolean',\n required: true,\n schema: {\n defaultValue: {\n type: 'literal',\n value: 'false',\n },\n },\n })\n\n addCreatedAtField(userEntity, { description: 'When the user account was created' })\n addUpdatedAtField(userEntity, { description: 'When the user account was last updated' })\n\n // User Profile Model\n const profileModel = userManagement.addModel({\n info: {\n name: 'UserProfile',\n displayName: 'User Profile',\n description: 'Extended user profile information',\n },\n })\n\n // User Profile Entity\n const userProfileEntity = profileModel.addEntity({\n info: {\n name: 'user_profile',\n displayName: 'User Profile',\n description: 'Extended profile information for users',\n },\n })\n\n addIdField(userProfileEntity, { displayName: 'Profile ID', description: 'Unique identifier for the profile' })\n\n userProfileEntity.addProperty({\n info: { name: 'birthdate', displayName: 'Date of Birth', description: 'User date of birth' },\n type: 'date',\n })\n\n addPhoneField(userProfileEntity, { description: 'User phone number' })\n addAvatarUrlField(userProfileEntity, { description: 'URL to user profile picture' })\n\n // User-Profile Association (One-to-One), not required for registration flows.\n userEntity.addAssociation(\n { key: userProfileEntity.key },\n {\n info: { name: 'profile', displayName: 'User Profile', description: 'Link to extended profile information' },\n required: false,\n multiple: false,\n }\n )\n\n // Address Entity\n const addressEntity = profileModel.addEntity({\n info: {\n name: 'address',\n displayName: 'Address',\n description: 'Physical address information',\n },\n })\n\n addIdField(addressEntity, { displayName: 'Address ID', description: 'Unique identifier for the address' })\n\n addressEntity.addProperty({\n info: { name: 'type', displayName: 'Address Type', description: 'Type of address (shipping, billing, etc.)' },\n type: 'string',\n required: true,\n schema: {\n enum: ['shipping', 'billing', 'both'],\n },\n })\n\n addressEntity.addProperty({\n info: {\n name: 'line1',\n displayName: 'Address Line 1',\n description: 'Primary street address, including house number and street name',\n },\n type: 'string',\n required: true,\n })\n\n addressEntity.addProperty({\n info: {\n name: 'line2',\n displayName: 'Address Line 2',\n description: 'Optional field for additional street-level information like apartment numbers or building names.',\n },\n type: 'string',\n required: false,\n })\n\n addressEntity.addProperty({\n info: {\n name: 'line3',\n displayName: 'Address Line 3',\n description: 'Optional field for additional street-level information like apartment numbers or building names.',\n },\n type: 'string',\n required: false,\n })\n\n addressEntity.addProperty({\n info: { name: 'city', displayName: 'City', description: 'City name' },\n type: 'string',\n required: true,\n })\n\n addressEntity.addProperty({\n info: { name: 'state', displayName: 'State/Province', description: 'State or province' },\n type: 'string',\n required: true,\n })\n\n addressEntity.addProperty({\n info: { name: 'postal_code', displayName: 'ZIP/Postal Code', description: 'ZIP or postal code' },\n type: 'string',\n required: true,\n })\n\n addressEntity.addProperty({\n info: { name: 'country', displayName: 'Country', description: 'Country name' },\n type: 'string',\n required: true,\n })\n\n // User-Address Association (One-to-Many)\n userEntity.addAssociation(\n { key: addressEntity.key },\n {\n info: { name: 'addresses', displayName: 'User Addresses', description: 'User shipping and billing addresses' },\n required: false,\n multiple: true,\n }\n )\n\n //\n // 2. PRODUCT CATALOG NAMESPACE\n //\n const productCatalog = domain.addNamespace({\n info: {\n name: 'ProductCatalog',\n displayName: 'Product Catalog',\n description: 'Product information, categories, and inventory management',\n },\n })\n\n // Product Management Model\n const productModel = productCatalog.addModel({\n info: {\n name: 'Products',\n displayName: 'Product Management',\n description: 'Core product entities and relationships',\n },\n })\n\n // Category Entity\n const categoryEntity = productModel.addEntity({\n info: {\n name: 'category',\n displayName: 'Product Category',\n description: 'Product categorization for organization and navigation',\n },\n })\n addIdField(categoryEntity, { displayName: 'Category ID', description: 'Unique identifier for the category' })\n addNameField(categoryEntity, { displayName: 'Category Name', description: 'Display name of the category' })\n addPublicUniqueNameField(categoryEntity, {\n displayName: 'URL Slug',\n description: 'URL-friendly identifier for the category',\n })\n addDescriptionField(categoryEntity, { description: 'Category description' })\n\n // Self-referencing association for category hierarchy\n categoryEntity.addAssociation(\n { key: categoryEntity.key },\n {\n info: {\n name: 'parent_category',\n displayName: 'Parent Category',\n description: 'Parent category for hierarchical organization',\n },\n required: false,\n multiple: false,\n }\n )\n\n // Product Entity\n const productEntity = productModel.addEntity({\n info: {\n name: 'product',\n displayName: 'Product',\n description: 'Core product information and specifications',\n },\n })\n\n addIdField(productEntity, { displayName: 'Product ID', description: 'Unique identifier for the product' })\n addNameField(productEntity, { displayName: 'Product Name', description: 'Display name of the product' })\n addPublicUniqueNameField(productEntity, {\n displayName: 'URL Slug',\n description: 'URL-friendly identifier for the product',\n })\n addDescriptionField(productEntity, { description: 'Detailed product description' })\n\n productEntity.addProperty({\n info: { name: 'short_description', displayName: 'Short Description', description: 'Brief product summary' },\n type: 'string',\n semantics: [createSummarySemantic()],\n })\n\n addSkuField(productEntity, { description: 'Stock Keeping Unit - unique product identifier' })\n\n addPriceField(productEntity, { description: 'Product price in cents (USD)' })\n\n productEntity.addProperty({\n info: {\n name: 'compare_at_price',\n displayName: 'Compare at Price',\n description: 'Original price for discount display',\n },\n type: 'number',\n schema: {\n maximum: 0,\n },\n bindings: [\n {\n type: 'web',\n schema: {\n dataType: 'float',\n },\n },\n ],\n semantics: [\n createCurrencySemantic({\n storageFormat: 'integer_cents',\n defaultCurrency: 'USD',\n decimalPlaces: 2,\n allowNegative: false,\n validateCurrencyCode: true,\n }),\n ],\n })\n\n addCustomStatusField(productEntity, ['inactive', 'active', 'pending', 'archived'], {\n description: 'Current status of the product',\n })\n\n addWeightField(productEntity, { description: 'Product weight in grams' })\n\n addImagesField(productEntity, { description: 'Array of product image URLs' })\n\n addCreatedAtField(productEntity, { description: 'When the product was created' })\n addUpdatedAtField(productEntity, { description: 'When the product was last updated' })\n\n // Product-Category Association (Many-to-Many)\n productEntity.addAssociation(\n { key: categoryEntity.key },\n {\n info: {\n name: 'categories',\n displayName: 'Product Categories',\n description: 'Categories this product belongs to',\n },\n required: true,\n multiple: true,\n semantics: [{ id: SemanticType.Categories }],\n }\n )\n\n // Inventory Model\n const inventoryModel = productCatalog.addModel({\n info: {\n name: 'Inventory',\n displayName: 'Inventory Management',\n description: 'Stock levels and inventory tracking',\n },\n })\n\n // Inventory Entity\n const inventoryEntity = inventoryModel.addEntity({\n info: {\n name: 'inventory',\n displayName: 'Inventory',\n description: 'Stock levels and inventory information for products',\n },\n })\n\n addIdField(inventoryEntity, {\n displayName: 'Inventory ID',\n description: 'Unique identifier for the inventory record',\n })\n\n addQuantityField(inventoryEntity, { displayName: 'Stock Quantity', description: 'Available stock quantity' })\n\n const reservedQty = addQuantityField(inventoryEntity, {\n name: 'reserved_quantity',\n displayName: 'Reserved Quantity',\n description: 'Quantity reserved for pending orders',\n })\n reservedQty.schema = {\n defaultValue: {\n type: 'literal',\n value: '0',\n },\n minimum: 0,\n }\n\n addBooleanField(inventoryEntity, 'trackQuantity', 'true', {\n displayName: 'Track Quantity',\n description: 'Whether to track inventory for this product',\n })\n\n addBooleanField(inventoryEntity, 'allowBackorder', 'false', {\n displayName: 'Allow Backorder',\n description: 'Whether to allow ordering when out of stock',\n })\n\n // Product-Inventory Association (One-to-One)\n productEntity.addAssociation(\n { key: inventoryEntity.key },\n {\n info: {\n name: 'inventory',\n displayName: 'Product Inventory',\n description: 'Inventory information for this product',\n },\n required: true,\n multiple: false,\n }\n )\n\n //\n // 3. ORDER MANAGEMENT NAMESPACE\n //\n const orderManagement = domain.addNamespace({\n info: {\n name: 'OrderManagement',\n displayName: 'Order Management',\n description: 'Shopping cart, orders, and payment processing',\n },\n })\n\n // Shopping Cart Model\n const cartModel = orderManagement.addModel({\n info: {\n name: 'ShoppingCart',\n displayName: 'Shopping Cart',\n description: 'Shopping cart and cart items',\n },\n })\n\n // Cart Entity\n const cartEntity = cartModel.addEntity({\n info: {\n name: 'cart',\n displayName: 'Shopping Cart',\n description: 'User shopping cart',\n },\n })\n\n addIdField(cartEntity, { displayName: 'Cart ID', description: 'Unique identifier for the cart' })\n\n addSessionIdField(cartEntity, { description: 'Session identifier for guest carts' })\n\n addExpiresAtField(cartEntity, { description: 'When the cart expires for cleanup' })\n\n addCreatedAtField(cartEntity, { description: 'When the cart was created' })\n addUpdatedAtField(cartEntity, { description: 'When the cart was last updated' })\n\n // Cart-User Association (Many-to-One)\n cartEntity.addAssociation(\n { key: userEntity.key },\n {\n info: { name: 'user', displayName: 'Cart Owner', description: 'User who owns this cart' },\n required: false,\n multiple: false,\n semantics: [{ id: SemanticType.ResourceOwnerIdentifier }],\n }\n )\n\n // Cart Item Entity\n const cartItemEntity = cartModel.addEntity({\n info: {\n name: 'cart_item',\n displayName: 'Cart Item',\n description: 'Individual items in a shopping cart',\n },\n })\n\n addIdField(cartItemEntity, { displayName: 'Cart Item ID', description: 'Unique identifier for the cart item' })\n\n const cartItemQuantity = addQuantityField(cartItemEntity, { description: 'Number of items' })\n cartItemQuantity.schema = { minimum: 1 }\n\n const cartUnitPrice = addUnitPriceField(cartItemEntity, { description: 'Price per unit at time of adding to cart' })\n\n cartItemEntity.addProperty({\n info: { name: 'total_price', displayName: 'Total Price', description: 'Total price for this line item' },\n type: 'number',\n required: true,\n readOnly: true,\n semantics: [\n createCurrencySemantic({\n storageFormat: 'integer_cents',\n defaultCurrency: 'USD',\n decimalPlaces: 2,\n allowNegative: false,\n }),\n createCalculatedSemantic({\n formula: '{{unitPrice}} * {{quantity}}',\n dependencies: [cartUnitPrice.key, cartItemQuantity.key],\n recalculateOnUpdate: true,\n }),\n ],\n })\n\n // Cart-CartItem Association (One-to-Many)\n cartEntity.addAssociation(\n { key: cartItemEntity.key },\n {\n info: { name: 'items', displayName: 'Cart Items', description: 'Items in this cart' },\n required: false,\n multiple: true,\n onDelete: 'cascade',\n }\n )\n\n // CartItem-Product Association (Many-to-One)\n cartItemEntity.addAssociation(\n { key: productEntity.key },\n {\n info: { name: 'product', displayName: 'Product', description: 'Product for this cart item' },\n required: true,\n multiple: false,\n }\n )\n\n // Order Processing Model\n const orderModel = orderManagement.addModel({\n info: {\n name: 'Orders',\n displayName: 'Order Processing',\n description: 'Orders and order fulfillment',\n },\n })\n\n // Order Entity\n const orderEntity = orderModel.addEntity({\n info: {\n name: 'order',\n displayName: 'Order',\n description: 'Customer order',\n },\n })\n\n addIdField(orderEntity, { displayName: 'Order ID', description: 'Unique identifier for the order' })\n\n orderEntity.addProperty({\n info: { name: 'order_number', displayName: 'Order Number', description: 'Human-readable order number' },\n type: 'string',\n required: true,\n unique: true,\n })\n\n addCustomStatusField(\n orderEntity,\n ['pending', 'confirmed', 'processing', 'shipped', 'delivered', 'cancelled', 'refunded'],\n {\n displayName: 'Order Status',\n description: 'Current status of the order',\n }\n )\n\n const subtotal = addCurrencyAmountField(orderEntity, 'subtotal', 'Subtotal', {\n description: 'Order subtotal before taxes and shipping',\n })\n\n const taxAmount = addCurrencyAmountField(orderEntity, 'taxAmount', 'Tax Amount', {\n description: 'Total tax amount',\n })\n\n const shippingAmount = addCurrencyAmountField(orderEntity, 'shippingAmount', 'Shipping Amount', {\n description: 'Shipping cost',\n })\n\n orderEntity.addProperty({\n info: { name: 'total_amount', displayName: 'Total Amount', description: 'Final order total' },\n type: 'number',\n required: true,\n semantics: [\n createCurrencySemantic({\n storageFormat: 'integer_cents',\n defaultCurrency: 'USD',\n decimalPlaces: 2,\n allowNegative: false,\n }),\n createCalculatedSemantic({\n formula: '{{subtotal}} + {{taxAmount}} + {{shippingAmount}}',\n dependencies: [subtotal.key, taxAmount.key, shippingAmount.key],\n recalculateOnUpdate: true,\n }),\n ],\n })\n\n orderEntity.addProperty({\n info: { name: 'notes', displayName: 'Order Notes', description: 'Customer notes or special instructions' },\n type: 'string',\n })\n\n addCreatedAtField(orderEntity, { description: 'When the order was created' })\n addUpdatedAtField(orderEntity, { description: 'When the order was last updated' })\n\n // Order-User Association (Many-to-One)\n orderEntity.addAssociation(\n { key: userEntity.key },\n {\n info: { name: 'customer', displayName: 'Customer', description: 'Customer who placed this order' },\n required: true,\n multiple: false,\n semantics: [{ id: SemanticType.ResourceOwnerIdentifier }],\n }\n )\n\n // Order-Address Associations (Many-to-One)\n orderEntity.addAssociation(\n { key: addressEntity.key },\n {\n info: { name: 'shipping_address', displayName: 'Shipping Address', description: 'Address for order delivery' },\n required: true,\n multiple: false,\n }\n )\n\n orderEntity.addAssociation(\n { key: addressEntity.key },\n {\n info: { name: 'billing_address', displayName: 'Billing Address', description: 'Address for billing purposes' },\n required: true,\n multiple: false,\n }\n )\n\n // Order Line Item Entity\n const orderItemEntity = orderModel.addEntity({\n info: {\n name: 'order_item',\n displayName: 'Order Line Item',\n description: 'Individual line items in an order',\n },\n })\n\n addIdField(orderItemEntity, { displayName: 'Order Item ID', description: 'Unique identifier for the order item' })\n\n const quantity = addQuantityField(orderItemEntity, { description: 'Number of items ordered' })\n quantity.schema = { minimum: 1 }\n\n const unitPrice = addUnitPriceField(orderItemEntity, { description: 'Price per unit at time of order' })\n\n orderItemEntity.addProperty({\n info: { name: 'total_price', displayName: 'Total Price', description: 'Total price for this line item' },\n type: 'number',\n required: true,\n readOnly: true,\n semantics: [\n createCurrencySemantic({\n storageFormat: 'integer_cents',\n defaultCurrency: 'USD',\n decimalPlaces: 2,\n allowNegative: false,\n }),\n createCalculatedSemantic({\n formula: '{{quantity}} * {{unitPrice}}',\n dependencies: [quantity.key, unitPrice.key],\n recalculateOnUpdate: true,\n }),\n ],\n })\n\n // orderItemEntity.addProperty({\n // info: {\n // name: 'productSnapshot',\n // displayName: 'Product Snapshot',\n // description: 'Snapshot of product data at time of order',\n // },\n // type: 'object',\n // required: true,\n // readOnly: true,\n // })\n\n // Order-OrderItem Association (One-to-Many)\n orderEntity.addAssociation(\n { key: orderItemEntity.key },\n {\n info: { name: 'items', displayName: 'Order Items', description: 'Items in this order' },\n required: true,\n multiple: true,\n onDelete: 'cascade',\n }\n )\n\n // OrderItem-Product Association (Many-to-One)\n orderItemEntity.addAssociation(\n { key: productEntity.key },\n {\n info: { name: 'product', displayName: 'Product', description: 'Product for this order item' },\n required: true,\n multiple: false,\n }\n )\n\n // Payment Model\n const paymentModel = orderManagement.addModel({\n info: {\n name: 'Payments',\n displayName: 'Payment Processing',\n description: 'Payment methods and transactions',\n },\n })\n\n // Payment Entity\n const paymentEntity = paymentModel.addEntity({\n info: {\n name: 'payment',\n displayName: 'Payment',\n description: 'Payment transaction record',\n },\n })\n\n addIdField(paymentEntity, { displayName: 'Payment ID', description: 'Unique identifier for the payment' })\n\n paymentEntity.addProperty({\n info: { name: 'method', displayName: 'Payment Method', description: 'Method used for payment' },\n type: 'string',\n required: true,\n schema: {\n enum: ['credit_card', 'debit_card', 'paypal', 'bank_transfer', 'apple_pay', 'google_pay'],\n },\n })\n\n addCustomStatusField(paymentEntity, ['pending', 'authorized', 'captured', 'failed', 'cancelled', 'refunded'], {\n displayName: 'Payment Status',\n description: 'Current status of the payment',\n })\n\n addCurrencyAmountField(paymentEntity, 'amount', 'Payment Amount', { description: 'Amount charged' })\n\n paymentEntity.addProperty({\n info: { name: 'currency', displayName: 'Currency', description: 'Currency code for the payment' },\n type: 'string',\n required: true,\n schema: {\n defaultValue: {\n type: 'literal',\n value: 'USD',\n },\n },\n })\n\n paymentEntity.addProperty({\n info: {\n name: 'transaction_id',\n displayName: 'Transaction ID',\n description: 'External payment processor transaction ID',\n },\n type: 'string',\n })\n\n // paymentEntity.addProperty({\n // info: {\n // name: 'gatewayResponse',\n // displayName: 'Gateway Response',\n // description: 'Raw response from payment gateway',\n // },\n // type: 'object',\n // readOnly: true,\n // })\n\n addCreatedAtField(paymentEntity, { description: 'When the payment was created' })\n\n // Order-Payment Association (One-to-Many)\n orderEntity.addAssociation(\n { key: paymentEntity.key },\n {\n info: { name: 'payments', displayName: 'Order Payments', description: 'Payment transactions for this order' },\n required: false,\n multiple: true,\n onDelete: 'restrict', // Don't allow order deletion if payments exist\n }\n )\n\n return domain\n}\n"]}