added energy assessment scenarios

This commit is contained in:
Khalim Conn-Kowlessar 2024-09-04 15:55:34 +01:00
parent 9fc65f4780
commit 28e50160f5
4 changed files with 2989 additions and 1 deletions

View file

@ -0,0 +1,24 @@
CREATE TABLE IF NOT EXISTS "energy_assessment_scenarios" (
"id" bigserial PRIMARY KEY NOT NULL,
"scenario_name" text NOT NULL,
"energy_assessment_id" bigint NOT NULL
);
--> statement-breakpoint
ALTER TABLE "energy_assessment_documents" ADD COLUMN "scenario_id" bigint;--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "energy_assessment_documents" ADD CONSTRAINT "energy_assessment_documents_energy_assessment_id_energy_assessments_id_fk" FOREIGN KEY ("energy_assessment_id") REFERENCES "energy_assessments"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "energy_assessment_documents" ADD CONSTRAINT "energy_assessment_documents_scenario_id_energy_assessments_id_fk" FOREIGN KEY ("scenario_id") REFERENCES "energy_assessments"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "energy_assessment_scenarios" ADD CONSTRAINT "energy_assessment_scenarios_energy_assessment_id_energy_assessments_id_fk" FOREIGN KEY ("energy_assessment_id") REFERENCES "energy_assessments"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;

File diff suppressed because it is too large Load diff

View file

@ -659,6 +659,13 @@
"when": 1725459226954,
"tag": "0093_blushing_dark_beast",
"breakpoints": true
},
{
"idx": 94,
"version": "5",
"when": 1725461633948,
"tag": "0094_old_forge",
"breakpoints": true
}
]
}

View file

@ -154,6 +154,20 @@ export const DocumentType: [string, ...string[]] = [
export const DocumentTypeEnum = pgEnum("document_type", DocumentType);
export const energyAssessmentScenarios = pgTable(
"energy_assessment_scenarios",
{
id: bigserial("id", { mode: "bigint" }).primaryKey(),
scenarioName: text("scenario_name").notNull(),
// Foreign key to associate scenario with energy assessments
energyAssessmentId: bigint("energy_assessment_id", {
mode: "bigint",
})
.notNull()
.references(() => energyAssessment.id),
}
);
export const energyAssessmentDocuments = pgTable(
"energy_assessment_documents",
{
@ -161,7 +175,9 @@ export const energyAssessmentDocuments = pgTable(
uprn: bigint("uprn", { mode: "bigint" }).notNull(),
energyAssessmentId: bigint("energy_assessment_id", {
mode: "bigint",
}).notNull(),
})
.notNull()
.references(() => energyAssessment.id),
documentType: DocumentTypeEnum("document_type").notNull(),
documentLocation: text("document_location").notNull(),
// The uploaded at date is automatically created when a new record is added
@ -171,6 +187,9 @@ export const energyAssessmentDocuments = pgTable(
})
.notNull()
.defaultNow(),
scenarioId: bigint("scenario_id", {
mode: "bigint",
}).references(() => energyAssessment.id),
}
);