@api-client/core 0.18.21 → 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 (138) 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 +1 -0
  6. package/build/src/modeling/templates/index.d.ts.map +1 -1
  7. package/build/src/modeling/templates/index.js +2 -0
  8. package/build/src/modeling/templates/index.js.map +1 -1
  9. package/build/src/modeling/templates/meta/education-management-platform.json +1 -0
  10. package/build/src/modeling/templates/meta/financial-services-platform.json +1 -0
  11. package/build/src/modeling/templates/meta/gaming-platform.json +1 -0
  12. package/build/src/modeling/templates/meta/healthcare-management-platform.json +1 -0
  13. package/build/src/modeling/templates/meta/hospitality-platform.json +1 -0
  14. package/build/src/modeling/templates/meta/index.d.ts +2 -2
  15. package/build/src/modeling/templates/meta/index.d.ts.map +1 -1
  16. package/build/src/modeling/templates/meta/index.js +31 -1
  17. package/build/src/modeling/templates/meta/index.js.map +1 -1
  18. package/build/src/modeling/templates/meta/iot-smart-home-platform.json +1 -0
  19. package/build/src/modeling/templates/meta/legal-services-platform.json +1 -0
  20. package/build/src/modeling/templates/meta/manufacturing-platform.json +1 -0
  21. package/build/src/modeling/templates/meta/non-profit-platform.json +1 -0
  22. package/build/src/modeling/templates/meta/real-estate-management-platform.json +1 -0
  23. package/build/src/modeling/templates/template-registry.d.ts +14 -0
  24. package/build/src/modeling/templates/template-registry.d.ts.map +1 -1
  25. package/build/src/modeling/templates/template-registry.js +63 -0
  26. package/build/src/modeling/templates/template-registry.js.map +1 -1
  27. package/build/src/modeling/templates/{ecommerce-domain.d.ts → verticals/business-services/ecommerce-domain.d.ts} +2 -2
  28. package/build/src/modeling/templates/verticals/business-services/ecommerce-domain.d.ts.map +1 -0
  29. package/build/src/modeling/templates/{ecommerce-domain.js → verticals/business-services/ecommerce-domain.js} +6 -6
  30. package/build/src/modeling/templates/verticals/business-services/ecommerce-domain.js.map +1 -0
  31. package/build/src/modeling/templates/verticals/business-services/financial-services-domain.d.ts +40 -0
  32. package/build/src/modeling/templates/verticals/business-services/financial-services-domain.d.ts.map +1 -0
  33. package/build/src/modeling/templates/verticals/business-services/financial-services-domain.js +744 -0
  34. package/build/src/modeling/templates/verticals/business-services/financial-services-domain.js.map +1 -0
  35. package/build/src/modeling/templates/verticals/business-services/hospitality-domain.d.ts +45 -0
  36. package/build/src/modeling/templates/verticals/business-services/hospitality-domain.d.ts.map +1 -0
  37. package/build/src/modeling/templates/verticals/business-services/hospitality-domain.js +797 -0
  38. package/build/src/modeling/templates/verticals/business-services/hospitality-domain.js.map +1 -0
  39. package/build/src/modeling/templates/verticals/business-services/index.d.ts +21 -0
  40. package/build/src/modeling/templates/verticals/business-services/index.d.ts.map +1 -0
  41. package/build/src/modeling/templates/verticals/business-services/index.js +50 -0
  42. package/build/src/modeling/templates/verticals/business-services/index.js.map +1 -0
  43. package/build/src/modeling/templates/verticals/business-services/legal-services-domain.d.ts +46 -0
  44. package/build/src/modeling/templates/verticals/business-services/legal-services-domain.d.ts.map +1 -0
  45. package/build/src/modeling/templates/verticals/business-services/legal-services-domain.js +837 -0
  46. package/build/src/modeling/templates/verticals/business-services/legal-services-domain.js.map +1 -0
  47. package/build/src/modeling/templates/verticals/education-training/education-domain.d.ts +40 -0
  48. package/build/src/modeling/templates/verticals/education-training/education-domain.d.ts.map +1 -0
  49. package/build/src/modeling/templates/verticals/education-training/education-domain.js +725 -0
  50. package/build/src/modeling/templates/verticals/education-training/education-domain.js.map +1 -0
  51. package/build/src/modeling/templates/verticals/education-training/index.d.ts +18 -0
  52. package/build/src/modeling/templates/verticals/education-training/index.d.ts.map +1 -0
  53. package/build/src/modeling/templates/verticals/education-training/index.js +21 -0
  54. package/build/src/modeling/templates/verticals/education-training/index.js.map +1 -0
  55. package/build/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.d.ts +40 -0
  56. package/build/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.d.ts.map +1 -0
  57. package/build/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.js +859 -0
  58. package/build/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.js.map +1 -0
  59. package/build/src/modeling/templates/verticals/healthcare-life-sciences/index.d.ts +18 -0
  60. package/build/src/modeling/templates/verticals/healthcare-life-sciences/index.d.ts.map +1 -0
  61. package/build/src/modeling/templates/verticals/healthcare-life-sciences/index.js +21 -0
  62. package/build/src/modeling/templates/verticals/healthcare-life-sciences/index.js.map +1 -0
  63. package/build/src/modeling/templates/verticals/index.d.ts +79 -0
  64. package/build/src/modeling/templates/verticals/index.d.ts.map +1 -0
  65. package/build/src/modeling/templates/verticals/index.js +186 -0
  66. package/build/src/modeling/templates/verticals/index.js.map +1 -0
  67. package/build/src/modeling/templates/verticals/manufacturing-logistics/index.d.ts +18 -0
  68. package/build/src/modeling/templates/verticals/manufacturing-logistics/index.d.ts.map +1 -0
  69. package/build/src/modeling/templates/verticals/manufacturing-logistics/index.js +22 -0
  70. package/build/src/modeling/templates/verticals/manufacturing-logistics/index.js.map +1 -0
  71. package/build/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.d.ts +45 -0
  72. package/build/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.d.ts.map +1 -0
  73. package/build/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.js +710 -0
  74. package/build/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.js.map +1 -0
  75. package/build/src/modeling/templates/verticals/public-sector/index.d.ts +18 -0
  76. package/build/src/modeling/templates/verticals/public-sector/index.d.ts.map +1 -0
  77. package/build/src/modeling/templates/verticals/public-sector/index.js +22 -0
  78. package/build/src/modeling/templates/verticals/public-sector/index.js.map +1 -0
  79. package/build/src/modeling/templates/verticals/public-sector/non-profit-domain.d.ts +47 -0
  80. package/build/src/modeling/templates/verticals/public-sector/non-profit-domain.d.ts.map +1 -0
  81. package/build/src/modeling/templates/verticals/public-sector/non-profit-domain.js +864 -0
  82. package/build/src/modeling/templates/verticals/public-sector/non-profit-domain.js.map +1 -0
  83. package/build/src/modeling/templates/verticals/real-estate-construction/index.d.ts +18 -0
  84. package/build/src/modeling/templates/verticals/real-estate-construction/index.d.ts.map +1 -0
  85. package/build/src/modeling/templates/verticals/real-estate-construction/index.js +21 -0
  86. package/build/src/modeling/templates/verticals/real-estate-construction/index.js.map +1 -0
  87. package/build/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.d.ts +40 -0
  88. package/build/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.d.ts.map +1 -0
  89. package/build/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.js +727 -0
  90. package/build/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.js.map +1 -0
  91. package/build/src/modeling/templates/{blog-domain.d.ts → verticals/technology-media/blog-domain.d.ts} +2 -2
  92. package/build/src/modeling/templates/verticals/technology-media/blog-domain.d.ts.map +1 -0
  93. package/build/src/modeling/templates/{blog-domain.js → verticals/technology-media/blog-domain.js} +5 -5
  94. package/build/src/modeling/templates/verticals/technology-media/blog-domain.js.map +1 -0
  95. package/build/src/modeling/templates/verticals/technology-media/gaming-domain.d.ts +46 -0
  96. package/build/src/modeling/templates/verticals/technology-media/gaming-domain.d.ts.map +1 -0
  97. package/build/src/modeling/templates/verticals/technology-media/gaming-domain.js +1033 -0
  98. package/build/src/modeling/templates/verticals/technology-media/gaming-domain.js.map +1 -0
  99. package/build/src/modeling/templates/verticals/technology-media/index.d.ts +21 -0
  100. package/build/src/modeling/templates/verticals/technology-media/index.d.ts.map +1 -0
  101. package/build/src/modeling/templates/verticals/technology-media/index.js +42 -0
  102. package/build/src/modeling/templates/verticals/technology-media/index.js.map +1 -0
  103. package/build/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.d.ts +47 -0
  104. package/build/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.d.ts.map +1 -0
  105. package/build/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.js +1027 -0
  106. package/build/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.js.map +1 -0
  107. package/build/tsconfig.tsbuildinfo +1 -1
  108. package/package.json +1 -1
  109. package/src/modeling/helpers/Intelisense.ts +1 -0
  110. package/src/modeling/templates/meta/education-management-platform.json +1 -0
  111. package/src/modeling/templates/meta/financial-services-platform.json +1 -0
  112. package/src/modeling/templates/meta/gaming-platform.json +1 -0
  113. package/src/modeling/templates/meta/healthcare-management-platform.json +1 -0
  114. package/src/modeling/templates/meta/hospitality-platform.json +1 -0
  115. package/src/modeling/templates/meta/iot-smart-home-platform.json +1 -0
  116. package/src/modeling/templates/meta/legal-services-platform.json +1 -0
  117. package/src/modeling/templates/meta/manufacturing-platform.json +1 -0
  118. package/src/modeling/templates/meta/non-profit-platform.json +1 -0
  119. package/src/modeling/templates/meta/real-estate-management-platform.json +1 -0
  120. package/src/modeling/templates/readme.md +14 -0
  121. package/src/modeling/templates/template-registry.ts +73 -0
  122. package/src/modeling/templates/verticals/README.md +122 -0
  123. package/src/modeling/templates/{ecommerce-domain.ts → verticals/business-services/ecommerce-domain.ts} +7 -7
  124. package/src/modeling/templates/verticals/business-services/financial-services-domain.ts +943 -0
  125. package/src/modeling/templates/verticals/business-services/hospitality-domain.ts +994 -0
  126. package/src/modeling/templates/verticals/business-services/legal-services-domain.ts +1059 -0
  127. package/src/modeling/templates/verticals/education-training/education-domain.ts +922 -0
  128. package/src/modeling/templates/verticals/healthcare-life-sciences/healthcare-domain.ts +1111 -0
  129. package/src/modeling/templates/verticals/manufacturing-logistics/manufacturing-domain.ts +895 -0
  130. package/src/modeling/templates/verticals/public-sector/non-profit-domain.ts +1109 -0
  131. package/src/modeling/templates/verticals/real-estate-construction/real-estate-domain.ts +944 -0
  132. package/src/modeling/templates/{blog-domain.ts → verticals/technology-media/blog-domain.ts} +6 -6
  133. package/src/modeling/templates/verticals/technology-media/gaming-domain.ts +1290 -0
  134. package/src/modeling/templates/verticals/technology-media/iot-smart-home-domain.ts +1287 -0
  135. package/build/src/modeling/templates/blog-domain.d.ts.map +0 -1
  136. package/build/src/modeling/templates/blog-domain.js.map +0 -1
  137. package/build/src/modeling/templates/ecommerce-domain.d.ts.map +0 -1
  138. package/build/src/modeling/templates/ecommerce-domain.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legal-services-domain.js","sourceRoot":"","sources":["../../../../../../src/modeling/templates/verticals/business-services/legal-services-domain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EACL,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,iCAAiC,CAAA;AAGxC,SAAS,YAAY;IACnB,OAAO,IAAI,UAAU,CAAC;QACpB,IAAI,EAAE;YACJ,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE,yBAAyB;YACtC,WAAW,EACT,sFAAsF;gBACtF,sEAAsE;SACzE;KACF,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,UAAiC,EAAE;IACnF,8BAA8B;IAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,YAAY,EAAE,CAAA;IAE/C,EAAE;IACF,+BAA+B;IAC/B,EAAE;IACF,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC;QACzC,IAAI,EAAE;YACJ,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EAAE,0CAA0C;SACxD;KACF,CAAC,CAAA;IAEF,aAAa;IACb,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC;QACxC,IAAI,EAAE;YACJ,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EAAE,yBAAyB;SACvC;KACF,CAAC,CAAA;IAEF,cAAc;IACd,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC;QACrC,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,MAAM;YACnB,WAAW,EAAE,sBAAsB;SACpC;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC,CAAA;IAEjG,YAAY,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,CAAA;IAEhE,mBAAmB,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC,CAAA;IAEhF,UAAU,CAAC,WAAW,CAAC;QACrB,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,sBAAsB,EAAE;QAC9F,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;KACb,CAAC,CAAA;IAEF,UAAU,CAAC,WAAW,CAAC;QACrB,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE;QACxF,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,uBAAuB,EAAE,YAAY,CAAC;SACzG;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,WAAW,CAAC;QACrB,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,qBAAqB,EAAE;QACjG,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE;gBACJ,YAAY;gBACZ,WAAW;gBACX,aAAa;gBACb,YAAY;gBACZ,kBAAkB;gBAClB,uBAAuB;gBACvB,YAAY;gBACZ,YAAY;gBACZ,KAAK;gBACL,iBAAiB;aAClB;SACF;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,WAAW,CAAC;QACrB,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE;QAC1F,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,UAAU,CAAC,WAAW,CAAC;QACrB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE;QACvF,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,UAAU,CAAC,WAAW,CAAC;QACrB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE;QAC5E,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,oBAAoB,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE;QACrF,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE,4BAA4B;KAC1C,CAAC,CAAA;IAEF,iBAAiB,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC,CAAA;IAC3E,iBAAiB,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC,CAAA;IAEhF,gBAAgB;IAChB,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC;QACvC,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,0BAA0B;SACxC;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC,CAAA;IAEvG,YAAY,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC,CAAA;IAE1E,mBAAmB,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC,CAAA;IAEpF,YAAY,CAAC,WAAW,CAAC;QACvB,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,sBAAsB,EAAE;QAC9F,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,CAAC;SAC/E;KACF,CAAC,CAAA;IAEF,YAAY,CAAC,WAAW,CAAC;QACvB,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,uBAAuB,EAAE;QACzF,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SAC1C;KACF,CAAC,CAAA;IAEF,oBAAoB,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE;QAChF,WAAW,EAAE,eAAe;QAC5B,WAAW,EAAE,8BAA8B;KAC5C,CAAC,CAAA;IAEF,iBAAiB,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC,CAAA;IAE/E,wCAAwC;IACxC,YAAY,CAAC,cAAc,CACzB,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,EACvB;QACE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE;QAChF,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;KAChB,CACF,CAAA;IAED,wBAAwB;IACxB,MAAM,mBAAmB,GAAG,SAAS,CAAC,SAAS,CAAC;QAC9C,IAAI,EAAE;YACJ,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,gBAAgB;YAC7B,WAAW,EAAE,qCAAqC;SACnD;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,mBAAmB,EAAE;QAC9B,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,0CAA0C;KACxD,CAAC,CAAA;IAEF,YAAY,CAAC,mBAAmB,EAAE,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,CAAA;IAEhF,mBAAmB,CAAC,mBAAmB,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC,CAAA;IAE1F,mBAAmB,CAAC,WAAW,CAAC;QAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,wBAAwB,EAAE;QAC9F,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;SACtF;KACF,CAAC,CAAA;IAEF,mBAAmB,CAAC,WAAW,CAAC;QAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE;QACzF,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,mBAAmB,CAAC,WAAW,CAAC;QAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE;QACzF,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,oBAAoB,CAAC,mBAAmB,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE;QAC9F,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,sCAAsC;KACpD,CAAC,CAAA;IAEF,iBAAiB,CAAC,mBAAmB,EAAE,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,CAAA;IAErF,+CAA+C;IAC/C,mBAAmB,CAAC,cAAc,CAChC,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,EACvB;QACE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,8BAA8B,EAAE;QACxF,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;KAChB,CACF,CAAA;IAED,EAAE;IACF,iCAAiC;IACjC,EAAE;IACF,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC;QAC3C,IAAI,EAAE;YACJ,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,mBAAmB;YAChC,WAAW,EAAE,8CAA8C;SAC5D;KACF,CAAC,CAAA;IAEF,eAAe;IACf,MAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QAC5C,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,mBAAmB;YAChC,WAAW,EAAE,+BAA+B;SAC7C;KACF,CAAC,CAAA;IAEF,gBAAgB;IAChB,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC;QACzC,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,uCAAuC;SACrD;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC,CAAA;IAEvG,YAAY,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC,CAAA;IAEpE,mBAAmB,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC,CAAA;IAElF,aAAa,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,CAAA;IAEpE,aAAa,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,CAAA;IAEnE,YAAY,CAAC,WAAW,CAAC;QACvB,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE;QACxF,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,CAAC;SAC/E;KACF,CAAC,CAAA;IAEF,YAAY,CAAC,WAAW,CAAC;QACvB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE;QAChF,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,YAAY,CAAC,WAAW,CAAC;QACvB,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,sBAAsB,EAAE;QAClG,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,oBAAoB,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE;QAC/E,WAAW,EAAE,eAAe;QAC5B,WAAW,EAAE,8BAA8B;KAC5C,CAAC,CAAA;IAEF,iBAAiB,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC,CAAA;IACtF,iBAAiB,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC,CAAA;IAE3F,iBAAiB;IACjB,MAAM,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC;QAC1C,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,qCAAqC;SACnD;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC,CAAA;IAE1G,YAAY,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC,CAAA;IAEtE,aAAa,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC,CAAA;IAEtE,aAAa,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,CAAA;IAErE,aAAa,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE;QAC3F,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,CAAC;SAC/E;KACF,CAAC,CAAA;IAEF,aAAa,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,0BAA0B,EAAE;QAC5F,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,oBAAoB,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE;QAC1D,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE,+BAA+B;KAC7C,CAAC,CAAA;IAEF,iBAAiB,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC,CAAA;IAEjF,2CAA2C;IAC3C,aAAa,CAAC,cAAc,CAC1B,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,EACzB;QACE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;QACvF,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;KAChB,CACF,CAAA;IAED,wCAAwC;IACxC,UAAU,CAAC,cAAc,CACvB,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,EACzB;QACE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;QACpF,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;KAChB,CACF,CAAA;IAED,EAAE;IACF,mCAAmC;IACnC,EAAE;IACF,MAAM,kBAAkB,GAAG,MAAM,CAAC,YAAY,CAAC;QAC7C,IAAI,EAAE;YACJ,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,qBAAqB;YAClC,WAAW,EAAE,qDAAqD;SACnE;KACF,CAAC,CAAA;IAEF,iBAAiB;IACjB,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,CAAC;QAChD,IAAI,EAAE;YACJ,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,qBAAqB;YAClC,WAAW,EAAE,2BAA2B;SACzC;KACF,CAAC,CAAA;IAEF,kBAAkB;IAClB,MAAM,cAAc,GAAG,aAAa,CAAC,SAAS,CAAC;QAC7C,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,wBAAwB;SACtC;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC,CAAA;IAE7G,YAAY,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC,CAAA;IAExE,mBAAmB,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC,CAAA;IAExF,cAAc,CAAC,WAAW,CAAC;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,wBAAwB,EAAE;QACpG,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE;gBACJ,UAAU;gBACV,UAAU;gBACV,QAAQ;gBACR,OAAO;gBACP,UAAU;gBACV,gBAAgB;gBAChB,aAAa;gBACb,sBAAsB;gBACtB,eAAe;gBACf,WAAW;aACZ;SACF;KACF,CAAC,CAAA;IAEF,cAAc,CAAC,WAAW,CAAC;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE;QACxF,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,cAAc,CAAC,WAAW,CAAC;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,6BAA6B,EAAE;QACjG,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE;YACN,OAAO,EAAE,CAAC;SACX;KACF,CAAC,CAAA;IAEF,cAAc,CAAC,WAAW,CAAC;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,sBAAsB,EAAE;QAC9F,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;SAC1D;KACF,CAAC,CAAA;IAEF,cAAc,CAAC,WAAW,CAAC;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,yBAAyB,EAAE;QACzF,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,oBAAoB,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE;QACjF,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,gCAAgC;KAC9C,CAAC,CAAA;IAEF,iBAAiB,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC,CAAA;IACnF,iBAAiB,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC,CAAA;IAExF,0CAA0C;IAC1C,cAAc,CAAC,cAAc,CAC3B,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,EACvB;QACE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,wBAAwB,EAAE;QAClF,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;KAChB,CACF,CAAA;IAED,kBAAkB;IAClB,MAAM,cAAc,GAAG,aAAa,CAAC,SAAS,CAAC;QAC7C,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,6BAA6B;SAC3C;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC,CAAA;IAE7G,YAAY,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC,CAAA;IAE9E,mBAAmB,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC,CAAA;IAExF,cAAc,CAAC,WAAW,CAAC;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE;QAC9F,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,CAAC;SAC/F;KACF,CAAC,CAAA;IAEF,cAAc,CAAC,WAAW,CAAC;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,sBAAsB,EAAE;QACpG,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,cAAc,CAAC,WAAW,CAAC;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,+BAA+B,EAAE;QACjG,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,oBAAoB,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE;QACrF,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,gCAAgC;KAC9C,CAAC,CAAA;IAEF,iBAAiB,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC,CAAA;IAEnF,0CAA0C;IAC1C,cAAc,CAAC,cAAc,CAC3B,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,EACvB;QACE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,wBAAwB,EAAE;QAClF,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;KAChB,CACF,CAAA;IAED,EAAE;IACF,6BAA6B;IAC7B,EAAE;IACF,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACvC,IAAI,EAAE;YACJ,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,eAAe;YAC5B,WAAW,EAAE,yCAAyC;SACvD;KACF,CAAC,CAAA;IAEF,aAAa;IACb,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC;QACtC,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,eAAe;YAC5B,WAAW,EAAE,2BAA2B;SACzC;KACF,CAAC,CAAA;IAEF,oBAAoB;IACpB,MAAM,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC;QAC1C,IAAI,EAAE;YACJ,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,qBAAqB;SACnC;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC,CAAA;IAE7G,YAAY,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC,CAAA;IAExE,eAAe,CAAC,WAAW,CAAC;QAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,wBAAwB,EAAE;QAC9F,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,eAAe,CAAC,WAAW,CAAC;QAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE;QAC7F,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,eAAe,CAAC,WAAW,CAAC;QAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,qBAAqB,EAAE;QACvF,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,eAAe,CAAC,WAAW,CAAC;QAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE;QAChF,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,OAAO,EAAE,CAAC;SACX;KACF,CAAC,CAAA;IAEF,eAAe,CAAC,WAAW,CAAC;QAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE;QAC9F,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,gBAAgB,CAAC;SAClH;KACF,CAAC,CAAA;IAEF,sBAAsB,CAAC,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE;QAC7D,WAAW,EAAE,qBAAqB;KACnC,CAAC,CAAA;IAEF,sBAAsB,CAAC,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE;QAChE,WAAW,EAAE,uBAAuB;KACrC,CAAC,CAAA;IAEF,oBAAoB,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;QAC/E,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,kCAAkC;KAChD,CAAC,CAAA;IAEF,iBAAiB,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,iCAAiC,EAAE,CAAC,CAAA;IAEtF,2CAA2C;IAC3C,eAAe,CAAC,cAAc,CAC5B,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,EACvB;QACE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,0BAA0B,EAAE;QACpF,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;KAChB,CACF,CAAA;IAED,sBAAsB;IACtB,MAAM,iBAAiB,GAAG,SAAS,CAAC,SAAS,CAAC;QAC5C,IAAI,EAAE;YACJ,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,wBAAwB;SACtC;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC,CAAA;IAEhH,YAAY,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC,CAAA;IAE7E,iBAAiB,CAAC,WAAW,CAAC;QAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE;QAC1F,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC;SACxD;KACF,CAAC,CAAA;IAEF,iBAAiB,CAAC,WAAW,CAAC;QAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,qBAAqB,EAAE;QACnG,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,sBAAsB,CAAC,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE;QACtE,WAAW,EAAE,qBAAqB;KACnC,CAAC,CAAA;IAEF,oBAAoB,CAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE;QACzE,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE,oCAAoC;KAClD,CAAC,CAAA;IAEF,iBAAiB,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC,CAAA;IAE1F,EAAE;IACF,mCAAmC;IACnC,EAAE;IACF,MAAM,kBAAkB,GAAG,MAAM,CAAC,YAAY,CAAC;QAC7C,IAAI,EAAE;YACJ,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,qBAAqB;YAClC,WAAW,EAAE,0CAA0C;SACxD;KACF,CAAC,CAAA;IAEF,iBAAiB;IACjB,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,CAAC;QAChD,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,qBAAqB;YAClC,WAAW,EAAE,gCAAgC;SAC9C;KACF,CAAC,CAAA;IAEF,wBAAwB;IACxB,MAAM,mBAAmB,GAAG,aAAa,CAAC,SAAS,CAAC;QAClD,IAAI,EAAE;YACJ,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,gBAAgB;YAC7B,WAAW,EAAE,+BAA+B;SAC7C;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,mBAAmB,EAAE;QAC9B,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,0CAA0C;KACxD,CAAC,CAAA;IAEF,YAAY,CAAC,mBAAmB,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,CAAA;IAE1E,mBAAmB,CAAC,mBAAmB,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC,CAAA;IAE1F,mBAAmB,CAAC,WAAW,CAAC;QAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,wBAAwB,EAAE;QAC9F,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,CAAC;SACzG;KACF,CAAC,CAAA;IAEF,mBAAmB,CAAC,WAAW,CAAC;QAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE;QACzF,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,mBAAmB,CAAC,WAAW,CAAC;QAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE;QACxF,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,mBAAmB,CAAC,WAAW,CAAC;QAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE;QAClF,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,mBAAmB,CAAC,WAAW,CAAC;QAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE;QAClF,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,mBAAmB,CAAC,WAAW,CAAC;QAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE;QACxF,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC;SAC5C;KACF,CAAC,CAAA;IAEF,oBAAoB,CAAC,mBAAmB,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE;QAC9F,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,sCAAsC;KACpD,CAAC,CAAA;IAEF,iBAAiB,CAAC,mBAAmB,EAAE,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,CAAA;IAErF,+CAA+C;IAC/C,mBAAmB,CAAC,cAAc,CAChC,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,EACvB;QACE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,8BAA8B,EAAE;QACxF,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;KAChB,CACF,CAAA;IAED,iDAAiD;IACjD,mBAAmB,CAAC,cAAc,CAChC,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,EACzB;QACE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;QAC9F,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;KAChB,CACF,CAAA;IAED,kBAAkB;IAClB,MAAM,cAAc,GAAG,aAAa,CAAC,SAAS,CAAC;QAC7C,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,qCAAqC;SACnD;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC,CAAA;IAE7G,YAAY,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC,CAAA;IAE9E,mBAAmB,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC,CAAA;IAExF,cAAc,CAAC,WAAW,CAAC;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE;QAC9F,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,wBAAwB,EAAE,UAAU,CAAC;SAC1F;KACF,CAAC,CAAA;IAEF,cAAc,CAAC,WAAW,CAAC;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE;QACrF,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,cAAc,CAAC,WAAW,CAAC;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE;QACrF,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,cAAc,CAAC,WAAW,CAAC;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,yBAAyB,EAAE;QAC3F,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC;SAC5C;KACF,CAAC,CAAA;IAEF,oBAAoB,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE;QACnF,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,gCAAgC;KAC9C,CAAC,CAAA;IAEF,iBAAiB,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC,CAAA;IAEnF,0CAA0C;IAC1C,cAAc,CAAC,cAAc,CAC3B,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,EACvB;QACE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,wBAAwB,EAAE;QAClF,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;KAChB,CACF,CAAA;IAED,EAAE;IACF,oCAAoC;IACpC,EAAE;IACF,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC;QAC5C,IAAI,EAAE;YACJ,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,sBAAsB;YACnC,WAAW,EAAE,yCAAyC;SACvD;KACF,CAAC,CAAA;IAEF,gBAAgB;IAChB,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC;QAC9C,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,sBAAsB;YACnC,WAAW,EAAE,mCAAmC;SACjD;KACF,CAAC,CAAA;IAEF,iBAAiB;IACjB,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC;QAC3C,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,gBAAgB;SAC9B;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC,CAAA;IAE1G,YAAY,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC,CAAA;IAE5E,aAAa,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE;QAC9F,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;KACb,CAAC,CAAA;IAEF,aAAa,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE;QACxF,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,aAAa,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE;QACpF,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,sBAAsB,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE;QAC5D,WAAW,EAAE,yBAAyB;KACvC,CAAC,CAAA;IAEF,sBAAsB,CAAC,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE;QAChE,WAAW,EAAE,oBAAoB;KAClC,CAAC,CAAA;IAEF,sBAAsB,CAAC,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE;QACpE,WAAW,EAAE,sBAAsB;KACpC,CAAC,CAAA;IAEF,oBAAoB,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE;QACrF,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE,+BAA+B;KAC7C,CAAC,CAAA;IAEF,iBAAiB,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC,CAAA;IAEjF,2CAA2C;IAC3C,aAAa,CAAC,cAAc,CAC1B,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,EACzB;QACE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;QACvF,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;KAChB,CACF,CAAA;IAED,yCAAyC;IACzC,aAAa,CAAC,cAAc,CAC1B,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,EACvB;QACE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,uBAAuB,EAAE;QACjF,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;KAChB,CACF,CAAA;IAED,iBAAiB;IACjB,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC;QAC3C,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,gBAAgB;SAC9B;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC,CAAA;IAE1G,YAAY,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC,CAAA;IAE5E,aAAa,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE;QACxF,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,aAAa,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE;QAC9F,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC;SAClE;KACF,CAAC,CAAA;IAEF,aAAa,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,0BAA0B,EAAE;QAC5G,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,sBAAsB,CAAC,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE;QAChE,WAAW,EAAE,gBAAgB;KAC9B,CAAC,CAAA;IAEF,oBAAoB,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE;QAClF,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE,+BAA+B;KAC7C,CAAC,CAAA;IAEF,iBAAiB,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC,CAAA;IAEjF,4CAA4C;IAC5C,aAAa,CAAC,cAAc,CAC1B,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG,EAAE,EAC1B;QACE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,0BAA0B,EAAE;QAC1F,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;KAChB,CACF,CAAA;IAED,uBAAuB;IACvB,MAAM,kBAAkB,GAAG,YAAY,CAAC,SAAS,CAAC;QAChD,IAAI,EAAE;YACJ,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,eAAe;YAC5B,WAAW,EAAE,sBAAsB;SACpC;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,kBAAkB,EAAE;QAC7B,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,yCAAyC;KACvD,CAAC,CAAA;IAEF,YAAY,CAAC,kBAAkB,EAAE,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC,CAAA;IAEvF,kBAAkB,CAAC,WAAW,CAAC;QAC7B,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,sBAAsB,EAAE;QACpG,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;KACb,CAAC,CAAA;IAEF,kBAAkB,CAAC,WAAW,CAAC;QAC7B,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;QAC/E,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,sBAAsB,CAAC,kBAAkB,EAAE,SAAS,EAAE,iBAAiB,EAAE;QACvE,WAAW,EAAE,uBAAuB;KACrC,CAAC,CAAA;IAEF,oBAAoB,CAAC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE;QACzE,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE,qCAAqC;KACnD,CAAC,CAAA;IAEF,iBAAiB,CAAC,kBAAkB,EAAE,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC,CAAA;IAE5F,gDAAgD;IAChD,kBAAkB,CAAC,cAAc,CAC/B,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,EACzB;QACE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;QAC7F,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;KAChB,CACF,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC","sourcesContent":["/**\n * Legal Services Domain Template\n *\n * A comprehensive legal services data domain following domain-driven design principles.\n * This template covers the complete legal practice lifecycle including:\n *\n * - Case Management: Cases, matters, documents, timelines\n * - Client Management: Clients, contacts, billing relationships\n * - Document Management: Contracts, pleadings, evidence\n * - Time Tracking: Billable hours, time entries, rates\n * - Calendar Management: Court dates, deadlines, appointments\n * - Billing & Accounting: Invoicing, payments, trust accounts\n *\n * Key Features:\n * - Complete case lifecycle management\n * - Client relationship management\n * - Document and evidence tracking\n * - Time and billing management\n * - Calendar and deadline management\n * - Trust account management\n * - Legal practice operations\n *\n * Use Cases:\n * - Law firms and legal practices\n * - Legal case management\n * - Client relationship management\n * - Document management\n * - Time and billing tracking\n * - Legal calendar management\n */\n\nimport { DataDomain } from '../../../DataDomain.js'\nimport {\n addIdField,\n addNameField,\n addDescriptionField,\n addEmailField,\n addPhoneField,\n addCustomStatusField,\n addCreatedAtField,\n addUpdatedAtField,\n addCurrencyAmountField,\n} from '../../../helpers/Intelisense.js'\nimport type { CreateTemplateOptions } from '../../types.js'\n\nfunction createDomain(): DataDomain {\n return new DataDomain({\n info: {\n name: 'Legal Services Platform',\n displayName: 'Legal Services Platform',\n description:\n 'A comprehensive legal services platform with case management, client relationships, ' +\n 'document management, time tracking, calendar management, and billing',\n },\n })\n}\n\n/**\n * Creates a comprehensive legal services data domain following domain-driven design principles.\n *\n * This function demonstrates the proper hierarchy and organization for a legal services platform:\n * 1. Creates the root DataDomain for the legal services platform\n * 2. Organizes functionality into logical namespaces (Case Management, Client Management, etc.)\n * 3. Groups related entities into models within each namespace\n * 4. Defines entities with proper semantic annotations for legal workflows\n * 5. Establishes associations with appropriate cardinality for legal relationships\n *\n * @returns A fully configured DataDomain with all legal services entities and relationships\n */\nexport default function createLegalServicesDomain(options: CreateTemplateOptions = {}): DataDomain {\n // Ensure the root data domain\n const domain = options.domain ?? createDomain()\n\n //\n // 1. CASE MANAGEMENT NAMESPACE\n //\n const caseManagement = domain.addNamespace({\n info: {\n name: 'CaseManagement',\n displayName: 'Case Management',\n description: 'Cases, matters, documents, and timelines',\n },\n })\n\n // Case Model\n const caseModel = caseManagement.addModel({\n info: {\n name: 'Cases',\n displayName: 'Case Management',\n description: 'Legal cases and matters',\n },\n })\n\n // Case Entity\n const caseEntity = caseModel.addEntity({\n info: {\n name: 'case',\n displayName: 'Case',\n description: 'Legal case or matter',\n },\n })\n\n addIdField(caseEntity, { displayName: 'Case ID', description: 'Unique identifier for the case' })\n\n addNameField(caseEntity, { description: 'Case name and title' })\n\n addDescriptionField(caseEntity, { description: 'Case description and summary' })\n\n caseEntity.addProperty({\n info: { name: 'case_number', displayName: 'Case Number', description: 'Official case number' },\n type: 'string',\n required: true,\n unique: true,\n })\n\n caseEntity.addProperty({\n info: { name: 'case_type', displayName: 'Case Type', description: 'Type of legal case' },\n type: 'string',\n required: true,\n schema: {\n enum: ['civil', 'criminal', 'family', 'corporate', 'real_estate', 'intellectual_property', 'bankruptcy'],\n },\n })\n\n caseEntity.addProperty({\n info: { name: 'practice_area', displayName: 'Practice Area', description: 'Legal practice area' },\n type: 'string',\n required: true,\n schema: {\n enum: [\n 'litigation',\n 'corporate',\n 'real_estate',\n 'family_law',\n 'criminal_defense',\n 'intellectual_property',\n 'bankruptcy',\n 'employment',\n 'tax',\n 'estate_planning',\n ],\n },\n })\n\n caseEntity.addProperty({\n info: { name: 'filing_date', displayName: 'Filing Date', description: 'Case filing date' },\n type: 'date',\n required: false,\n })\n\n caseEntity.addProperty({\n info: { name: 'court', displayName: 'Court', description: 'Court where case is filed' },\n type: 'string',\n required: false,\n })\n\n caseEntity.addProperty({\n info: { name: 'judge', displayName: 'Judge', description: 'Assigned judge' },\n type: 'string',\n required: false,\n })\n\n addCustomStatusField(caseEntity, ['open', 'pending', 'settled', 'closed', 'appealed'], {\n displayName: 'Case Status',\n description: 'Current status of the case',\n })\n\n addCreatedAtField(caseEntity, { description: 'When the case was created' })\n addUpdatedAtField(caseEntity, { description: 'When the case was last updated' })\n\n // Matter Entity\n const matterEntity = caseModel.addEntity({\n info: {\n name: 'matter',\n displayName: 'Matter',\n description: 'Legal matter or sub-case',\n },\n })\n\n addIdField(matterEntity, { displayName: 'Matter ID', description: 'Unique identifier for the matter' })\n\n addNameField(matterEntity, { description: 'Matter name and description' })\n\n addDescriptionField(matterEntity, { description: 'Matter description and details' })\n\n matterEntity.addProperty({\n info: { name: 'matter_type', displayName: 'Matter Type', description: 'Type of legal matter' },\n type: 'string',\n required: true,\n schema: {\n enum: ['transaction', 'litigation', 'advisory', 'compliance', 'investigation'],\n },\n })\n\n matterEntity.addProperty({\n info: { name: 'priority', displayName: 'Priority', description: 'Matter priority level' },\n type: 'string',\n required: true,\n schema: {\n enum: ['low', 'medium', 'high', 'urgent'],\n },\n })\n\n addCustomStatusField(matterEntity, ['active', 'pending', 'completed', 'on_hold'], {\n displayName: 'Matter Status',\n description: 'Current status of the matter',\n })\n\n addCreatedAtField(matterEntity, { description: 'When the matter was created' })\n\n // Matter-Case Association (Many-to-One)\n matterEntity.addAssociation(\n { key: caseEntity.key },\n {\n info: { name: 'case', displayName: 'Case', description: 'Case for this matter' },\n required: true,\n multiple: false,\n }\n )\n\n // Timeline Event Entity\n const timelineEventEntity = caseModel.addEntity({\n info: {\n name: 'timeline_event',\n displayName: 'Timeline Event',\n description: 'Case timeline events and milestones',\n },\n })\n\n addIdField(timelineEventEntity, {\n displayName: 'Event ID',\n description: 'Unique identifier for the timeline event',\n })\n\n addNameField(timelineEventEntity, { description: 'Event name and description' })\n\n addDescriptionField(timelineEventEntity, { description: 'Event description and details' })\n\n timelineEventEntity.addProperty({\n info: { name: 'event_type', displayName: 'Event Type', description: 'Type of timeline event' },\n type: 'string',\n required: true,\n schema: {\n enum: ['filing', 'hearing', 'discovery', 'settlement', 'trial', 'appeal', 'deadline'],\n },\n })\n\n timelineEventEntity.addProperty({\n info: { name: 'event_date', displayName: 'Event Date', description: 'Date of the event' },\n type: 'date',\n required: true,\n })\n\n timelineEventEntity.addProperty({\n info: { name: 'event_time', displayName: 'Event Time', description: 'Time of the event' },\n type: 'time',\n required: false,\n })\n\n addCustomStatusField(timelineEventEntity, ['scheduled', 'completed', 'cancelled', 'postponed'], {\n displayName: 'Event Status',\n description: 'Current status of the timeline event',\n })\n\n addCreatedAtField(timelineEventEntity, { description: 'When the event was created' })\n\n // TimelineEvent-Case Association (Many-to-One)\n timelineEventEntity.addAssociation(\n { key: caseEntity.key },\n {\n info: { name: 'case', displayName: 'Case', description: 'Case for this timeline event' },\n required: true,\n multiple: false,\n }\n )\n\n //\n // 2. CLIENT MANAGEMENT NAMESPACE\n //\n const clientManagement = domain.addNamespace({\n info: {\n name: 'ClientManagement',\n displayName: 'Client Management',\n description: 'Clients, contacts, and billing relationships',\n },\n })\n\n // Client Model\n const clientModel = clientManagement.addModel({\n info: {\n name: 'Clients',\n displayName: 'Client Management',\n description: 'Client and contact management',\n },\n })\n\n // Client Entity\n const clientEntity = clientModel.addEntity({\n info: {\n name: 'client',\n displayName: 'Client',\n description: 'Legal client with contact information',\n },\n })\n\n addIdField(clientEntity, { displayName: 'Client ID', description: 'Unique identifier for the client' })\n\n addNameField(clientEntity, { description: 'Client name and title' })\n\n addDescriptionField(clientEntity, { description: 'Client description and notes' })\n\n addEmailField(clientEntity, { description: 'Client email address' })\n\n addPhoneField(clientEntity, { description: 'Client phone number' })\n\n clientEntity.addProperty({\n info: { name: 'client_type', displayName: 'Client Type', description: 'Type of client' },\n type: 'string',\n required: true,\n schema: {\n enum: ['individual', 'corporation', 'partnership', 'government', 'non_profit'],\n },\n })\n\n clientEntity.addProperty({\n info: { name: 'address', displayName: 'Address', description: 'Client address' },\n type: 'string',\n required: false,\n })\n\n clientEntity.addProperty({\n info: { name: 'date_of_birth', displayName: 'Date of Birth', description: 'Client date of birth' },\n type: 'date',\n required: false,\n })\n\n addCustomStatusField(clientEntity, ['active', 'inactive', 'prospect', 'former'], {\n displayName: 'Client Status',\n description: 'Current status of the client',\n })\n\n addCreatedAtField(clientEntity, { description: 'When the client record was created' })\n addUpdatedAtField(clientEntity, { description: 'When the client record was last updated' })\n\n // Contact Entity\n const contactEntity = clientModel.addEntity({\n info: {\n name: 'contact',\n displayName: 'Contact',\n description: 'Client contacts and representatives',\n },\n })\n\n addIdField(contactEntity, { displayName: 'Contact ID', description: 'Unique identifier for the contact' })\n\n addNameField(contactEntity, { description: 'Contact name and title' })\n\n addEmailField(contactEntity, { description: 'Contact email address' })\n\n addPhoneField(contactEntity, { description: 'Contact phone number' })\n\n contactEntity.addProperty({\n info: { name: 'contact_type', displayName: 'Contact Type', description: 'Type of contact' },\n type: 'string',\n required: true,\n schema: {\n enum: ['primary', 'secondary', 'emergency', 'billing', 'legal_representative'],\n },\n })\n\n contactEntity.addProperty({\n info: { name: 'position', displayName: 'Position', description: 'Contact position or role' },\n type: 'string',\n required: false,\n })\n\n addCustomStatusField(contactEntity, ['active', 'inactive'], {\n displayName: 'Contact Status',\n description: 'Current status of the contact',\n })\n\n addCreatedAtField(contactEntity, { description: 'When the contact was created' })\n\n // Contact-Client Association (Many-to-One)\n contactEntity.addAssociation(\n { key: clientEntity.key },\n {\n info: { name: 'client', displayName: 'Client', description: 'Client for this contact' },\n required: true,\n multiple: false,\n }\n )\n\n // Case-Client Association (Many-to-One)\n caseEntity.addAssociation(\n { key: clientEntity.key },\n {\n info: { name: 'client', displayName: 'Client', description: 'Client for this case' },\n required: true,\n multiple: false,\n }\n )\n\n //\n // 3. DOCUMENT MANAGEMENT NAMESPACE\n //\n const documentManagement = domain.addNamespace({\n info: {\n name: 'DocumentManagement',\n displayName: 'Document Management',\n description: 'Contracts, pleadings, evidence, and legal documents',\n },\n })\n\n // Document Model\n const documentModel = documentManagement.addModel({\n info: {\n name: 'Documents',\n displayName: 'Document Management',\n description: 'Legal documents and files',\n },\n })\n\n // Document Entity\n const documentEntity = documentModel.addEntity({\n info: {\n name: 'document',\n displayName: 'Document',\n description: 'Legal document or file',\n },\n })\n\n addIdField(documentEntity, { displayName: 'Document ID', description: 'Unique identifier for the document' })\n\n addNameField(documentEntity, { description: 'Document name and title' })\n\n addDescriptionField(documentEntity, { description: 'Document description and summary' })\n\n documentEntity.addProperty({\n info: { name: 'document_type', displayName: 'Document Type', description: 'Type of legal document' },\n type: 'string',\n required: true,\n schema: {\n enum: [\n 'contract',\n 'pleading',\n 'motion',\n 'brief',\n 'evidence',\n 'correspondence',\n 'court_order',\n 'settlement_agreement',\n 'legal_opinion',\n 'affidavit',\n ],\n },\n })\n\n documentEntity.addProperty({\n info: { name: 'file_path', displayName: 'File Path', description: 'Document file path' },\n type: 'string',\n required: true,\n })\n\n documentEntity.addProperty({\n info: { name: 'file_size', displayName: 'File Size', description: 'Document file size in bytes' },\n type: 'number',\n required: false,\n schema: {\n minimum: 0,\n },\n })\n\n documentEntity.addProperty({\n info: { name: 'file_format', displayName: 'File Format', description: 'Document file format' },\n type: 'string',\n required: true,\n schema: {\n enum: ['pdf', 'doc', 'docx', 'txt', 'rtf', 'html', 'xml'],\n },\n })\n\n documentEntity.addProperty({\n info: { name: 'version', displayName: 'Version', description: 'Document version number' },\n type: 'string',\n required: true,\n })\n\n addCustomStatusField(documentEntity, ['draft', 'final', 'archived', 'superseded'], {\n displayName: 'Document Status',\n description: 'Current status of the document',\n })\n\n addCreatedAtField(documentEntity, { description: 'When the document was created' })\n addUpdatedAtField(documentEntity, { description: 'When the document was last updated' })\n\n // Document-Case Association (Many-to-One)\n documentEntity.addAssociation(\n { key: caseEntity.key },\n {\n info: { name: 'case', displayName: 'Case', description: 'Case for this document' },\n required: true,\n multiple: false,\n }\n )\n\n // Evidence Entity\n const evidenceEntity = documentModel.addEntity({\n info: {\n name: 'evidence',\n displayName: 'Evidence',\n description: 'Legal evidence and exhibits',\n },\n })\n\n addIdField(evidenceEntity, { displayName: 'Evidence ID', description: 'Unique identifier for the evidence' })\n\n addNameField(evidenceEntity, { description: 'Evidence name and description' })\n\n addDescriptionField(evidenceEntity, { description: 'Evidence description and details' })\n\n evidenceEntity.addProperty({\n info: { name: 'evidence_type', displayName: 'Evidence Type', description: 'Type of evidence' },\n type: 'string',\n required: true,\n schema: {\n enum: ['document', 'physical', 'digital', 'testimony', 'expert_report', 'photograph', 'video'],\n },\n })\n\n evidenceEntity.addProperty({\n info: { name: 'exhibit_number', displayName: 'Exhibit Number', description: 'Court exhibit number' },\n type: 'string',\n required: false,\n })\n\n evidenceEntity.addProperty({\n info: { name: 'admitted', displayName: 'Admitted', description: 'Whether evidence was admitted' },\n type: 'boolean',\n required: false,\n })\n\n addCustomStatusField(evidenceEntity, ['pending', 'admitted', 'excluded', 'withdrawn'], {\n displayName: 'Evidence Status',\n description: 'Current status of the evidence',\n })\n\n addCreatedAtField(evidenceEntity, { description: 'When the evidence was created' })\n\n // Evidence-Case Association (Many-to-One)\n evidenceEntity.addAssociation(\n { key: caseEntity.key },\n {\n info: { name: 'case', displayName: 'Case', description: 'Case for this evidence' },\n required: true,\n multiple: false,\n }\n )\n\n //\n // 4. TIME TRACKING NAMESPACE\n //\n const timeTracking = domain.addNamespace({\n info: {\n name: 'TimeTracking',\n displayName: 'Time Tracking',\n description: 'Billable hours, time entries, and rates',\n },\n })\n\n // Time Model\n const timeModel = timeTracking.addModel({\n info: {\n name: 'Time',\n displayName: 'Time Tracking',\n description: 'Time tracking and billing',\n },\n })\n\n // Time Entry Entity\n const timeEntryEntity = timeModel.addEntity({\n info: {\n name: 'time_entry',\n displayName: 'Time Entry',\n description: 'Billable time entry',\n },\n })\n\n addIdField(timeEntryEntity, { displayName: 'Entry ID', description: 'Unique identifier for the time entry' })\n\n addNameField(timeEntryEntity, { description: 'Time entry description' })\n\n timeEntryEntity.addProperty({\n info: { name: 'entry_date', displayName: 'Entry Date', description: 'Date of the time entry' },\n type: 'date',\n required: true,\n })\n\n timeEntryEntity.addProperty({\n info: { name: 'start_time', displayName: 'Start Time', description: 'Time entry start time' },\n type: 'time',\n required: true,\n })\n\n timeEntryEntity.addProperty({\n info: { name: 'end_time', displayName: 'End Time', description: 'Time entry end time' },\n type: 'time',\n required: true,\n })\n\n timeEntryEntity.addProperty({\n info: { name: 'hours', displayName: 'Hours', description: 'Total hours worked' },\n type: 'number',\n required: true,\n schema: {\n minimum: 0,\n },\n })\n\n timeEntryEntity.addProperty({\n info: { name: 'activity_type', displayName: 'Activity Type', description: 'Type of activity' },\n type: 'string',\n required: true,\n schema: {\n enum: ['research', 'drafting', 'review', 'meeting', 'court_appearance', 'client_communication', 'administrative'],\n },\n })\n\n addCurrencyAmountField(timeEntryEntity, 'rate', 'Hourly Rate', {\n description: 'Hourly billing rate',\n })\n\n addCurrencyAmountField(timeEntryEntity, 'amount', 'Total Amount', {\n description: 'Total billable amount',\n })\n\n addCustomStatusField(timeEntryEntity, ['pending', 'approved', 'billed', 'paid'], {\n displayName: 'Entry Status',\n description: 'Current status of the time entry',\n })\n\n addCreatedAtField(timeEntryEntity, { description: 'When the time entry was created' })\n\n // TimeEntry-Case Association (Many-to-One)\n timeEntryEntity.addAssociation(\n { key: caseEntity.key },\n {\n info: { name: 'case', displayName: 'Case', description: 'Case for this time entry' },\n required: true,\n multiple: false,\n }\n )\n\n // Billing Rate Entity\n const billingRateEntity = timeModel.addEntity({\n info: {\n name: 'billing_rate',\n displayName: 'Billing Rate',\n description: 'Attorney billing rates',\n },\n })\n\n addIdField(billingRateEntity, { displayName: 'Rate ID', description: 'Unique identifier for the billing rate' })\n\n addNameField(billingRateEntity, { description: 'Rate name and description' })\n\n billingRateEntity.addProperty({\n info: { name: 'rate_type', displayName: 'Rate Type', description: 'Type of billing rate' },\n type: 'string',\n required: true,\n schema: {\n enum: ['hourly', 'flat_fee', 'contingency', 'retainer'],\n },\n })\n\n billingRateEntity.addProperty({\n info: { name: 'effective_date', displayName: 'Effective Date', description: 'Rate effective date' },\n type: 'date',\n required: true,\n })\n\n addCurrencyAmountField(billingRateEntity, 'rate_amount', 'Rate Amount', {\n description: 'Billing rate amount',\n })\n\n addCustomStatusField(billingRateEntity, ['active', 'inactive', 'expired'], {\n displayName: 'Rate Status',\n description: 'Current status of the billing rate',\n })\n\n addCreatedAtField(billingRateEntity, { description: 'When the billing rate was created' })\n\n //\n // 5. CALENDAR MANAGEMENT NAMESPACE\n //\n const calendarManagement = domain.addNamespace({\n info: {\n name: 'CalendarManagement',\n displayName: 'Calendar Management',\n description: 'Court dates, deadlines, and appointments',\n },\n })\n\n // Calendar Model\n const calendarModel = calendarManagement.addModel({\n info: {\n name: 'Calendar',\n displayName: 'Calendar Management',\n description: 'Calendar events and scheduling',\n },\n })\n\n // Calendar Event Entity\n const calendarEventEntity = calendarModel.addEntity({\n info: {\n name: 'calendar_event',\n displayName: 'Calendar Event',\n description: 'Calendar event or appointment',\n },\n })\n\n addIdField(calendarEventEntity, {\n displayName: 'Event ID',\n description: 'Unique identifier for the calendar event',\n })\n\n addNameField(calendarEventEntity, { description: 'Event name and title' })\n\n addDescriptionField(calendarEventEntity, { description: 'Event description and details' })\n\n calendarEventEntity.addProperty({\n info: { name: 'event_type', displayName: 'Event Type', description: 'Type of calendar event' },\n type: 'string',\n required: true,\n schema: {\n enum: ['court_hearing', 'client_meeting', 'deadline', 'deposition', 'mediation', 'trial', 'appointment'],\n },\n })\n\n calendarEventEntity.addProperty({\n info: { name: 'event_date', displayName: 'Event Date', description: 'Date of the event' },\n type: 'date',\n required: true,\n })\n\n calendarEventEntity.addProperty({\n info: { name: 'start_time', displayName: 'Start Time', description: 'Event start time' },\n type: 'time',\n required: true,\n })\n\n calendarEventEntity.addProperty({\n info: { name: 'end_time', displayName: 'End Time', description: 'Event end time' },\n type: 'time',\n required: false,\n })\n\n calendarEventEntity.addProperty({\n info: { name: 'location', displayName: 'Location', description: 'Event location' },\n type: 'string',\n required: false,\n })\n\n calendarEventEntity.addProperty({\n info: { name: 'priority', displayName: 'Priority', description: 'Event priority level' },\n type: 'string',\n required: true,\n schema: {\n enum: ['low', 'medium', 'high', 'critical'],\n },\n })\n\n addCustomStatusField(calendarEventEntity, ['scheduled', 'confirmed', 'completed', 'cancelled'], {\n displayName: 'Event Status',\n description: 'Current status of the calendar event',\n })\n\n addCreatedAtField(calendarEventEntity, { description: 'When the event was created' })\n\n // CalendarEvent-Case Association (Many-to-One)\n calendarEventEntity.addAssociation(\n { key: caseEntity.key },\n {\n info: { name: 'case', displayName: 'Case', description: 'Case for this calendar event' },\n required: false,\n multiple: false,\n }\n )\n\n // CalendarEvent-Client Association (Many-to-One)\n calendarEventEntity.addAssociation(\n { key: clientEntity.key },\n {\n info: { name: 'client', displayName: 'Client', description: 'Client for this calendar event' },\n required: false,\n multiple: false,\n }\n )\n\n // Deadline Entity\n const deadlineEntity = calendarModel.addEntity({\n info: {\n name: 'deadline',\n displayName: 'Deadline',\n description: 'Legal deadlines and important dates',\n },\n })\n\n addIdField(deadlineEntity, { displayName: 'Deadline ID', description: 'Unique identifier for the deadline' })\n\n addNameField(deadlineEntity, { description: 'Deadline name and description' })\n\n addDescriptionField(deadlineEntity, { description: 'Deadline description and details' })\n\n deadlineEntity.addProperty({\n info: { name: 'deadline_type', displayName: 'Deadline Type', description: 'Type of deadline' },\n type: 'string',\n required: true,\n schema: {\n enum: ['filing', 'response', 'discovery', 'appeal', 'statute_of_limitations', 'contract'],\n },\n })\n\n deadlineEntity.addProperty({\n info: { name: 'due_date', displayName: 'Due Date', description: 'Deadline due date' },\n type: 'date',\n required: true,\n })\n\n deadlineEntity.addProperty({\n info: { name: 'due_time', displayName: 'Due Time', description: 'Deadline due time' },\n type: 'time',\n required: false,\n })\n\n deadlineEntity.addProperty({\n info: { name: 'priority', displayName: 'Priority', description: 'Deadline priority level' },\n type: 'string',\n required: true,\n schema: {\n enum: ['low', 'medium', 'high', 'critical'],\n },\n })\n\n addCustomStatusField(deadlineEntity, ['pending', 'completed', 'missed', 'extended'], {\n displayName: 'Deadline Status',\n description: 'Current status of the deadline',\n })\n\n addCreatedAtField(deadlineEntity, { description: 'When the deadline was created' })\n\n // Deadline-Case Association (Many-to-One)\n deadlineEntity.addAssociation(\n { key: caseEntity.key },\n {\n info: { name: 'case', displayName: 'Case', description: 'Case for this deadline' },\n required: true,\n multiple: false,\n }\n )\n\n //\n // 6. BILLING & ACCOUNTING NAMESPACE\n //\n const billingAccounting = domain.addNamespace({\n info: {\n name: 'BillingAccounting',\n displayName: 'Billing & Accounting',\n description: 'Invoicing, payments, and trust accounts',\n },\n })\n\n // Billing Model\n const billingModel = billingAccounting.addModel({\n info: {\n name: 'Billing',\n displayName: 'Billing & Accounting',\n description: 'Billing and accounting management',\n },\n })\n\n // Invoice Entity\n const invoiceEntity = billingModel.addEntity({\n info: {\n name: 'invoice',\n displayName: 'Invoice',\n description: 'Client invoice',\n },\n })\n\n addIdField(invoiceEntity, { displayName: 'Invoice ID', description: 'Unique identifier for the invoice' })\n\n addNameField(invoiceEntity, { description: 'Invoice name and description' })\n\n invoiceEntity.addProperty({\n info: { name: 'invoice_number', displayName: 'Invoice Number', description: 'Invoice number' },\n type: 'string',\n required: true,\n unique: true,\n })\n\n invoiceEntity.addProperty({\n info: { name: 'invoice_date', displayName: 'Invoice Date', description: 'Invoice date' },\n type: 'date',\n required: true,\n })\n\n invoiceEntity.addProperty({\n info: { name: 'due_date', displayName: 'Due Date', description: 'Invoice due date' },\n type: 'date',\n required: true,\n })\n\n addCurrencyAmountField(invoiceEntity, 'subtotal', 'Subtotal', {\n description: 'Invoice subtotal amount',\n })\n\n addCurrencyAmountField(invoiceEntity, 'tax_amount', 'Tax Amount', {\n description: 'Invoice tax amount',\n })\n\n addCurrencyAmountField(invoiceEntity, 'total_amount', 'Total Amount', {\n description: 'Invoice total amount',\n })\n\n addCustomStatusField(invoiceEntity, ['draft', 'sent', 'paid', 'overdue', 'cancelled'], {\n displayName: 'Invoice Status',\n description: 'Current status of the invoice',\n })\n\n addCreatedAtField(invoiceEntity, { description: 'When the invoice was created' })\n\n // Invoice-Client Association (Many-to-One)\n invoiceEntity.addAssociation(\n { key: clientEntity.key },\n {\n info: { name: 'client', displayName: 'Client', description: 'Client for this invoice' },\n required: true,\n multiple: false,\n }\n )\n\n // Invoice-Case Association (Many-to-One)\n invoiceEntity.addAssociation(\n { key: caseEntity.key },\n {\n info: { name: 'case', displayName: 'Case', description: 'Case for this invoice' },\n required: false,\n multiple: false,\n }\n )\n\n // Payment Entity\n const paymentEntity = billingModel.addEntity({\n info: {\n name: 'payment',\n displayName: 'Payment',\n description: 'Client payment',\n },\n })\n\n addIdField(paymentEntity, { displayName: 'Payment ID', description: 'Unique identifier for the payment' })\n\n addNameField(paymentEntity, { description: 'Payment name and description' })\n\n paymentEntity.addProperty({\n info: { name: 'payment_date', displayName: 'Payment Date', description: 'Payment date' },\n type: 'date',\n required: true,\n })\n\n paymentEntity.addProperty({\n info: { name: 'payment_method', displayName: 'Payment Method', description: 'Payment method' },\n type: 'string',\n required: true,\n schema: {\n enum: ['check', 'credit_card', 'bank_transfer', 'cash', 'online'],\n },\n })\n\n paymentEntity.addProperty({\n info: { name: 'reference_number', displayName: 'Reference Number', description: 'Payment reference number' },\n type: 'string',\n required: false,\n })\n\n addCurrencyAmountField(paymentEntity, 'amount', 'Payment Amount', {\n description: 'Payment amount',\n })\n\n addCustomStatusField(paymentEntity, ['pending', 'completed', 'failed', 'refunded'], {\n displayName: 'Payment Status',\n description: 'Current status of the payment',\n })\n\n addCreatedAtField(paymentEntity, { description: 'When the payment was created' })\n\n // Payment-Invoice Association (Many-to-One)\n paymentEntity.addAssociation(\n { key: invoiceEntity.key },\n {\n info: { name: 'invoice', displayName: 'Invoice', description: 'Invoice for this payment' },\n required: true,\n multiple: false,\n }\n )\n\n // Trust Account Entity\n const trustAccountEntity = billingModel.addEntity({\n info: {\n name: 'trust_account',\n displayName: 'Trust Account',\n description: 'Client trust account',\n },\n })\n\n addIdField(trustAccountEntity, {\n displayName: 'Trust Account ID',\n description: 'Unique identifier for the trust account',\n })\n\n addNameField(trustAccountEntity, { description: 'Trust account name and description' })\n\n trustAccountEntity.addProperty({\n info: { name: 'account_number', displayName: 'Account Number', description: 'Trust account number' },\n type: 'string',\n required: true,\n unique: true,\n })\n\n trustAccountEntity.addProperty({\n info: { name: 'bank_name', displayName: 'Bank Name', description: 'Bank name' },\n type: 'string',\n required: true,\n })\n\n addCurrencyAmountField(trustAccountEntity, 'balance', 'Account Balance', {\n description: 'Trust account balance',\n })\n\n addCustomStatusField(trustAccountEntity, ['active', 'inactive', 'frozen'], {\n displayName: 'Account Status',\n description: 'Current status of the trust account',\n })\n\n addCreatedAtField(trustAccountEntity, { description: 'When the trust account was created' })\n\n // TrustAccount-Client Association (Many-to-One)\n trustAccountEntity.addAssociation(\n { key: clientEntity.key },\n {\n info: { name: 'client', displayName: 'Client', description: 'Client for this trust account' },\n required: true,\n multiple: false,\n }\n )\n\n return domain\n}\n"]}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Education Data Domain Example
3
+ *
4
+ * This file demonstrates how to create a comprehensive education data domain
5
+ * using the API Client Core modeling system. It follows the business-first approach
6
+ * and demonstrates proper use of namespaces, models, entities, properties,
7
+ * associations, and semantic annotations.
8
+ *
9
+ * The example includes:
10
+ * - Student Management with student records, enrollment, and academic history
11
+ * - Course Management with courses, curriculum, assignments, and grades
12
+ * - Faculty Management with teachers, staff, departments, and roles
13
+ * - Campus Operations with facilities, events, and resources
14
+ * - Learning Analytics with progress tracking, assessments, and performance
15
+ * - Administrative features with admissions, financial aid, and scheduling
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * import { createEducationDomain } from './education-domain.js'
20
+ *
21
+ * const domain = createEducationDomain()
22
+ * console.log('Education domain created with', domain.graph.nodeCount(), 'nodes')
23
+ * ```
24
+ */
25
+ import { DataDomain } from '../../../DataDomain.js';
26
+ import type { CreateTemplateOptions } from '../../types.js';
27
+ /**
28
+ * Creates a comprehensive education data domain following domain-driven design principles.
29
+ *
30
+ * This function demonstrates the proper hierarchy and organization for an education platform:
31
+ * 1. Creates the root DataDomain for the education platform
32
+ * 2. Organizes functionality into logical namespaces (Student Management, Course Management, etc.)
33
+ * 3. Groups related entities into models within each namespace
34
+ * 4. Defines entities with proper semantic annotations for educational workflows
35
+ * 5. Establishes associations with appropriate cardinality for student-course relationships
36
+ *
37
+ * @returns A fully configured DataDomain with all education entities and relationships
38
+ */
39
+ export default function createEducationDomain(options?: CreateTemplateOptions): DataDomain;
40
+ //# sourceMappingURL=education-domain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"education-domain.d.ts","sourceRoot":"","sources":["../../../../../../src/modeling/templates/verticals/education-training/education-domain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAcnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAc3D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,OAAO,GAAE,qBAA0B,GAAG,UAAU,CAw1B7F"}