Files
sap-intercompany-worker/prisma/migrations/20260819231455_add_config_tables/migration.sql
T
GeorgeandClaude Sonnet 5 ca57403663 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>
2026-09-16 07:45:57 -05:00

84 lines
2.7 KiB
SQL

-- 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;