feat: inherit channel report requirements
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
ALTER TABLE "ChannelReportField"
|
||||
ADD COLUMN "drainageFieldId" TEXT,
|
||||
ADD COLUMN "reportType" TEXT NOT NULL DEFAULT 'both';
|
||||
|
||||
CREATE INDEX "ChannelReportField_drainageFieldId_reportType_idx"
|
||||
ON "ChannelReportField"("drainageFieldId", "reportType");
|
||||
|
||||
ALTER TABLE "ChannelReportField"
|
||||
ADD CONSTRAINT "ChannelReportField_drainageFieldId_fkey"
|
||||
FOREIGN KEY ("drainageFieldId") REFERENCES "DrainageField"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
CREATE TABLE "DrainageReportMaterial" (
|
||||
"id" TEXT NOT NULL,
|
||||
"signatureId" TEXT NOT NULL,
|
||||
"drainageItemId" TEXT NOT NULL,
|
||||
"channelId" TEXT NOT NULL,
|
||||
"fieldCode" TEXT NOT NULL,
|
||||
"fieldValue" TEXT,
|
||||
"fileObjectId" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
CONSTRAINT "DrainageReportMaterial_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX "DrainageReportMaterial_signatureId_drainageItemId_channelId_fieldCode_key"
|
||||
ON "DrainageReportMaterial"("signatureId", "drainageItemId", "channelId", "fieldCode");
|
||||
CREATE INDEX "DrainageReportMaterial_channelId_fieldCode_idx"
|
||||
ON "DrainageReportMaterial"("channelId", "fieldCode");
|
||||
|
||||
ALTER TABLE "DrainageReportMaterial" ADD CONSTRAINT "DrainageReportMaterial_signatureId_fkey"
|
||||
FOREIGN KEY ("signatureId") REFERENCES "SmsSignature"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE "DrainageReportMaterial" ADD CONSTRAINT "DrainageReportMaterial_channelId_fkey"
|
||||
FOREIGN KEY ("channelId") REFERENCES "SmsChannel"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@@ -235,6 +235,8 @@ model DrainageField {
|
||||
description String?
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
channelReportFields ChannelReportField[]
|
||||
}
|
||||
|
||||
model BillingPlan {
|
||||
@@ -410,6 +412,7 @@ model SmsSignature {
|
||||
materials SignatureMaterial[]
|
||||
templates SmsTemplate[]
|
||||
reportMaterials SignatureReportMaterial[]
|
||||
drainageReportMaterials DrainageReportMaterial[]
|
||||
reportTasks ChannelSignatureReportTask[]
|
||||
messageRecords SmsMessageRecord[]
|
||||
|
||||
@@ -512,6 +515,7 @@ model SmsChannel {
|
||||
routeRules ChannelRouteRule[]
|
||||
healthMetrics ChannelHealthMetric[]
|
||||
reportFields ChannelReportField[]
|
||||
drainageReportMaterials DrainageReportMaterial[]
|
||||
reportTasks ChannelSignatureReportTask[]
|
||||
reportRecords ChannelSignatureReportRecord[]
|
||||
messageRecords SmsMessageRecord[]
|
||||
@@ -658,6 +662,8 @@ model ChannelHealthMetric {
|
||||
model ChannelReportField {
|
||||
id String @id @default(cuid())
|
||||
channelId String
|
||||
drainageFieldId String?
|
||||
reportType String @default("both")
|
||||
code String
|
||||
name String
|
||||
fieldType String
|
||||
@@ -669,8 +675,10 @@ model ChannelReportField {
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
channel SmsChannel @relation(fields: [channelId], references: [id], onDelete: Cascade)
|
||||
drainageField DrainageField? @relation(fields: [drainageFieldId], references: [id])
|
||||
|
||||
@@unique([channelId, code])
|
||||
@@index([drainageFieldId, reportType])
|
||||
}
|
||||
|
||||
model SignatureReportMaterial {
|
||||
@@ -689,6 +697,24 @@ model SignatureReportMaterial {
|
||||
@@index([channelId])
|
||||
}
|
||||
|
||||
model DrainageReportMaterial {
|
||||
id String @id @default(cuid())
|
||||
signatureId String
|
||||
drainageItemId String
|
||||
channelId String
|
||||
fieldCode String
|
||||
fieldValue String?
|
||||
fileObjectId String?
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
signature SmsSignature @relation(fields: [signatureId], references: [id], onDelete: Cascade)
|
||||
channel SmsChannel @relation(fields: [channelId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@unique([signatureId, drainageItemId, channelId, fieldCode])
|
||||
@@index([channelId, fieldCode])
|
||||
}
|
||||
|
||||
model ChannelSignatureReportTask {
|
||||
id String @id @default(cuid())
|
||||
tenantId String
|
||||
|
||||
Reference in New Issue
Block a user