diff --git a/prisma/migrations/20260802000000_added_asset_profile_split/migration.sql b/prisma/migrations/20260802000000_added_asset_profile_split/migration.sql new file mode 100644 index 0000000000..af400a846e --- /dev/null +++ b/prisma/migrations/20260802000000_added_asset_profile_split/migration.sql @@ -0,0 +1,23 @@ +-- CreateTable +CREATE TABLE "AssetProfileSplit" ( + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "date" TIMESTAMP(3) NOT NULL, + "factor" DOUBLE PRECISION NOT NULL, + "id" TEXT NOT NULL, + "symbolProfileId" TEXT NOT NULL, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "AssetProfileSplit_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE INDEX "AssetProfileSplit_date_idx" ON "AssetProfileSplit"("date"); + +-- CreateIndex +CREATE INDEX "AssetProfileSplit_symbolProfileId_idx" ON "AssetProfileSplit"("symbolProfileId"); + +-- CreateIndex +CREATE UNIQUE INDEX "AssetProfileSplit_symbolProfileId_date_key" ON "AssetProfileSplit"("symbolProfileId", "date"); + +-- AddForeignKey +ALTER TABLE "AssetProfileSplit" ADD CONSTRAINT "AssetProfileSplit_symbolProfileId_fkey" FOREIGN KEY ("symbolProfileId") REFERENCES "SymbolProfile"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index faf7a9259c..eb6bc7feab 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -116,6 +116,20 @@ model AssetProfileResolution { @@unique([dataSourceOrigin, symbolOrigin]) } +model AssetProfileSplit { + createdAt DateTime @default(now()) + date DateTime + factor Float + id String @id @default(uuid()) + symbolProfile SymbolProfile @relation(fields: [symbolProfileId], onDelete: Cascade, references: [id]) + symbolProfileId String + updatedAt DateTime @updatedAt + + @@unique([symbolProfileId, date]) + @@index([date]) + @@index([symbolProfileId]) +} + model AuthDevice { createdAt DateTime @default(now()) credentialId Bytes @@ -200,6 +214,7 @@ model SymbolProfile { activities Order[] assetClass AssetClass? assetProfileOverrides AssetProfileOverrides? + assetProfileSplits AssetProfileSplit[] assetSubClass AssetSubClass? comment String? countries Json?