Initial commit: sap-intercompany-worker
Motor de escenarios de replicacion entre bases SAP Business One (Service Layer). Poll periodico sobre webhook_events, escenarios configurables via Prisma (filter + transform por escenario). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
commit
ca57403663
36 files changed
+5539
No files matched your search
@@ -0,0 +1,83 @@
|
||||
-- CreateEnum
|
||||
CREATE TYPE "ReplicationRuleType" AS ENUM ('master', 'transaction');
|
||||
|
||||
-- AlterEnum
|
||||
ALTER TYPE "EventStatus" ADD VALUE 'filtered';
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "replication_attempts" ADD COLUMN "result_key" TEXT;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "subsidiaries" (
|
||||
"id" SERIAL NOT NULL,
|
||||
"code" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"base_url" TEXT NOT NULL,
|
||||
"company_db" TEXT NOT NULL,
|
||||
"username" TEXT NOT NULL,
|
||||
"password" TEXT NOT NULL,
|
||||
"routing_value" TEXT,
|
||||
"active" BOOLEAN NOT NULL DEFAULT true,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "subsidiaries_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "replication_rules" (
|
||||
"id" SERIAL NOT NULL,
|
||||
"business_object" TEXT NOT NULL,
|
||||
"type" "ReplicationRuleType" NOT NULL,
|
||||
"key_field" TEXT,
|
||||
"routing_field" TEXT,
|
||||
"idempotency_field" TEXT,
|
||||
"active" BOOLEAN NOT NULL DEFAULT true,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "replication_rules_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "mapped_fields" (
|
||||
"id" SERIAL NOT NULL,
|
||||
"business_object" TEXT NOT NULL,
|
||||
"field_name" TEXT NOT NULL,
|
||||
"active" BOOLEAN NOT NULL DEFAULT true,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "mapped_fields_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "reference_field_mappings" (
|
||||
"id" SERIAL NOT NULL,
|
||||
"business_object" TEXT NOT NULL,
|
||||
"field_name" TEXT NOT NULL,
|
||||
"subsidiary_code" TEXT NOT NULL,
|
||||
"hq_value" TEXT NOT NULL,
|
||||
"subsidiary_value" TEXT NOT NULL,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "reference_field_mappings_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "subsidiaries_code_key" ON "subsidiaries"("code");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "subsidiaries_routing_value_key" ON "subsidiaries"("routing_value");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "replication_rules_business_object_key" ON "replication_rules"("business_object");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "mapped_fields_business_object_field_name_key" ON "mapped_fields"("business_object", "field_name");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "reference_field_mappings_business_object_field_name_subsidi_key" ON "reference_field_mappings"("business_object", "field_name", "subsidiary_code", "hq_value");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "reference_field_mappings" ADD CONSTRAINT "reference_field_mappings_subsidiary_code_fkey" FOREIGN KEY ("subsidiary_code") REFERENCES "subsidiaries"("code") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
Reference in new issue
Block a user