diff --git a/src/CareTogether.Core/Resources/Policies/IPoliciesResource.cs b/src/CareTogether.Core/Resources/Policies/IPoliciesResource.cs index 9adbcb95..e04a2356 100644 --- a/src/CareTogether.Core/Resources/Policies/IPoliciesResource.cs +++ b/src/CareTogether.Core/Resources/Policies/IPoliciesResource.cs @@ -214,7 +214,8 @@ public sealed record ArrangementPolicy( // TODO: See TODO in ReferralPolicy ImmutableList? RequiredSetupActions = null, ImmutableList? RequiredMonitoringActionsNew = null, // TODO: Rename to RequiredMonitoringActions after migration (see TODO in ReferralPolicy) - ImmutableList? RequiredCloseoutActions = null + ImmutableList? RequiredCloseoutActions = null, + DateTime? SupersededAtUtc = null ) { public ImmutableList RequiredSetupActions_PRE_MIGRATION = diff --git a/src/caretogether-pwa/src/GeneratedClient.ts b/src/caretogether-pwa/src/GeneratedClient.ts index 78ab2f53..149cb06d 100644 --- a/src/caretogether-pwa/src/GeneratedClient.ts +++ b/src/caretogether-pwa/src/GeneratedClient.ts @@ -2926,6 +2926,7 @@ export class ArrangementPolicy implements IArrangementPolicy { requiredSetupActions?: RequirementDefinition[] | undefined; requiredMonitoringActionsNew?: MonitoringRequirement[] | undefined; requiredCloseoutActions?: RequirementDefinition[] | undefined; + supersededAtUtc?: Date | undefined; constructor(data?: IArrangementPolicy) { if (data) { @@ -2999,6 +3000,7 @@ export class ArrangementPolicy implements IArrangementPolicy { for (let item of _data["requiredCloseoutActions"]) this.requiredCloseoutActions!.push(RequirementDefinition.fromJS(item)); } + this.supersededAtUtc = _data["supersededAtUtc"] ? new Date(_data["supersededAtUtc"].toString()) : undefined; } } @@ -3063,6 +3065,7 @@ export class ArrangementPolicy implements IArrangementPolicy { for (let item of this.requiredCloseoutActions) data["requiredCloseoutActions"].push(item.toJSON()); } + data["supersededAtUtc"] = this.supersededAtUtc ? this.supersededAtUtc.toISOString() : undefined; return data; } } @@ -3080,6 +3083,7 @@ export interface IArrangementPolicy { requiredSetupActions?: RequirementDefinition[] | undefined; requiredMonitoringActionsNew?: MonitoringRequirement[] | undefined; requiredCloseoutActions?: RequirementDefinition[] | undefined; + supersededAtUtc?: Date | undefined; } export class MonitoringRequirement implements IMonitoringRequirement { diff --git a/src/caretogether-pwa/src/V1Cases/Arrangements/ArrangementsSection/ArrangementsSection.tsx b/src/caretogether-pwa/src/V1Cases/Arrangements/ArrangementsSection/ArrangementsSection.tsx index c9b21c8a..413ddde2 100644 --- a/src/caretogether-pwa/src/V1Cases/Arrangements/ArrangementsSection/ArrangementsSection.tsx +++ b/src/caretogether-pwa/src/V1Cases/Arrangements/ArrangementsSection/ArrangementsSection.tsx @@ -115,7 +115,13 @@ export function ArrangementsSection({ }} > {v1Case && - policy.referralPolicy?.arrangementPolicies?.map( + policy.referralPolicy?.arrangementPolicies + ?.filter( + (arrangementPolicy) => + !arrangementPolicy.supersededAtUtc || + new Date(arrangementPolicy.supersededAtUtc) > new Date() + ) + .map( (arrangementPolicy) => (