From 8c823a85d9c74ec333ebf5306524f5c0a02a7cd4 Mon Sep 17 00:00:00 2001 From: chulanovskyi Date: Thu, 26 Feb 2026 15:48:31 +0200 Subject: [PATCH] feat: duality view annotations --- .../dualityViewFeHelper/abstractDualityViewDdlCreator.js | 8 ++++++-- forward_engineering/ddlProvider/templates.js | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/forward_engineering/ddlProvider/ddlHelpers/dualityViewFeHelper/abstractDualityViewDdlCreator.js b/forward_engineering/ddlProvider/ddlHelpers/dualityViewFeHelper/abstractDualityViewDdlCreator.js index 17c78b2..e385793 100644 --- a/forward_engineering/ddlProvider/ddlHelpers/dualityViewFeHelper/abstractDualityViewDdlCreator.js +++ b/forward_engineering/ddlProvider/ddlHelpers/dualityViewFeHelper/abstractDualityViewDdlCreator.js @@ -1,5 +1,6 @@ const { getViewName } = require('../../../utils/general'); const { DualityViewPropertiesType } = require('../../../enums/DualityViewPropertiesType'); +const { getAnnotationsString } = require('../../../utils/getAnnotationsString'); /** * @abstract @@ -176,9 +177,10 @@ class AbstractDualityViewFeDdlCreator { /** * @param createViewDto {CreateDualityViewDto} + * @param prepareName {Function} * @return {string} * */ - getCreateJsonRelationalDualityViewHeadingDdl(createViewDto) { + getCreateJsonRelationalDualityViewHeadingDdl(createViewDto, prepareName) { const { jsonSchema, view } = createViewDto; const template = this._ddlTemplates?.dualityView?.createJsonRelationalDualityViewHeading || ''; @@ -187,12 +189,14 @@ class AbstractDualityViewFeDdlCreator { const editionableStatement = this._getEditionableStatement(jsonSchema); const viewName = getViewName(view); const ddlViewName = this._getNamePrefixedWithSchemaName(viewName, view.schemaName); + const annotations = getAnnotationsString(prepareName)(view.viewAnnotations); const params = { orReplaceStatement, forceStatement, editionableStatement, viewName: ddlViewName, + annotations: annotations ? `\n\t${annotations}` : '', }; return this._assignTemplates(template, params); } @@ -210,7 +214,7 @@ class AbstractDualityViewFeDdlCreator { * @return {string} * */ convertDualityViewToDdl(createViewDto) { - const heading = this.getCreateJsonRelationalDualityViewHeadingDdl(createViewDto); + const heading = this.getCreateJsonRelationalDualityViewHeadingDdl(createViewDto, this._prepareName); const body = this.getDualityViewBodyDdl(createViewDto); return heading + '\n' + body + '\n'; } diff --git a/forward_engineering/ddlProvider/templates.js b/forward_engineering/ddlProvider/templates.js index c31cc41..08ce9a0 100644 --- a/forward_engineering/ddlProvider/templates.js +++ b/forward_engineering/ddlProvider/templates.js @@ -61,7 +61,7 @@ module.exports = { dualityView: { createJsonRelationalDualityViewHeading: - 'CREATE${orReplaceStatement}${forceStatement}${editionableStatement} JSON RELATIONAL DUALITY VIEW ${viewName} AS', + 'CREATE${orReplaceStatement}${forceStatement}${editionableStatement} JSON RELATIONAL DUALITY VIEW ${viewName}${annotations} AS', sql: { tableTagsStatement: