Allowing carbon and energy reduction goals to be passed in the remote assessment

This commit is contained in:
Khalim Conn-Kowlessar 2025-07-31 15:40:20 +01:00
parent 2a7c05141d
commit 88e499ea31

View file

@ -152,7 +152,7 @@ interface EngineTriggerBody {
portfolio_id: string;
housing_type: string;
goal: string;
goal_value: string;
goal_value: string | null;
trigger_file_path: string;
already_installed_file_path: string;
patches_file_path: string;
@ -160,7 +160,7 @@ interface EngineTriggerBody {
valuation_file_path: string;
scenario_name: string;
multi_plan: boolean;
budget: null;
budget: number | null;
event_type: string;
inclusions: (typeof measuresList)[number][];
scenario_id?: string | null;
@ -363,7 +363,7 @@ function useCreateRemoteAssessment({
async function triggerEngine(data: RemoteAssessmentFormValues) {
try {
// Goal value should not be missing at this point
if (!data.goalValue) {
if (data.goal === "Increasing EPC" && !data.goalValue) {
throw new Error("Goal value is required");
}
@ -372,7 +372,8 @@ function useCreateRemoteAssessment({
portfolio_id: portfolioId,
housing_type: data.housingType,
goal: data.goal,
goal_value: data.goalValue,
// We only send goal_value if the goal is "Increasing EPC"
goal_value: data.goal,
trigger_file_path: assetListFileKey,
already_installed_file_path: "",
patches_file_path: "",
@ -381,7 +382,8 @@ function useCreateRemoteAssessment({
scenario_name: data.scenario,
inclusions: data.measures,
multi_plan: true,
budget: null,
// If the goal is "Increasing EPC", we don't send a budget
budget: data.budget || null,
event_type: "remote_assessment",
};
@ -669,34 +671,37 @@ export default function RemoteAssessmentModal({
)}
/>
{goal &&
(goal === "Increasing EPC" ? (
<FormField
control={form.control}
name="goalValue"
render={({ field }) => (
<FormItem>
<FormLabel className="text-gray-800">
Target EPC Rating
</FormLabel>
<FormControl>
{selectedScenario === NEW_SENTINEL ? (
<SelectDropdown
options={goalValueOptions}
selectedOption={field.value || ""}
onSelectOption={(opt) =>
field.onChange(opt.value)
}
/>
) : (
<Input value={field.value} disabled />
)}
</FormControl>
<FormMessage className="text-brandbrown" />
</FormItem>
)}
/>
) : (
{goal && (
<>
{goal === "Increasing EPC" && (
<FormField
control={form.control}
name="goalValue"
render={({ field }) => (
<FormItem>
<FormLabel className="text-gray-800">
Target EPC Rating
</FormLabel>
<FormControl>
{selectedScenario === NEW_SENTINEL ? (
<SelectDropdown
options={goalValueOptions}
selectedOption={field.value || ""}
onSelectOption={(opt) =>
field.onChange(opt.value)
}
/>
) : (
<Input value={field.value} disabled />
)}
</FormControl>
<FormMessage className="text-brandbrown" />
</FormItem>
)}
/>
)}
{/* ✅ Budget shows for ALL goals but is only mandatory when goal != Increasing EPC */}
<FormField
control={form.control}
name="budget"
@ -725,7 +730,8 @@ export default function RemoteAssessmentModal({
</FormItem>
)}
/>
))}
</>
)}
</div>
</>
)}