"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = tableReplicationTriggerSQLGen; const trigger_sql_gen_1 = __importDefault(require("./trigger-sql-gen")); function tableReplicationTriggerSQLGen({ type, dstDbSchema, dstTableSchema, srcDbSchema, srcTableSchema, userId, paradigm, }) { let sql = `CREATE TRIGGER`; const srcColumns = srcTableSchema.fields .map((fld) => fld.fieldName) .filter((fld) => typeof fld == "string"); const dstColumns = dstTableSchema.fields .map((fld) => fld.fieldName) .filter((fld) => typeof fld == "string"); if (type.name == "after_insert") { sql += ` INSERT INTO ${dstDbSchema.dbFullName}.${dstTableSchema.tableName}`; sql += ` (${dstColumns.join(",")})`; sql += ` VALUES (${dstColumns.map((c) => `NEW.${c}`).join(",")})`; } else if (type.name == "after_update") { sql += ` UPDATE ${dstDbSchema.dbFullName}.${dstTableSchema.tableName}`; sql += ` SET ${dstColumns.map((c) => `${c}=NEW.${c}`).join(",")}`; sql += ` WHERE id = NEW.id`; } else if (type.name == "after_delete") { sql += ` DELETE FROM ${dstDbSchema.dbFullName}.${dstTableSchema.tableName}`; sql += ` WHERE id = OLD.id`; } return (0, trigger_sql_gen_1.default)({ content: sql, srcDbSchema, srcTableSchema, type, paradigm, userId, }); }