Repository: bcgov/SIMS
Pull request #4651: #4517 - Bypass partner declaration exception (DV)
Author: login: andrewsignori-aot
Labels: name: Student
description: Student Features
name: SIMS-Api
description: SIMS-Api
name: Form.io
description: Form IO definitions changed.
Created: 2025-04-30T01:09:26Z | Merged: 2025-05-01T23:35:04Z

- Create a new DB enum entry for the `marriedUnable` option.
- Adjusted backend conversions for federal integrations to follow the same codes used for `Married`,
- Adjusted the "independent" logic in the Student Application to ensure it will be considered independant.
- Created a new set of styles to allow a panel (container) customization as a banner that accepts child components (see image below).
- Change the uploader information to use a single component and a single new CSS class `file-upload-info-container`.

## Full-time Student application

![image](https://github.com/user-attachments/assets/9f1cc5a6-aaa5-4b94-92f0-cb54d11480be)

### Some styles were adjusted to ensure the validation message followed the others.

![image](https://github.com/user-attachments/assets/a6c3f7df-296f-4d00-a38d-92b7eae1a315)

## Ministry New Exception

![image](https://github.com/user-attachments/assets/4ea7ffc9-38f7-4bb0-ba10-517db4c45599)

## TODO
- Add some E2E tests for integrations using the new `marriedUnable` option.
- Execute the same changes on part-time.

## Migration Revert

![image](https://github.com/user-attachments/assets/32430b95-cfe1-4cda-a7e1-e3bcb9ff0ebe)

## Removed Citizenship for permanent residency

"Citizenship for permanent residency" was removed as part of #4662 




Diff:
diff --git a/sources/packages/backend/apps/db-migrations/src/migrations/1745962287131-AddRelationshipStatusMarriedUnable.ts b/sources/packages/backend/apps/db-migrations/src/migrations/1745962287131-AddRelationshipStatusMarriedUnable.ts
new file mode 100644
index 0000000000..2156b28172
--- /dev/null
+++ b/sources/packages/backend/apps/db-migrations/src/migrations/1745962287131-AddRelationshipStatusMarriedUnable.ts
@@ -0,0 +1,21 @@
+import { MigrationInterface, QueryRunner } from "typeorm";
+import { getSQLFileData } from "../utilities/sqlLoader";
+
+export class AddRelationshipStatusMarriedUnable1745962287131
+  implements MigrationInterface
+{
+  public async up(queryRunner: QueryRunner): Promise<void> {
+    await queryRunner.query(
+      getSQLFileData("Add-relationship-status-married-unable.sql", "Types"),
+    );
+  }
+
+  public async down(queryRunner: QueryRunner): Promise<void> {
+    await queryRunner.query(
+      getSQLFileData(
+        "Rollback-add-relationship-status-married-unable.sql",
+        "Types",
+      ),
+    );
+  }
+}
diff --git a/sources/packages/backend/apps/db-migrations/src/sql/Types/Add-relationship-status-married-unable.sql b/sources/packages/backend/apps/db-migrations/src/sql/Types/Add-relationship-status-married-unable.sql
new file mode 100644
index 0000000000..7b17d039af
--- /dev/null
+++ b/sources/packages/backend/apps/db-migrations/src/sql/Types/Add-relationship-status-married-unable.sql
@@ -0,0 +1,19 @@
+-- Recreate the enums types when the new item must be added.
+CREATE TYPE sims.relationship_status_to_be_updated AS ENUM (
+  'married',
+  'single',
+  'other',
+  'marriedUnable'
+);
+
+-- Update the dependent column to start using the new enum with the expected values.
+ALTER TABLE
+  sims.applications
+ALTER COLUMN
+  relationship_status TYPE sims.relationship_status_to_be_updated USING (relationship_status :: text) :: sims.relationship_status_to_be_updated;
+
+-- Remove the entire enum that is no longer being used.
+DROP TYPE sims.relationship_status;
+
+-- Rename the enum to what it was in the beginning.
+ALTER TYPE sims.relationship_status_to_be_updated RENAME TO relationship_status;
\ No newline at end of file
diff --git a/sources/packages/backend/apps/db-migrations/src/sql/Types/Rollback-add-relationship-status-married-unable.sql b/sources/packages/backend/apps/db-migrations/src/sql/Types/Rollback-add-relationship-status-married-unable.sql
new file mode 100644
index 0000000000..d6e7dae8e2
--- /dev/null
+++ b/sources/packages/backend/apps/db-migrations/src/sql/Types/Rollback-add-relationship-status-married-unable.sql
@@ -0,0 +1,22 @@
+-- Postgres does not allow the removal of items of an enum, only add or rename.
+-- To remove the previously added items, a temporary enum will be created to
+-- allow the creation of the enum as it was before.
+CREATE TYPE sims.relationship_status_to_rollback AS ENUM ('married', 'single', 'other');
+
+-- Update the dependent column to start using the new enum with the expected values.
+ALTER TABLE
+  sims.applications
+ALTER COLUMN
+  relationship_status TYPE sims.relationship_status_to_rollback USING (
+    CASE
+      relationship_status :: text
+      WHEN 'marriedUnable' THEN 'other'
+      ELSE relationship_status :: text
+    END
+  ) :: sims.relationship_status_to_rollback;
+
+-- Remove the entire enum that is no longer being used.
+DROP TYPE sims.relationship_status;
+
+-- Rename the enum to what it was in the beginning.
+ALTER TYPE sims.relationship_status_to_rollback RENAME TO relationship_status;
\ No newline at end of file
diff --git a/sources/packages/backend/libs/sims-db/src/entities/relationship-status.type.ts b/sources/packages/backend/libs/sims-db/src/entities/relationship-status.type.ts
index 4946e834e2..08261fdb96 100644
--- a/sources/packages/backend/libs/sims-db/src/entities/relationship-status.type.ts
+++ b/sources/packages/backend/libs/sims-db/src/entities/relationship-status.type.ts
@@ -14,4 +14,8 @@ export enum RelationshipStatus {
    * The student who submits the application realtionship status is other than married and single
    */
   Other = "other",
+  /**
+   * Married/common-law and unable to provide partner income due to domestic abuse
+   */
+  MarriedUnable = "marriedUnable",
 }
diff --git a/sources/packages/backend/libs/utilities/src/esdc-utils.ts b/sources/packages/backend/libs/utilities/src/esdc-utils.ts
index 36c521469a..83f1596445 100644
--- a/sources/packages/backend/libs/utilities/src/esdc-utils.ts
+++ b/sources/packages/backend/libs/utilities/src/esdc-utils.ts
@@ -9,15 +9,20 @@ export function getOfferingIntensityCode(offeringIntensity: string): string {
 }
 
 /**
- * Gets the marital status code conversion for the MSFAA request file
+ * Gets the marital status code conversion for the MSFAA request file.
  */
 export function getMaritalStatusCode(
   maritalStatus: RelationshipStatus,
 ): string {
-  if (maritalStatus === RelationshipStatus.Married) {
-    return "M";
+  switch (maritalStatus) {
+    case RelationshipStatus.Single:
+      return "S";
+    case RelationshipStatus.Married:
+    case RelationshipStatus.MarriedUnable:
+      return "M";
+    default:
+      return "O";
   }
-  return maritalStatus === RelationshipStatus.Single ? "S" : "O";
 }
 
 /**
@@ -54,10 +59,15 @@ export function getFormattedPhone(phone: string): string {
 export function getPartTimeMaritalStatusCode(
   maritalStatus: RelationshipStatus,
 ): string {
-  if (maritalStatus === RelationshipStatus.Married) {
-    return "MA";
+  switch (maritalStatus) {
+    case RelationshipStatus.Single:
+      return "SI";
+    case RelationshipStatus.Married:
+    case RelationshipStatus.MarriedUnable:
+      return "MA";
+    default:
+      return "SP";
   }
-  return maritalStatus === RelationshipStatus.Single ? "SI" : "SP";
 }
 
 /**
diff --git a/sources/packages/backend/workflow/test/models/assessment.model.ts b/sources/packages/backend/workflow/test/models/assessment.model.ts
index 3cf4781798..08218b1509 100644
--- a/sources/packages/backend/workflow/test/models/assessment.model.ts
+++ b/sources/packages/backend/workflow/test/models/assessment.model.ts
@@ -44,7 +44,11 @@ export interface StudentAdditionalTransportationAppealData extends JSONDoc {
   additionalTransportPlacement?: YesNoOptions;
 }
 
-export type RelationshipStatusType = "single" | "other" | "married";
+export type RelationshipStatusType =
+  | "single"
+  | "other"
+  | "married"
+  | "marriedUnable";
 
 export interface PartnerInformationAndIncomeAppealData extends JSONDoc {
   relationshipStatus: RelationshipStatusType;
diff --git a/sources/packages/forms/src/form-definitions/sfaa2025-26-ft.json b/sources/packages/forms/src/form-definitions/sfaa2025-26-ft.json
index 6be2a3e889..b46e32a2a4 100644
--- a/sources/packages/forms/src/form-definitions/sfaa2025-26-ft.json
+++ b/sources/packages/forms/src/form-definitions/sfaa2025-26-ft.json
@@ -6587,7 +6587,7 @@
               "tooltip": "",
               "shortcut": "",
               "inputType": "checkbox",
-              "customClass": "font-weight-bold",
+              "customClass": "formio-component-weight-bold",
               "tabindex": "",
               "hidden": false,
               "hideLabel": false,
@@ -6622,7 +6622,7 @@
               "tags": [],
               "properties": {},
               "conditional": {
-                "show": null,
+                "show": "",
                 "when": null,
                 "eq": "",
                 "json": ""
@@ -7205,80 +7205,6 @@
                   "input": false,
                   "tableView": false,
                   "components": [
-                    {
-                      "label": "Application Exception - Citizenship for permanent residency",
-                      "labelWidth": "",
-                      "labelMargin": "",
-                      "customClass": "",
-                      "modalEdit": false,
-                      "defaultValue": null,
-                      "persistent": true,
-                      "protected": false,
-                      "dbIndex": false,
-                      "encrypted": false,
-                      "redrawOn": "",
-                      "customDefaultValue": "",
-                      "calculateValue": "value = \"studentApplicationException\";",
-                      "calculateServer": true,
-                      "key": "citizenshipForPermanentResidencyApplicationException",
-                      "tags": [],
-                      "properties": {},
-                      "logic": [],
-                      "attributes": {},
-                      "overlay": {
-                        "style": "",
-                        "page": "",
-                        "left": "",
-                        "top": "",
-                        "width": "",
-                        "height": ""
-                      },
-                      "type": "hidden",
-                      "input": true,
-                      "tableView": false,
-                      "placeholder": "",
-                      "prefix": "",
-                      "suffix": "",
-                      "multiple": false,
-                      "unique": false,
-                      "hidden": false,
-                      "clearOnHide": true,
-                      "refreshOn": "",
-                      "dataGridLabel": false,
-                      "labelPosition": "top",
-                      "description": "",
-                      "errorLabel": "",
-                      "tooltip": "",
-                      "hideLabel": false,
-                      "tabindex": "",
-                      "disabled": false,
-                      "autofocus": false,
-                      "widget": {
-                        "type": "input"
-                      },
-                      "validateOn": "change",
-                      "validate": {
-                        "required": false,
-                        "custom": "",
-                        "customPrivate": false,
-                        "strictDateValidation": false,
-                        "multiple": false,
-                        "unique": false
-                      },
-                      "conditional": {
-                        "show": null,
-                        "when": null,
-                        "eq": ""
-                      },
-                      "allowCalculateOverride": false,
-                      "showCharCount": false,
-                      "showWordCount": false,
-                      "allowMultipleMasks": false,
-                      "addons": [],
-                      "inputType": "hidden",
-                      "id": "ej3ulok",
-                      "lockKey": true
-                    },
                     {
                       "label": "HTML",
                       "labelWidth": "",
@@ -8070,7 +7996,6 @@
                   "hideOnChildrenHidden": false,
                   "customClass": "",
                   "hidden": false,
-                  "hideLabel": false,
                   "modalEdit": false,
                   "key": "columns6",
                   "tags": [],
@@ -8136,7 +8061,8 @@
                   "tree": false,
                   "id": "elv3ea8",
                   "addons": [],
-                  "lazyLoad": false
+                  "lazyLoad": false,
+                  "hideLabel": true
                 }
               ],
               "allowPrevious": false,
@@ -8200,7 +8126,8 @@
               "breadcrumb": "default",
               "id": "efawj5",
               "addons": [],
-              "lazyLoad": false
+              "lazyLoad": false,
+              "tags": []
             },
             {
               "autofocus": false,
@@ -8224,6 +8151,11 @@
                   "value": "other",
                   "label": "Separated/divorced/widowed",
                   "shortcut": ""
+                },
+                {
+                  "value": "marriedUnable",
+                  "label": "Married/common-law and unable to provide partner income due to domestic abuse",
+                  "shortcut": ""
                 }
               ],
               "defaultValue": "",
@@ -8247,10 +8179,716 @@
                 "eq": ""
               },
               "properties": {},
-              "tooltip": "Marital status is defined below. Please read the definitions carefully.  \n<strong>Single</strong>: If you are not married or in a common-law relationship  \n<strong>Married</strong>: If you are married as of the first day of classes  \n<strong>Common-Law</strong>: You and your partner are considered to be common-law if you meet both of the following:\n- you are currently living together in a marriage-like relationship; and\n- you will have been living together for at least 12 consecutive months before the first day of classes.  \n<strong>Separated/Divorced/Widowed</strong>: If you are separated, divorced or widowed before the first day of classes.",
+              "tooltip": "Marital status is defined below. Please read the definitions carefully.  \n<strong>Single</strong>: If you are not married or in a common-law relationship  \n<strong>Married</strong>: If you are married as of the first day of classes  \n<strong>Common-Law</strong>: You and your partner are considered to be common-law if you meet both of the following:\n- you are currently living together in a marriage-like relationship; and\n- you will have been living together for at least 12 consecutive months before the first day of classes.  \n<strong>Separated/Divorced/Widowed</strong>: If you are separated, divorced or widowed before the first day of classes.\n<strong>Married/common-law and unable to provide partner income due to domestic abuse</strong>: You would be considered married or common-law but are unable to provide partner income due to experiencing domestic abuse (intimate partner violence) which includes, but is not limited to physical, financial, emotional, and/or sexual abuse.",
               "errorLabel": "Relationship Status",
               "lockKey": true
             },
+            {
+              "clearOnHide": false,
+              "key": "marriedCommonLawDomesticViolenceExceptionConfirmPanel",
+              "input": false,
+              "title": "",
+              "theme": "default",
+              "tableView": false,
+              "components": [
+                {
+                  "key": "marriedCommonLawDomesticViolenceExceptionPanelContent",
+                  "label": "Content",
+                  "input": false,
+                  "tag": "div",
+                  "attrs": [
+                    {
+                      "value": "",
+                      "attr": ""
+                    }
+                  ],
+                  "className": "alert alert-warning fa fa-exclamation-triangle w-100",
+                  "content": "<strong> Please confirm that you match the criteria below and are eligible for this exception category.</strong>\n<br />\nYou are married or common-law and are unable to provide partner income due to experiencing domestic abuse (intimate partner violence) which includes, but is not limited to physical, financial, emotional, and/or sexual abuse.",
+                  "type": "htmlelement",
+                  "tags": [],
+                  "conditional": {
+                    "show": "",
+                    "when": null,
+                    "eq": ""
+                  },
+                  "properties": {},
+                  "hideLabel": true
+                },
+                {
+                  "label": "I confirm I am eligible for this exception category and understand that this process requires ministry review and will lead to delays in my funding.",
+                  "labelWidth": "",
+                  "labelMargin": "",
+                  "description": "",
+                  "tooltip": "",
+                  "shortcut": "",
+                  "inputType": "checkbox",
+                  "customClass": "formio-component-weight-bold",
+                  "tabindex": "",
+                  "hidden": false,
+                  "autofocus": false,
+                  "disabled": false,
+                  "tableView": true,
+                  "modalEdit": false,
+                  "defaultValue": "",
+                  "persistent": true,
+                  "protected": false,
+                  "dbIndex": false,
+                  "encrypted": false,
+                  "redrawOn": "",
+                  "clearOnHide": true,
+                  "customDefaultValue": "",
+                  "calculateValue": "",
+                  "calculateServer": false,
+                  "allowCalculateOverride": false,
+                  "validate": {
+                    "required": true,
+                    "customMessage": "You must confirm you understand the exception eligibility criteria.",
+                    "custom": "",
+                    "customPrivate": false,
+                    "json": "",
+                    "strictDateValidation": false,
+                    "multiple": false,
+                    "unique": false
+                  },
+                  "errorLabel": "",
+                  "errors": "",
+                  "key": "marriedUnableConfirmation",
+                  "tags": [],
+                  "properties": {},
+                  "conditional": {
+                    "show": "",
+                    "when": null,
+                    "eq": "",
+                    "json": ""
+                  },
+                  "customConditional": "",
+                  "logic": [],
+                  "attributes": {},
+                  "overlay": {
+                    "style": "",
+                    "page": "",
+                    "left": "",
+                    "top": "",
+                    "width": "",
+                    "height": ""
+                  },
+                  "type": "checkbox",
+                  "name": "",
+                  "value": "",
+                  "input": true,
+                  "dataGridLabel": false,
+                  "lockKey": true,
+                  "hideOnChildrenHidden": false,
+                  "placeholder": "",
+                  "prefix": "",
+                  "suffix": "",
+                  "multiple": false,
+                  "unique": false,
+                  "refreshOn": "",
+                  "labelPosition": "right",
+                  "widget": null,
+                  "validateOn": "change",
+                  "showCharCount": false,
+                  "showWordCount": false,
+                  "allowMultipleMasks": false,
+                  "addons": [],
+                  "id": "e2ll48j",
+                  "hideLabel": false
+                }
+              ],
+              "type": "panel",
+              "breadcrumb": "default",
+              "tags": [],
+              "conditional": {
+                "show": "true",
+                "when": "relationshipStatus",
+                "eq": "marriedUnable"
+              },
+              "properties": {},
+              "customClass": "alert-banner-container alert-banner-warning",
+              "lockKey": true,
+              "hideLabel": true
+            },
+            {
+              "title": "Married/Common-law domestic violence Exception",
+              "breadcrumbClickable": false,
+              "buttonSettings": {
+                "previous": false,
+                "cancel": false,
+                "next": false
+              },
+              "scrollToTop": false,
+              "collapsible": false,
+              "key": "marriedCommonLawDomesticViolenceExceptionPanel",
+              "conditional": {
+                "show": "true",
+                "when": "marriedUnableConfirmation",
+                "eq": "true"
+              },
+              "type": "panel",
+              "label": "Not a BC Resident Panel",
+              "input": false,
+              "tableView": false,
+              "components": [
+                {
+                  "label": "Application Exception - Married/Common-law domestic violence",
+                  "labelWidth": "",
+                  "labelMargin": "",
+                  "customClass": "",
+                  "modalEdit": false,
+                  "defaultValue": null,
+                  "persistent": true,
+                  "protected": false,
+                  "dbIndex": false,
+                  "encrypted": false,
+                  "redrawOn": "",
+                  "customDefaultValue": "",
+                  "calculateValue": "value = \"studentApplicationException\";",
+                  "calculateServer": true,
+                  "key": "marriedCommonLawDomesticViolenceApplicationException",
+                  "tags": [],
+                  "properties": {},
+                  "logic": [],
+                  "attributes": {},
+                  "overlay": {
+                    "style": "",
+                    "page": "",
+                    "left": "",
+                    "top": "",
+                    "width": "",
+                    "height": ""
+                  },
+                  "type": "hidden",
+                  "input": true,
+                  "tableView": false,
+                  "placeholder": "",
+                  "prefix": "",
+                  "suffix": "",
+                  "multiple": false,
+                  "unique": false,
+                  "hidden": false,
+                  "clearOnHide": true,
+                  "refreshOn": "",
+                  "dataGridLabel": false,
+                  "labelPosition": "top",
+                  "description": "",
+                  "errorLabel": "",
+                  "tooltip": "",
+                  "tabindex": "",
+                  "disabled": false,
+                  "autofocus": false,
+                  "widget": {
+                    "type": "input"
+                  },
+                  "validateOn": "change",
+                  "validate": {
+                    "required": false,
+                    "custom": "",
+                    "customPrivate": false,
+                    "strictDateValidation": false,
+                    "multiple": false,
+                    "unique": false
+                  },
+                  "conditional": {
+                    "show": "",
+                    "when": null,
+                    "eq": ""
+                  },
+                  "allowCalculateOverride": false,
+                  "showCharCount": false,
+                  "showWordCount": false,
+                  "allowMultipleMasks": false,
+                  "addons": [],
+                  "inputType": "hidden",
+                  "id": "ed8czgf",
+                  "lockKey": true
+                },
+                {
+                  "title": "Upload supporting documents",
+                  "labelWidth": "",
+                  "labelMargin": "",
+                  "theme": "default",
+                  "tooltip": "",
+                  "customClass": "formio-panel-unset",
+                  "collapsible": false,
+                  "hidden": false,
+                  "disabled": false,
+                  "modalEdit": false,
+                  "key": "marriedCommonLawDomesticViolenceExceptionSupportingDocumentsPanel",
+                  "tags": [],
+                  "properties": {},
+                  "customConditional": "",
+                  "conditional": {
+                    "json": "",
+                    "show": "",
+                    "when": null,
+                    "eq": ""
+                  },
+                  "logic": [],
+                  "attributes": {},
+                  "overlay": {
+                    "style": "",
+                    "page": "",
+                    "left": "",
+                    "top": "",
+                    "width": "",
+                    "height": ""
+                  },
+                  "type": "panel",
+                  "label": "Upload supporting documents",
+                  "breadcrumb": "default",
+                  "buttonSettings": {
+                    "previous": true,
+                    "cancel": true,
+                    "next": true
+                  },
+                  "tabindex": "",
+                  "breadcrumbClickable": true,
+                  "scrollToTop": false,
+                  "input": false,
+                  "tableView": false,
+                  "components": [
+                    {
+                      "label": "HTML",
+                      "tag": "h3",
+                      "className": "category-header-medium primary-color",
+                      "attrs": [
+                        {
+                          "attr": "",
+                          "value": ""
+                        }
+                      ],
+                      "content": "Upload supporting documents",
+                      "refreshOnChange": false,
+                      "key": "html56",
+                      "type": "htmlelement",
+                      "input": false,
+                      "tableView": false,
+                      "placeholder": "",
+                      "prefix": "",
+                      "customClass": "",
+                      "suffix": "",
+                      "multiple": false,
+                      "defaultValue": null,
+                      "protected": false,
+                      "unique": false,
+                      "persistent": false,
+                      "hidden": false,
+                      "clearOnHide": true,
+                      "refreshOn": "",
+                      "redrawOn": "",
+                      "modalEdit": false,
+                      "dataGridLabel": false,
+                      "labelPosition": "top",
+                      "description": "",
+                      "errorLabel": "",
+                      "tooltip": "",
+                      "hideLabel": false,
+                      "tabindex": "",
+                      "disabled": false,
+                      "autofocus": false,
+                      "dbIndex": false,
+                      "customDefaultValue": "",
+                      "calculateValue": "",
+                      "calculateServer": false,
+                      "widget": null,
+                      "attributes": {},
+                      "validateOn": "change",
+                      "validate": {
+                        "required": false,
+                        "custom": "",
+                        "customPrivate": false,
+                        "strictDateValidation": false,
+                        "multiple": false,
+                        "unique": false
+                      },
+                      "conditional": {
+                        "show": null,
+                        "when": null,
+                        "eq": ""
+                      },
+                      "overlay": {
+                        "style": "",
+                        "left": "",
+                        "top": "",
+                        "width": "",
+                        "height": ""
+                      },
+                      "allowCalculateOverride": false,
+                      "encrypted": false,
+                      "showCharCount": false,
+                      "showWordCount": false,
+                      "properties": {},
+                      "allowMultipleMasks": false,
+                      "addons": [],
+                      "id": "eawr0fg"
+                    },
+                    {
+                      "label": "HTML",
+                      "attrs": [
+                        {
+                          "attr": "",
+                          "value": ""
+                        }
+                      ],
+                      "content": "Please provide all of the documents listed below:",
+                      "refreshOnChange": false,
+                      "key": "html4",
+                      "type": "htmlelement",
+                      "input": false,
+                      "tableView": false,
+                      "placeholder": "",
+                      "prefix": "",
+                      "customClass": "",
+                      "suffix": "",
+                      "multiple": false,
+                      "defaultValue": null,
+                      "protected": false,
+                      "unique": false,
+                      "persistent": false,
+                      "hidden": false,
+                      "clearOnHide": true,
+                      "refreshOn": "",
+                      "redrawOn": "",
+                      "modalEdit": false,
+                      "dataGridLabel": false,
+                      "labelPosition": "top",
+                      "description": "",
+                      "errorLabel": "",
+                      "tooltip": "",
+                      "hideLabel": false,
+                      "tabindex": "",
+                      "disabled": false,
+                      "autofocus": false,
+                      "dbIndex": false,
+                      "customDefaultValue": "",
+                      "calculateValue": "",
+                      "calculateServer": false,
+                      "widget": null,
+                      "attributes": {},
+                      "validateOn": "change",
+                      "validate": {
+                        "required": false,
+                        "custom": "",
+                        "customPrivate": false,
+                        "strictDateValidation": false,
+                        "multiple": false,
+                        "unique": false
+                      },
+                      "conditional": {
+                        "show": "",
+                        "when": null,
+                        "eq": ""
+                      },
+                      "overlay": {
+                        "style": "",
+                        "left": "",
+                        "top": "",
+                        "width": "",
+                        "height": ""
+                      },
+                      "allowCalculateOverride": false,
+                      "encrypted": false,
+                      "showCharCount": false,
+                      "showWordCount": false,
+                      "properties": {},
+                      "allowMultipleMasks": false,
+                      "addons": [],
+                      "tag": "h4",
+                      "id": "exvzcx",
+                      "className": "category-header-medium-small",
+                      "tags": []
+                    },
+                    {
+                      "label": "HTML",
+                      "labelWidth": "",
+                      "labelMargin": "",
+                      "tag": "div",
+                      "className": "",
+                      "attrs": [
+                        {
+                          "attr": "",
+                          "value": ""
+                        }
+                      ],
+                      "content": "<ul>\n<li>A written statement outlining, in detail, the nature of the circumstances;</li>\n<li>A letter from a professional third party confirming your statement and providing an independent assessment of the situation. A professional ‘third party’ includes, but is not limited to: counselor, psychologist, religious advisor, doctor, teacher, police, and/or staff at a social service agency, such as an organization supporting those experiencing abuse or violence.\n</li>\n</ul>",
+                      "refreshOnChange": false,
+                      "customClass": "align-bullets",
+                      "hidden": false,
+                      "modalEdit": false,
+                      "key": "html23",
+                      "tags": [],
+                      "properties": {},
+                      "conditional": {
+                        "show": "",
+                        "when": null,
+                        "eq": "",
+                        "json": ""
+                      },
+                      "customConditional": "",
+                      "logic": [],
+                      "attributes": {},
+                      "overlay": {
+                        "style": "",
+                        "page": "",
+                        "left": "",
+                        "top": "",
+                        "width": "",
+                        "height": ""
+                      },
+                      "type": "htmlelement",
+                      "input": false,
+                      "tableView": false,
+                      "placeholder": "",
+                      "prefix": "",
+                      "suffix": "",
+                      "multiple": false,
+                      "defaultValue": null,
+                      "protected": false,
+                      "unique": false,
+                      "persistent": false,
+                      "clearOnHide": true,
+                      "refreshOn": "",
+                      "redrawOn": "",
+                      "dataGridLabel": false,
+                      "labelPosition": "top",
+                      "description": "",
+                      "errorLabel": "",
+                      "tooltip": "",
+                      "hideLabel": false,
+                      "tabindex": "",
+                      "disabled": false,
+                      "autofocus": false,
+                      "dbIndex": false,
+                      "customDefaultValue": "",
+                      "calculateValue": "",
+                      "calculateServer": false,
+                      "widget": null,
+                      "validateOn": "change",
+                      "validate": {
+                        "required": false,
+                        "custom": "",
+                        "customPrivate": false,
+                        "strictDateValidation": false,
+                        "multiple": false,
+                        "unique": false
+                      },
+                      "allowCalculateOverride": false,
+                      "encrypted": false,
+                      "showCharCount": false,
+                      "showWordCount": false,
+                      "allowMultipleMasks": false,
+                      "addons": [],
+                      "id": "eznitl"
+                    },
+                    {
+                      "label": "Upload supporting documents",
+                      "customClass": "font-weight-bold",
+                      "hideLabel": true,
+                      "tableView": false,
+                      "storage": "url",
+                      "dir": "Not a BC Resident - Supporting Documents",
+                      "webcam": false,
+                      "fileTypes": [
+                        {
+                          "label": "",
+                          "value": ""
+                        }
+                      ],
+                      "filePattern": ".pdf,.doc,.docx,.jpg,.png,.txt",
+                      "fileMaxSize": "15MB",
+                      "multiple": true,
+                      "key": "marriedCommonLawDomesticViolenceExceptionDocuments",
+                      "type": "file",
+                      "url": "student/files",
+                      "input": true,
+                      "placeholder": "",
+                      "prefix": "",
+                      "suffix": "",
+                      "defaultValue": null,
+                      "protected": false,
+                      "unique": false,
+                      "persistent": true,
+                      "hidden": false,
+                      "clearOnHide": true,
+                      "refreshOn": "",
+                      "redrawOn": "",
+                      "modalEdit": false,
+                      "dataGridLabel": false,
+                      "labelPosition": "top",
+                      "description": "",
+                      "errorLabel": "",
+                      "tooltip": "",
+                      "tabindex": "",
+                      "disabled": false,
+                      "autofocus": false,
+                      "dbIndex": false,
+                      "customDefaultValue": "",
+                      "calculateValue": "",
+                      "calculateServer": false,
+                      "widget": null,
+                      "attributes": {},
+                      "validateOn": "change",
+                      "validate": {
+                        "required": true,
+                        "customMessage": "You must upload at least one file, and the total number of uploaded files cannot exceed {{data.maxUploadedFiles}}.",
+                        "custom": "const files = data[instance.key] || []; valid = files.length > data.maxUploadedFiles ? false : true;",
+                        "customPrivate": false,
+                        "strictDateValidation": false,
+                        "multiple": false,
+                        "unique": false
+                      },
+                      "conditional": {
+                        "show": "",
+                        "when": null,
+                        "eq": ""
+                      },
+                      "overlay": {
+                        "style": "",
+                        "left": "",
+                        "top": "",
+                        "width": "",
+                        "height": ""
+                      },
+                      "allowCalculateOverride": false,
+                      "encrypted": false,
+                      "showCharCount": false,
+                      "showWordCount": false,
+                      "properties": {},
+                      "allowMultipleMasks": false,
+                      "addons": [],
+                      "image": false,
+                      "privateDownload": false,
+                      "imageSize": "200",
+                      "fileMinSize": "0KB",
+                      "uploadOnly": false,
+                      "id": "e15yoie",
+                      "tags": [],
+                      "lockKey": true
+                    },
+                    {
+                      "key": "marriedCommonLawDomesticViolenceExceptionSupportingDocumentsPanelContent",
+                      "label": "Content",
+                      "input": false,
+                      "tag": "div",
+                      "attrs": [],
+                      "className": "file-upload-info-container",
+                      "content": "<p>We accept <strong>JPG, PNG, DOC, DOCX, PDF, TXT</strong></p>\n<p>15MB file limit each</p>",
+                      "type": "htmlelement",
+                      "hideLabel": true,
+                      "tags": [],
+                      "conditional": {
+                        "show": "",
+                        "when": null,
+                        "eq": ""
+                      },
+                      "properties": {}
+                    }
+                  ],
+                  "placeholder": "",
+                  "prefix": "",
+                  "suffix": "",
+                  "multiple": false,
+                  "defaultValue": null,
+                  "protected": false,
+                  "unique": false,
+                  "persistent": false,
+                  "clearOnHide": false,
+                  "refreshOn": "",
+                  "redrawOn": "",
+                  "dataGridLabel": false,
+                  "labelPosition": "top",
+                  "description": "",
+                  "errorLabel": "",
+                  "autofocus": false,
+                  "dbIndex": false,
+                  "customDefaultValue": "",
+                  "calculateValue": "",
+                  "calculateServer": false,
+                  "widget": null,
+                  "validateOn": "change",
+                  "validate": {
+                    "required": false,
+                    "custom": "",
+                    "customPrivate": false,
+                    "strictDateValidation": false,
+                    "multiple": false,
+                    "unique": false
+                  },
+                  "allowCalculateOverride": false,
+                  "encrypted": false,
+                  "showCharCount": false,
+                  "showWordCount": false,
+                  "allowMultipleMasks": false,
+                  "addons": [],
+                  "tree": false,
+                  "lazyLoad": false,
+                  "id": "e7zmnf6",
+                  "lockKey": true,
+                  "hideLabel": true
+                }
+              ],
+              "allowPrevious": false,
+              "placeholder": "",
+              "prefix": "",
+              "customClass": "",
+              "suffix": "",
+              "multiple": false,
+              "defaultValue": null,
+              "protected": false,
+              "unique": false,
+              "persistent": false,
+              "hidden": false,
+              "clearOnHide": false,
+              "refreshOn": "",
+              "redrawOn": "",
+              "modalEdit": false,
+              "dataGridLabel": false,
+              "labelPosition": "top",
+              "description": "",
+              "errorLabel": "",
+              "tooltip": "",
+              "tabindex": "",
+              "disabled": false,
+              "autofocus": false,
+              "dbIndex": false,
+              "customDefaultValue": "",
+              "calculateValue": "",
+              "calculateServer": false,
+              "widget": null,
+              "attributes": {},
+              "validateOn": "change",
+              "validate": {
+                "required": false,
+                "custom": "",
+                "customPrivate": false,
+                "strictDateValidation": false,
+                "multiple": false,
+                "unique": false
+              },
+              "overlay": {
+                "style": "",
+                "left": "",
+                "top": "",
+                "width": "",
+                "height": ""
+              },
+              "allowCalculateOverride": false,
+              "encrypted": false,
+              "showCharCount": false,
+              "showWordCount": false,
+              "properties": {},
+              "allowMultipleMasks": false,
+              "tree": false,
+              "theme": "default",
+              "breadcrumb": "default",
+              "id": "eo7yj4f",
+              "addons": [],
+              "lazyLoad": false,
+              "tags": [],
+              "hideLabel": true,
+              "lockKey": true
+            },
             {
               "label": "Do you identify as an Indigenous person; that is, First Nations, Métis or Inuit?",
               "labelPosition": "top",
@@ -12465,7 +13103,7 @@
           },
           "properties": {},
           "calculateServer": true,
-          "calculateValue": "// If the intensity is Part-time, student is always considered 'independant'.\r\nif (data.howWillYouBeAttendingTheProgram === \"Part Time\") {\r\n  instance.setValue(\"independant\");\r\n}\r\n// If the intensity is Full-time, dependant status is calculated based on personal information answers.\r\nelse if (data.howWillYouBeAttendingTheProgram === \"Full Time\") {\r\n  const isStudentIndependant =\r\n    data.hasDependents === \"yes\" ||\r\n    [\"married\", \"other\"].includes(data.relationshipStatus) ||\r\n    data.outOfHighSchoolFor4Years === \"yes\" ||\r\n    data.fulltimelabourForce === \"yes\" ||\r\n    data.parentsDeceased === \"yes\" ||\r\n    data.estranged === \"yes\" ||\r\n    data.custodyOfChildWelfare === \"yes\";\r\n  // If the student is not independant, dependant status is calculated based on personal information answer inputs.\r\n  if (!isStudentIndependant) {\r\n    const isPersonalInfoAnswered =\r\n      !!data.hasDependents &&\r\n      !!data.relationshipStatus &&\r\n      !!data.outOfHighSchoolFor4Years &&\r\n      !!data.fulltimelabourForce &&\r\n      !!data.parentsDeceased &&\r\n      !!data.estranged &&\r\n      !!data.youthInCare &&\r\n      (data.youthInCare === \"no\" || !!data.custodyOfChildWelfare);\r\n    // If the answers to required personal information inputs are not provided, set the dependant status to null.\r\n    // Otherwise, dependant status is calculated based on personal information answers.\r\n    const calculatedStatusFromPersonalInfo = isPersonalInfoAnswered\r\n      ? \"dependant\"\r\n      : null;\r\n    instance.setValue(calculatedStatusFromPersonalInfo);\r\n  } else {\r\n    instance.setValue(\"independant\");\r\n  }\r\n}\r\n// If the intensity is not provided, set the value to null.\r\nelse {\r\n  instance.setValue(null);\r\n}\r\n ",
+          "calculateValue": "// If the intensity is Part-time, student is always considered 'independant'.\r\nif (data.howWillYouBeAttendingTheProgram === \"Part Time\") {\r\n  instance.setValue(\"independant\");\r\n}\r\n// If the intensity is Full-time, dependant status is calculated based on personal information answers.\r\nelse if (data.howWillYouBeAttendingTheProgram === \"Full Time\") {\r\n  const isStudentIndependant =\r\n    data.hasDependents === \"yes\" ||\r\n    [\"married\", \"other\", \"marriedUnable\"].includes(data.relationshipStatus) ||\r\n    data.outOfHighSchoolFor4Years === \"yes\" ||\r\n    data.fulltimelabourForce === \"yes\" ||\r\n    data.parentsDeceased === \"yes\" ||\r\n    data.estranged === \"yes\" ||\r\n    data.custodyOfChildWelfare === \"yes\";\r\n  // If the student is not independant, dependant status is calculated based on personal information answer inputs.\r\n  if (!isStudentIndependant) {\r\n    const isPersonalInfoAnswered =\r\n      !!data.hasDependents &&\r\n      !!data.relationshipStatus &&\r\n      !!data.outOfHighSchoolFor4Years &&\r\n      !!data.fulltimelabourForce &&\r\n      !!data.parentsDeceased &&\r\n      !!data.estranged &&\r\n      !!data.youthInCare &&\r\n      (data.youthInCare === \"no\" || !!data.custodyOfChildWelfare);\r\n    // If the answers to required personal information inputs are not provided, set the dependant status to null.\r\n    // Otherwise, dependant status is calculated based on personal information answers.\r\n    const calculatedStatusFromPersonalInfo = isPersonalInfoAnswered\r\n      ? \"dependant\"\r\n      : null;\r\n    instance.setValue(calculatedStatusFromPersonalInfo);\r\n  } else {\r\n    instance.setValue(\"independant\");\r\n  }\r\n}\r\n// If the intensity is not provided, set the value to null.\r\nelse {\r\n  instance.setValue(null);\r\n}\r\n",
           "lockKey": true
         }
       ],
diff --git a/sources/packages/forms/src/form-definitions/studentexceptions.json b/sources/packages/forms/src/form-definitions/studentexceptions.json
index 43da51b34b..a7867fa2a5 100644
--- a/sources/packages/forms/src/form-definitions/studentexceptions.json
+++ b/sources/packages/forms/src/form-definitions/studentexceptions.json
@@ -1972,7 +1972,8 @@
                 "when": null,
                 "eq": ""
               },
-              "properties": {}
+              "properties": {},
+              "isNew": false
             }
           ],
           "tableView": false,
@@ -1987,6 +1988,51 @@
           "properties": {},
           "lockKey": true,
           "customConditional": "show = data.exceptionNames.indexOf(component.key) !== -1;"
+        },
+        {
+          "clearOnHide": false,
+          "key": "marriedCommonLawDomesticViolenceApplicationException",
+          "input": false,
+          "components": [
+            {
+              "key": "marriedCommonLawDomesticViolence",
+              "label": "Married/common-law domestic violence",
+              "input": false,
+              "tag": "strong",
+              "attrs": [
+                {
+                  "value": "",
+                  "attr": ""
+                }
+              ],
+              "className": "font-bold",
+              "content": "Married/common-law domestic violence",
+              "type": "htmlelement",
+              "hideLabel": true,
+              "tags": [],
+              "conditional": {
+                "show": "",
+                "when": null,
+                "eq": ""
+              },
+              "properties": {},
+              "lockKey": true,
+              "isNew": false
+            }
+          ],
+          "tableView": false,
+          "type": "well",
+          "hideLabel": true,
+          "tags": [],
+          "conditional": {
+            "show": "",
+            "when": null,
+            "eq": ""
+          },
+          "properties": {},
+          "lockKey": true,
+          "customConditional": "show = data.exceptionNames.indexOf(component.key) !== -1;",
+          "isNew": false
         }
       ],
       "placeholder": "",
diff --git a/sources/packages/web/src/assets/css/formio-shared.scss b/sources/packages/web/src/assets/css/formio-shared.scss
index c22f82a5ec..98659018df 100644
--- a/sources/packages/web/src/assets/css/formio-shared.scss
+++ b/sources/packages/web/src/assets/css/formio-shared.scss
@@ -309,6 +309,7 @@
   box-sizing: border-box;
   border-radius: 8px;
 }
+
 .banner-warning p,
 .banner-warning div {
   @extend .banner-font;
@@ -327,6 +328,47 @@
   border-radius: 8px;
 }
 
+/**
+* The alert-banner-container style should be used when the banners must also contain a form.io component.
+* It should be applied to a form.io panel with a child html component with its tag defined as "div"
+* and using the CSS class "alert alert-warning fa fa-exclamation-triangle w-100".
+*/
+.alert-banner-container .card-body {
+  @extend .banner-font;
+  border-width: 2px !important;
+  border-style: solid !important;
+  border-radius: 8px;
+}
+
+.alert-banner-container .formio-component-htmlelement {
+  @extend .banner-font;
+}
+
+.alert-banner-container div {
+  border: none;
+}
+
+.alert-banner-container .alert {
+  padding: 0px;
+}
+
+/**
+* Below are the alert-banner-container specific styles for the different types of alert banners.
+* Please add new ones as required.
+*/
+.alert-banner-container.alert-banner-warning {
+  .card-body {
+    color: $banner-color-warning;
+    background: $banner-background-warning;
+  }
+  .fa-exclamation-triangle:before {
+    color: $banner-color-warning;
+  }
+  .alert {
+    background: $banner-background-warning;
+  }
+}
+
 /**
 * When columns are displayed side by side and the labels
 * are long enough the columns have different heights.
@@ -457,6 +499,7 @@
 
 .form-check-input {
   position: inherit;
+  vertical-align: top;
 }
 
 .img-background {
@@ -799,3 +842,21 @@ td .formio-custom-tooltip:hover .tooltip-text {
 .grid-row-indentation-first-level {
   margin-left: 1rem;
 }
+
+/**
+* Align the container children to the left and to the right
+* to have the allowed files aligned to the left and
+* file size aligned to the right.
+*/
+.file-upload-info-container {
+  display: flex;
+  justify-content: space-between;
+}
+
+/**
+* Apply a bold text to a component without interfering with other
+* component items, for instance, error validators.
+*/
+.formio-component-weight-bold > div:first-child {
+  font-weight: $font-weight-bold;
+}


Reviews:
user: login: copilot-pull-request-reviewer[bot]
body: ## Pull Request Overview

This PR introduces a new relationship status ("marriedUnable") to support partner declaration exceptions and aligns backend logic to incorporate this change. Key updates include:
- Expanding type definitions and enums to include "marriedUnable".
- Updating conversion functions in the utility module to map both Married and MarriedUnable to the same codes.
- Adding a new DB migration to insert the new status into the database.

### Reviewed Changes

Copilot reviewed 5 out of 9 changed files in this pull request and generated no comments.

| File | Description |
| ---- | ----------- |
| sources/packages/backend/workflow/test/models/assessment.model.ts | Updated the RelationshipStatusType union to include "marriedUnable". |
| sources/packages/backend/libs/utilities/src/esdc-utils.ts | Modified conversion functions (getMaritalStatusCode and getPartTimeMaritalStatusCode) to include a case for "MarriedUnable". |
| sources/packages/backend/libs/sims-db/src/entities/relationship-status.type.ts | Added a new enum entry for MarriedUnable with proper documentation. |
| sources/packages/backend/apps/db-migrations/src/migrations/1745962287131-AddRelationshipStatusMarriedUnable.ts | Introduced a migration for adding the new relationship status. |

<details>
<summary>Files not reviewed (4)</summary>

* **sources/packages/backend/apps/db-migrations/src/sql/Types/Add-relationship-status-married-unable.sql**: Language not supported
* **sources/packages/backend/apps/db-migrations/src/sql/Types/Rollback-add-relationship-status-married-unable.sql**: Language not supported
* **sources/packages/forms/src/form-definitions/studentexceptions.json**: Language not supported
* **sources/packages/web/src/assets/css/formio-shared.scss**: Language not supported
</details>

<details>
<summary>Comments suppressed due to low confidence (2)</summary>

**sources/packages/backend/libs/utilities/src/esdc-utils.ts:17**
* Consider adding tests to verify that both RelationshipStatus.Married and RelationshipStatus.MarriedUnable correctly map to the expected marital status code for the MSFAA request file.
```
switch (maritalStatus) {
```
**sources/packages/backend/libs/utilities/src/esdc-utils.ts:62**
* Consider adding tests to ensure getPartTimeMaritalStatusCode handles RelationshipStatus.MarriedUnable in the same way as RelationshipStatus.Married, returning the correct status code.
```
switch (maritalStatus) {
```
</details>


state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-30T22:23:25Z
user: login: dheepak-aot
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-01T20:40:13Z
user: login: dheepak-aot
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-01T20:46:31Z
user: login: dheepak-aot
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-01T21:06:32Z
user: login: sh16011993
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-01T21:43:53Z
user: login: dheepak-aot
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-01T21:57:28Z
user: login: dheepak-aot
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-01T21:57:44Z
user: login: andrewsignori-aot
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-01T22:02:27Z
user: login: andrewsignori-aot
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-01T22:03:53Z
user: login: andrewsignori-aot
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-01T22:04:49Z
user: login: andrewsignori-aot
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-01T22:11:32Z
user: login: andrewsignori-aot
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-01T22:13:26Z
user: login: dheepak-aot
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-01T22:16:08Z
user: login: andrewsignori-aot
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-01T22:41:22Z
user: login: dheepak-aot
body: Looks good. Thanks for the clarifications. 👍
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-05-01T22:57:36Z
user: login: andrewsignori-aot
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-01T22:58:28Z
user: login: copilot-pull-request-reviewer[bot]
body: ## Pull Request Overview

This PR implements the bypass partner declaration exception by introducing a new enum value "marriedUnable". Changes include updating the related type definitions, conversion logic in the backend utility functions, and adding a new database migration for the enum update.
- Updated RelationshipStatusType and RelationshipStatus enum to include "marriedUnable".
- Modified the marital status conversion functions in esdc-utils to support the new option.
- Added a new migration for updating the database with the "marriedUnable" option.

### Reviewed Changes

Copilot reviewed 5 out of 9 changed files in this pull request and generated 2 comments.

| File | Description |
| ---- | ----------- |
| sources/packages/backend/workflow/test/models/assessment.model.ts | Extended the RelationshipStatusType to include "marriedUnable". |
| sources/packages/backend/libs/utilities/src/esdc-utils.ts | Updated conversion functions (MSFAA and Part-Time) to group Married and MarriedUnable statuses. |
| sources/packages/backend/libs/sims-db/src/entities/relationship-status.type.ts | Added the MarriedUnable enum with accompanying documentation. |
| sources/packages/backend/apps/db-migrations/src/migrations/1745962287131-AddRelationshipStatusMarriedUnable.ts | Created a migration for the new MarriedUnable enum value. |

<details>
<summary>Files not reviewed (4)</summary>

* **sources/packages/backend/apps/db-migrations/src/sql/Types/Add-relationship-status-married-unable.sql**: Language not supported
* **sources/packages/backend/apps/db-migrations/src/sql/Types/Rollback-add-relationship-status-married-unable.sql**: Language not supported
* **sources/packages/forms/src/form-definitions/studentexceptions.json**: Language not supported
* **sources/packages/web/src/assets/css/formio-shared.scss**: Language not supported
</details>

<details>
<summary>Comments suppressed due to low confidence (1)</summary>

**sources/packages/backend/workflow/test/models/assessment.model.ts:51**
* Ensure that the new 'marriedUnable' enum value is consistently handled in all partner information and income logic across the codebase.
```
  | "marriedUnable";
```
</details>


state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-01T22:59:56Z
user: login: sh16011993
body: Great work @andrewsignori-aot 👍 
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-05-01T23:34:06Z

Review comments:
diff_hunk: @@ -0,0 +1,21 @@
+import { MigrationInterface, QueryRunner } from "typeorm";
+import { getSQLFileData } from "../utilities/sqlLoader";
+
+export class AddRelationshipStatusMarriedUnable1745962287131
+  implements MigrationInterface
+{
+  public async up(queryRunner: QueryRunner): Promise<void> {
path: sources/packages/backend/apps/db-migrations/src/migrations/1745962287131-AddRelationshipStatusMarriedUnable.ts
user: login: dheepak-aot
body: Please add the rollback evidence to the PR description.
created_at: 2025-05-01T20:40:13Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,19 @@
+-- Recreate the enums types when the new item must be added.
+CREATE TYPE sims.relationship_status_to_be_updated AS ENUM (
+  'married',
+  'single',
+  'other',
+  'marriedUnable'
path: sources/packages/backend/apps/db-migrations/src/sql/Types/Add-relationship-status-married-unable.sql
user: login: dheepak-aot
body: The AC specifies the value as `married unable` with a space. 
![image](https://github.com/user-attachments/assets/44752db3-f8ba-4c6f-9d19-db30a09f5c30)

Is the business ok with the given value?

created_at: 2025-05-01T20:46:31Z
author_association: COLLABORATOR
diff_hunk: @@ -12465,7 +13177,7 @@
           },
           "properties": {},
           "calculateServer": true,
-          "calculateValue": "// If the intensity is Part-time, student is always considered 'independant'.\r\nif (data.howWillYouBeAttendingTheProgram === \"Part Time\") {\r\n  instance.setValue(\"independant\");\r\n}\r\n// If the intensity is Full-time, dependant status is calculated based on personal information answers.\r\nelse if (data.howWillYouBeAttendingTheProgram === \"Full Time\") {\r\n  const isStudentIndependant =\r\n    data.hasDependents === \"yes\" ||\r\n    [\"married\", \"other\"].includes(data.relationshipStatus) ||\r\n    data.outOfHighSchoolFor4Years === \"yes\" ||\r\n    data.fulltimelabourForce === \"yes\" ||\r\n    data.parentsDeceased === \"yes\" ||\r\n    data.estranged === \"yes\" ||\r\n    data.custodyOfChildWelfare === \"yes\";\r\n  // If the student is not independant, dependant status is calculated based on personal information answer inputs.\r\n  if (!isStudentIndependant) {\r\n    const isPersonalInfoAnswered =\r\n      !!data.hasDependents &&\r\n      !!data.relationshipStatus &&\r\n      !!data.outOfHighSchoolFor4Years &&\r\n      !!data.fulltimelabourForce &&\r\n      !!data.parentsDeceased &&\r\n      !!data.estranged &&\r\n      !!data.youthInCare &&\r\n      (data.youthInCare === \"no\" || !!data.custodyOfChildWelfare);\r\n    // If the answers to required personal information inputs are not provided, set the dependant status to null.\r\n    // Otherwise, dependant status is calculated based on personal information answers.\r\n    const calculatedStatusFromPersonalInfo = isPersonalInfoAnswered\r\n      ? \"dependant\"\r\n      : null;\r\n    instance.setValue(calculatedStatusFromPersonalInfo);\r\n  } else {\r\n    instance.setValue(\"independant\");\r\n  }\r\n}\r\n// If the intensity is not provided, set the value to null.\r\nelse {\r\n  instance.setValue(null);\r\n}\r\n ",
+          "calculateValue": "// If the intensity is Part-time, student is always considered 'independant'.\r\nif (data.howWillYouBeAttendingTheProgram === \"Part Time\") {\r\n  instance.setValue(\"independant\");\r\n}\r\n// If the intensity is Full-time, dependant status is calculated based on personal information answers.\r\nelse if (data.howWillYouBeAttendingTheProgram === \"Full Time\") {\r\n  const isStudentIndependant =\r\n    data.hasDependents === \"yes\" ||\r\n    [\"married\", \"other\", \"marriedUnable\"].includes(data.relationshipStatus) ||\r\n    data.outOfHighSchoolFor4Years === \"yes\" ||\r\n    data.fulltimelabourForce === \"yes\" ||\r\n    data.parentsDeceased === \"yes\" ||\r\n    data.estranged === \"yes\" ||\r\n    data.custodyOfChildWelfare === \"yes\";\r\n  // If the student is not independant, dependant status is calculated based on personal information answer inputs.\r\n  if (!isStudentIndependant) {\r\n    const isPersonalInfoAnswered =\r\n      !!data.hasDependents &&\r\n      !!data.relationshipStatus &&\r\n      !!data.outOfHighSchoolFor4Years &&\r\n      !!data.fulltimelabourForce &&\r\n      !!data.parentsDeceased &&\r\n      !!data.estranged &&\r\n      !!data.youthInCare &&\r\n      (data.youthInCare === \"no\" || !!data.custodyOfChildWelfare);\r\n    // If the answers to required personal information inputs are not provided, set the dependant status to null.\r\n    // Otherwise, dependant status is calculated based on personal information answers.\r\n    const calculatedStatusFromPersonalInfo = isPersonalInfoAnswered\r\n      ? \"dependant\"\r\n      : null;\r\n    instance.setValue(calculatedStatusFromPersonalInfo);\r\n  } else {\r\n    instance.setValue(\"independant\");\r\n  }\r\n}\r\n// If the intensity is not provided, set the value to null.\r\nelse {\r\n  instance.setValue(null);\r\n}\r\n",
path: sources/packages/forms/src/form-definitions/sfaa2025-26-ft.json
user: login: dheepak-aot
body: 👍
created_at: 2025-05-01T21:06:31Z
author_association: COLLABORATOR
diff_hunk: @@ -8247,10 +8253,716 @@
                 "eq": ""
               },
               "properties": {},
-              "tooltip": "Marital status is defined below. Please read the definitions carefully.  \n<strong>Single</strong>: If you are not married or in a common-law relationship  \n<strong>Married</strong>: If you are married as of the first day of classes  \n<strong>Common-Law</strong>: You and your partner are considered to be common-law if you meet both of the following:\n- you are currently living together in a marriage-like relationship; and\n- you will have been living together for at least 12 consecutive months before the first day of classes.  \n<strong>Separated/Divorced/Widowed</strong>: If you are separated, divorced or widowed before the first day of classes.",
+              "tooltip": "Marital status is defined below. Please read the definitions carefully.  \n<strong>Single</strong>: If you are not married or in a common-law relationship  \n<strong>Married</strong>: If you are married as of the first day of classes  \n<strong>Common-Law</strong>: You and your partner are considered to be common-law if you meet both of the following:\n- you are currently living together in a marriage-like relationship; and\n- you will have been living together for at least 12 consecutive months before the first day of classes.  \n<strong>Separated/Divorced/Widowed</strong>: If you are separated, divorced or widowed before the first day of classes.\n<strong>Married/common-law and unable to provide partner income due to domestic abuse</strong>: You would be considered married or common-law but are unable to provide partner income due to experiencing domestic abuse (intimate partner violence) which includes, but is not limited to physical, financial, emotional, and/or sexual abuse.",
               "errorLabel": "Relationship Status",
               "lockKey": true
             },
+            {
+              "clearOnHide": false,
+              "key": "marriedCommonLawDomesticViolenceExceptionConfirmPanel",
+              "input": false,
+              "title": "",
+              "theme": "default",
+              "tableView": false,
+              "components": [
+                {
+                  "key": "marriedCommonLawDomesticViolenceExceptionPanelContent",
+                  "label": "Content",
+                  "input": false,
+                  "tag": "div",
+                  "attrs": [
+                    {
+                      "value": "",
+                      "attr": ""
+                    }
+                  ],
+                  "className": "alert alert-warning fa fa-exclamation-triangle w-100",
+                  "content": "<strong> Please confirm that you match the criteria below and are eligible for this exception category.</strong>\n<br />\nYou are married or common-law and are unable to provide partner income due to experiencing domestic abuse (intimate partner violence) which includes, but is not limited to physical, financial, emotional, and/or sexual abuse.",
+                  "type": "htmlelement",
+                  "tags": [],
+                  "conditional": {
+                    "show": "",
+                    "when": null,
+                    "eq": ""
+                  },
+                  "properties": {},
+                  "hideLabel": true
+                },
+                {
+                  "label": "I confirm I am eligible for this exception category and understand that this process requires ministry review and will lead to delays in my funding.",
+                  "labelWidth": "",
+                  "labelMargin": "",
+                  "description": "",
+                  "tooltip": "",
+                  "shortcut": "",
+                  "inputType": "checkbox",
+                  "customClass": "formio-component-weight-bold",
+                  "tabindex": "",
+                  "hidden": false,
+                  "autofocus": false,
+                  "disabled": false,
+                  "tableView": true,
+                  "modalEdit": false,
+                  "defaultValue": "",
+                  "persistent": true,
+                  "protected": false,
+                  "dbIndex": false,
+                  "encrypted": false,
+                  "redrawOn": "",
+                  "clearOnHide": true,
+                  "customDefaultValue": "",
+                  "calculateValue": "",
+                  "calculateServer": false,
+                  "allowCalculateOverride": false,
+                  "validate": {
+                    "required": true,
+                    "customMessage": "You must confirm you understand the exception eligibility criteria.",
+                    "custom": "",
+                    "customPrivate": false,
+                    "json": "",
+                    "strictDateValidation": false,
+                    "multiple": false,
+                    "unique": false
+                  },
+                  "errorLabel": "",
+                  "errors": "",
+                  "key": "marriedUnableConfirmation",
+                  "tags": [],
+                  "properties": {},
+                  "conditional": {
+                    "show": "",
+                    "when": null,
+                    "eq": "",
+                    "json": ""
+                  },
+                  "customConditional": "",
+                  "logic": [],
+                  "attributes": {},
+                  "overlay": {
+                    "style": "",
+                    "page": "",
+                    "left": "",
+                    "top": "",
+                    "width": "",
+                    "height": ""
+                  },
+                  "type": "checkbox",
+                  "name": "",
+                  "value": "",
+                  "input": true,
+                  "dataGridLabel": false,
+                  "lockKey": true,
+                  "hideOnChildrenHidden": false,
+                  "placeholder": "",
+                  "prefix": "",
+                  "suffix": "",
+                  "multiple": false,
+                  "unique": false,
+                  "refreshOn": "",
+                  "labelPosition": "right",
+                  "widget": null,
+                  "validateOn": "change",
+                  "showCharCount": false,
+                  "showWordCount": false,
+                  "allowMultipleMasks": false,
+                  "addons": [],
+                  "id": "e2ll48j",
+                  "hideLabel": false
+                }
+              ],
+              "type": "panel",
+              "breadcrumb": "default",
+              "tags": [],
+              "conditional": {
+                "show": "true",
+                "when": "relationshipStatus",
+                "eq": "marriedUnable"
+              },
+              "properties": {},
+              "customClass": "alert-banner-container alert-banner-warning",
+              "lockKey": true,
+              "hideLabel": true
+            },
+            {
+              "title": "Married/Common-law domestic violence Exception",
+              "breadcrumbClickable": false,
+              "buttonSettings": {
+                "previous": false,
+                "cancel": false,
+                "next": false
+              },
+              "scrollToTop": false,
+              "collapsible": false,
+              "key": "marriedCommonLawDomesticViolenceExceptionPanel",
+              "conditional": {
+                "show": "true",
+                "when": "marriedUnableConfirmation",
+                "eq": "true"
+              },
+              "type": "panel",
+              "label": "Not a BC Resident Panel",
+              "input": false,
+              "tableView": false,
+              "components": [
+                {
+                  "label": "Application Exception - Married/Common-law domestic violence",
+                  "labelWidth": "",
+                  "labelMargin": "",
+                  "customClass": "",
+                  "modalEdit": false,
+                  "defaultValue": null,
+                  "persistent": true,
+                  "protected": false,
+                  "dbIndex": false,
+                  "encrypted": false,
+                  "redrawOn": "",
+                  "customDefaultValue": "",
+                  "calculateValue": "value = \"studentApplicationException\";",
+                  "calculateServer": true,
+                  "key": "marriedCommonLawDomesticViolenceApplicationException",
+                  "tags": [],
+                  "properties": {},
+                  "logic": [],
+                  "attributes": {},
+                  "overlay": {
+                    "style": "",
+                    "page": "",
+                    "left": "",
+                    "top": "",
+                    "width": "",
+                    "height": ""
+                  },
+                  "type": "hidden",
+                  "input": true,
+                  "tableView": false,
+                  "placeholder": "",
+                  "prefix": "",
+                  "suffix": "",
+                  "multiple": false,
+                  "unique": false,
+                  "hidden": false,
+                  "clearOnHide": true,
+                  "refreshOn": "",
+                  "dataGridLabel": false,
+                  "labelPosition": "top",
+                  "description": "",
+                  "errorLabel": "",
+                  "tooltip": "",
+                  "tabindex": "",
+                  "disabled": false,
+                  "autofocus": false,
+                  "widget": {
+                    "type": "input"
+                  },
+                  "validateOn": "change",
+                  "validate": {
+                    "required": false,
+                    "custom": "",
+                    "customPrivate": false,
+                    "strictDateValidation": false,
+                    "multiple": false,
+                    "unique": false
+                  },
+                  "conditional": {
+                    "show": "",
+                    "when": null,
+                    "eq": ""
+                  },
+                  "allowCalculateOverride": false,
+                  "showCharCount": false,
+                  "showWordCount": false,
+                  "allowMultipleMasks": false,
+                  "addons": [],
+                  "inputType": "hidden",
+                  "id": "ed8czgf",
+                  "lockKey": true
+                },
+                {
+                  "title": "Upload supporting documents",
+                  "labelWidth": "",
+                  "labelMargin": "",
+                  "theme": "default",
+                  "tooltip": "",
+                  "customClass": "formio-panel-unset",
+                  "collapsible": false,
+                  "hidden": false,
+                  "disabled": false,
+                  "modalEdit": false,
+                  "key": "marriedCommonLawDomesticViolenceExceptionSupportingDocumentsPanel",
+                  "tags": [],
+                  "properties": {},
+                  "customConditional": "",
+                  "conditional": {
+                    "json": "",
+                    "show": "",
+                    "when": null,
+                    "eq": ""
+                  },
+                  "logic": [],
+                  "attributes": {},
+                  "overlay": {
+                    "style": "",
+                    "page": "",
+                    "left": "",
+                    "top": "",
+                    "width": "",
+                    "height": ""
+                  },
+                  "type": "panel",
+                  "label": "Upload supporting documents",
+                  "breadcrumb": "default",
path: sources/packages/forms/src/form-definitions/sfaa2025-26-ft.json
user: login: sh16011993
body: Do we need `breadcrumb` here? Same for line 8374.
created_at: 2025-05-01T21:43:52Z
author_association: COLLABORATOR
diff_hunk: @@ -799,3 +842,17 @@ td .formio-custom-tooltip:hover .tooltip-text {
 .grid-row-indentation-first-level {
   margin-left: 1rem;
 }
+
+/**
+* Align the container children to the left and to the right
+* to have the allowed files aligned to the left and
+* file size aligned to the right.
+*/
+.file-upload-info-container {
+  display: flex;
+  justify-content: space-between;
+}
+
+.formio-component-weight-bold > div:first-child {
+  font-weight: $font-weight-bold;
+}
path: sources/packages/web/src/assets/css/formio-shared.scss
user: login: dheepak-aot
body: What is the purpose of this particular css?
created_at: 2025-05-01T21:57:27Z
author_association: COLLABORATOR
diff_hunk: @@ -457,6 +499,7 @@
 
 .form-check-input {
   position: inherit;
+  vertical-align: top;
path: sources/packages/web/src/assets/css/formio-shared.scss
user: login: dheepak-aot
body: 👍
created_at: 2025-05-01T21:57:44Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,19 @@
+-- Recreate the enums types when the new item must be added.
+CREATE TYPE sims.relationship_status_to_be_updated AS ENUM (
+  'married',
+  'single',
+  'other',
+  'marriedUnable'
path: sources/packages/backend/apps/db-migrations/src/sql/Types/Add-relationship-status-married-unable.sql
user: login: andrewsignori-aot
body: In general, we do not use dropdown values with white spaces, doing this for these seems against what we did for others.
Business can have an opinion about how it can potentially be displayed to the user, but how we persist will be a technical decision.
My understanding on the "provided AC value" was a suggestion on how to shorten the pretty long option.


created_at: 2025-05-01T22:02:27Z
author_association: COLLABORATOR
diff_hunk: @@ -8247,10 +8253,716 @@
                 "eq": ""
               },
               "properties": {},
-              "tooltip": "Marital status is defined below. Please read the definitions carefully.  \n<strong>Single</strong>: If you are not married or in a common-law relationship  \n<strong>Married</strong>: If you are married as of the first day of classes  \n<strong>Common-Law</strong>: You and your partner are considered to be common-law if you meet both of the following:\n- you are currently living together in a marriage-like relationship; and\n- you will have been living together for at least 12 consecutive months before the first day of classes.  \n<strong>Separated/Divorced/Widowed</strong>: If you are separated, divorced or widowed before the first day of classes.",
+              "tooltip": "Marital status is defined below. Please read the definitions carefully.  \n<strong>Single</strong>: If you are not married or in a common-law relationship  \n<strong>Married</strong>: If you are married as of the first day of classes  \n<strong>Common-Law</strong>: You and your partner are considered to be common-law if you meet both of the following:\n- you are currently living together in a marriage-like relationship; and\n- you will have been living together for at least 12 consecutive months before the first day of classes.  \n<strong>Separated/Divorced/Widowed</strong>: If you are separated, divorced or widowed before the first day of classes.\n<strong>Married/common-law and unable to provide partner income due to domestic abuse</strong>: You would be considered married or common-law but are unable to provide partner income due to experiencing domestic abuse (intimate partner violence) which includes, but is not limited to physical, financial, emotional, and/or sexual abuse.",
               "errorLabel": "Relationship Status",
               "lockKey": true
             },
+            {
+              "clearOnHide": false,
+              "key": "marriedCommonLawDomesticViolenceExceptionConfirmPanel",
+              "input": false,
+              "title": "",
+              "theme": "default",
+              "tableView": false,
+              "components": [
+                {
+                  "key": "marriedCommonLawDomesticViolenceExceptionPanelContent",
+                  "label": "Content",
+                  "input": false,
+                  "tag": "div",
+                  "attrs": [
+                    {
+                      "value": "",
+                      "attr": ""
+                    }
+                  ],
+                  "className": "alert alert-warning fa fa-exclamation-triangle w-100",
+                  "content": "<strong> Please confirm that you match the criteria below and are eligible for this exception category.</strong>\n<br />\nYou are married or common-law and are unable to provide partner income due to experiencing domestic abuse (intimate partner violence) which includes, but is not limited to physical, financial, emotional, and/or sexual abuse.",
+                  "type": "htmlelement",
+                  "tags": [],
+                  "conditional": {
+                    "show": "",
+                    "when": null,
+                    "eq": ""
+                  },
+                  "properties": {},
+                  "hideLabel": true
+                },
+                {
+                  "label": "I confirm I am eligible for this exception category and understand that this process requires ministry review and will lead to delays in my funding.",
+                  "labelWidth": "",
+                  "labelMargin": "",
+                  "description": "",
+                  "tooltip": "",
+                  "shortcut": "",
+                  "inputType": "checkbox",
+                  "customClass": "formio-component-weight-bold",
+                  "tabindex": "",
+                  "hidden": false,
+                  "autofocus": false,
+                  "disabled": false,
+                  "tableView": true,
+                  "modalEdit": false,
+                  "defaultValue": "",
+                  "persistent": true,
+                  "protected": false,
+                  "dbIndex": false,
+                  "encrypted": false,
+                  "redrawOn": "",
+                  "clearOnHide": true,
+                  "customDefaultValue": "",
+                  "calculateValue": "",
+                  "calculateServer": false,
+                  "allowCalculateOverride": false,
+                  "validate": {
+                    "required": true,
+                    "customMessage": "You must confirm you understand the exception eligibility criteria.",
+                    "custom": "",
+                    "customPrivate": false,
+                    "json": "",
+                    "strictDateValidation": false,
+                    "multiple": false,
+                    "unique": false
+                  },
+                  "errorLabel": "",
+                  "errors": "",
+                  "key": "marriedUnableConfirmation",
+                  "tags": [],
+                  "properties": {},
+                  "conditional": {
+                    "show": "",
+                    "when": null,
+                    "eq": "",
+                    "json": ""
+                  },
+                  "customConditional": "",
+                  "logic": [],
+                  "attributes": {},
+                  "overlay": {
+                    "style": "",
+                    "page": "",
+                    "left": "",
+                    "top": "",
+                    "width": "",
+                    "height": ""
+                  },
+                  "type": "checkbox",
+                  "name": "",
+                  "value": "",
+                  "input": true,
+                  "dataGridLabel": false,
+                  "lockKey": true,
+                  "hideOnChildrenHidden": false,
+                  "placeholder": "",
+                  "prefix": "",
+                  "suffix": "",
+                  "multiple": false,
+                  "unique": false,
+                  "refreshOn": "",
+                  "labelPosition": "right",
+                  "widget": null,
+                  "validateOn": "change",
+                  "showCharCount": false,
+                  "showWordCount": false,
+                  "allowMultipleMasks": false,
+                  "addons": [],
+                  "id": "e2ll48j",
+                  "hideLabel": false
+                }
+              ],
+              "type": "panel",
+              "breadcrumb": "default",
+              "tags": [],
+              "conditional": {
+                "show": "true",
+                "when": "relationshipStatus",
+                "eq": "marriedUnable"
+              },
+              "properties": {},
+              "customClass": "alert-banner-container alert-banner-warning",
+              "lockKey": true,
+              "hideLabel": true
+            },
+            {
+              "title": "Married/Common-law domestic violence Exception",
+              "breadcrumbClickable": false,
+              "buttonSettings": {
+                "previous": false,
+                "cancel": false,
+                "next": false
+              },
+              "scrollToTop": false,
+              "collapsible": false,
+              "key": "marriedCommonLawDomesticViolenceExceptionPanel",
+              "conditional": {
+                "show": "true",
+                "when": "marriedUnableConfirmation",
+                "eq": "true"
+              },
+              "type": "panel",
+              "label": "Not a BC Resident Panel",
+              "input": false,
+              "tableView": false,
+              "components": [
+                {
+                  "label": "Application Exception - Married/Common-law domestic violence",
+                  "labelWidth": "",
+                  "labelMargin": "",
+                  "customClass": "",
+                  "modalEdit": false,
+                  "defaultValue": null,
+                  "persistent": true,
+                  "protected": false,
+                  "dbIndex": false,
+                  "encrypted": false,
+                  "redrawOn": "",
+                  "customDefaultValue": "",
+                  "calculateValue": "value = \"studentApplicationException\";",
+                  "calculateServer": true,
+                  "key": "marriedCommonLawDomesticViolenceApplicationException",
+                  "tags": [],
+                  "properties": {},
+                  "logic": [],
+                  "attributes": {},
+                  "overlay": {
+                    "style": "",
+                    "page": "",
+                    "left": "",
+                    "top": "",
+                    "width": "",
+                    "height": ""
+                  },
+                  "type": "hidden",
+                  "input": true,
+                  "tableView": false,
+                  "placeholder": "",
+                  "prefix": "",
+                  "suffix": "",
+                  "multiple": false,
+                  "unique": false,
+                  "hidden": false,
+                  "clearOnHide": true,
+                  "refreshOn": "",
+                  "dataGridLabel": false,
+                  "labelPosition": "top",
+                  "description": "",
+                  "errorLabel": "",
+                  "tooltip": "",
+                  "tabindex": "",
+                  "disabled": false,
+                  "autofocus": false,
+                  "widget": {
+                    "type": "input"
+                  },
+                  "validateOn": "change",
+                  "validate": {
+                    "required": false,
+                    "custom": "",
+                    "customPrivate": false,
+                    "strictDateValidation": false,
+                    "multiple": false,
+                    "unique": false
+                  },
+                  "conditional": {
+                    "show": "",
+                    "when": null,
+                    "eq": ""
+                  },
+                  "allowCalculateOverride": false,
+                  "showCharCount": false,
+                  "showWordCount": false,
+                  "allowMultipleMasks": false,
+                  "addons": [],
+                  "inputType": "hidden",
+                  "id": "ed8czgf",
+                  "lockKey": true
+                },
+                {
+                  "title": "Upload supporting documents",
+                  "labelWidth": "",
+                  "labelMargin": "",
+                  "theme": "default",
+                  "tooltip": "",
+                  "customClass": "formio-panel-unset",
+                  "collapsible": false,
+                  "hidden": false,
+                  "disabled": false,
+                  "modalEdit": false,
+                  "key": "marriedCommonLawDomesticViolenceExceptionSupportingDocumentsPanel",
+                  "tags": [],
+                  "properties": {},
+                  "customConditional": "",
+                  "conditional": {
+                    "json": "",
+                    "show": "",
+                    "when": null,
+                    "eq": ""
+                  },
+                  "logic": [],
+                  "attributes": {},
+                  "overlay": {
+                    "style": "",
+                    "page": "",
+                    "left": "",
+                    "top": "",
+                    "width": "",
+                    "height": ""
+                  },
+                  "type": "panel",
+                  "label": "Upload supporting documents",
+                  "breadcrumb": "default",
path: sources/packages/forms/src/form-definitions/sfaa2025-26-ft.json
user: login: andrewsignori-aot
body: By default, from the editor, changing it would just make the editor put it back on the next form edit.
created_at: 2025-05-01T22:03:53Z
author_association: COLLABORATOR
diff_hunk: @@ -799,3 +842,17 @@ td .formio-custom-tooltip:hover .tooltip-text {
 .grid-row-indentation-first-level {
   margin-left: 1rem;
 }
+
+/**
+* Align the container children to the left and to the right
+* to have the allowed files aligned to the left and
+* file size aligned to the right.
+*/
+.file-upload-info-container {
+  display: flex;
+  justify-content: space-between;
+}
+
+.formio-component-weight-bold > div:first-child {
+  font-weight: $font-weight-bold;
+}
path: sources/packages/web/src/assets/css/formio-shared.scss
user: login: andrewsignori-aot
body: Apply a bold text to a component without interfering with other component items, for instance, error validators.
created_at: 2025-05-01T22:04:49Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,21 @@
+import { MigrationInterface, QueryRunner } from "typeorm";
+import { getSQLFileData } from "../utilities/sqlLoader";
+
+export class AddRelationshipStatusMarriedUnable1745962287131
+  implements MigrationInterface
+{
+  public async up(queryRunner: QueryRunner): Promise<void> {
path: sources/packages/backend/apps/db-migrations/src/migrations/1745962287131-AddRelationshipStatusMarriedUnable.ts
user: login: andrewsignori-aot
body: Added.
created_at: 2025-05-01T22:11:31Z
author_association: COLLABORATOR
diff_hunk: @@ -799,3 +842,17 @@ td .formio-custom-tooltip:hover .tooltip-text {
 .grid-row-indentation-first-level {
   margin-left: 1rem;
 }
+
+/**
+* Align the container children to the left and to the right
+* to have the allowed files aligned to the left and
+* file size aligned to the right.
+*/
+.file-upload-info-container {
+  display: flex;
+  justify-content: space-between;
+}
+
+.formio-component-weight-bold > div:first-child {
+  font-weight: $font-weight-bold;
+}
path: sources/packages/web/src/assets/css/formio-shared.scss
user: login: andrewsignori-aot
body: I will add a comment.
created_at: 2025-05-01T22:13:26Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,19 @@
+-- Recreate the enums types when the new item must be added.
+CREATE TYPE sims.relationship_status_to_be_updated AS ENUM (
+  'married',
+  'single',
+  'other',
+  'marriedUnable'
path: sources/packages/backend/apps/db-migrations/src/sql/Types/Add-relationship-status-married-unable.sql
user: login: dheepak-aot
body: I asked the same as this information goes raw to SDPR response as well. 

Also there is an IER flag hasPartner which is based on marital status. Does it need to be taken care later? or should we follow the same path like other integrations here?
https://github.com/bcgov/SIMS/blob/b73b4244894e1f5086c47e60f391c204d9df83fc/sources/packages/backend/libs/integrations/src/institution-integration/ier12-integration/ier12.processing.service.ts#L207
created_at: 2025-05-01T22:16:08Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,19 @@
+-- Recreate the enums types when the new item must be added.
+CREATE TYPE sims.relationship_status_to_be_updated AS ENUM (
+  'married',
+  'single',
+  'other',
+  'marriedUnable'
path: sources/packages/backend/apps/db-migrations/src/sql/Types/Add-relationship-status-married-unable.sql
user: login: andrewsignori-aot
body: It does not seem to be in the scope or planned for this ticket, but it would be worth asking.
created_at: 2025-05-01T22:41:22Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,19 @@
+-- Recreate the enums types when the new item must be added.
+CREATE TYPE sims.relationship_status_to_be_updated AS ENUM (
+  'married',
+  'single',
+  'other',
+  'marriedUnable'
path: sources/packages/backend/apps/db-migrations/src/sql/Types/Add-relationship-status-married-unable.sql
user: login: andrewsignori-aot
body: Business updated the AC to state: `marriedUnable`.
created_at: 2025-05-01T22:58:28Z
author_association: COLLABORATOR
diff_hunk: @@ -9,15 +9,20 @@ export function getOfferingIntensityCode(offeringIntensity: string): string {
 }
 
 /**
- * Gets the marital status code conversion for the MSFAA request file
+ * Gets the marital status code conversion for the MSFAA request file.
  */
 export function getMaritalStatusCode(
   maritalStatus: RelationshipStatus,
 ): string {
-  if (maritalStatus === RelationshipStatus.Married) {
-    return "M";
+  switch (maritalStatus) {
+    case RelationshipStatus.Single:
+      return "S";
+    case RelationshipStatus.Married:
path: sources/packages/backend/libs/utilities/src/esdc-utils.ts
user: login: Copilot
body: Add a comment clarifying why 'Married' and 'MarriedUnable' share the same conversion code in MSFAA request processing.
```suggestion
    case RelationshipStatus.Married:
      // Both "Married" and "MarriedUnable" are treated as "M" (Married) for MSFAA request processing
```
created_at: 2025-05-01T22:59:56Z
author_association: CONTRIBUTOR
diff_hunk: @@ -54,10 +59,15 @@ export function getFormattedPhone(phone: string): string {
 export function getPartTimeMaritalStatusCode(
   maritalStatus: RelationshipStatus,
 ): string {
-  if (maritalStatus === RelationshipStatus.Married) {
-    return "MA";
+  switch (maritalStatus) {
+    case RelationshipStatus.Single:
+      return "SI";
path: sources/packages/backend/libs/utilities/src/esdc-utils.ts
user: login: Copilot
body: Include a clarifying note on the Part-Time marital status conversion to explain why 'Married' and 'MarriedUnable' are treated equivalently.
```suggestion
      return "SI";
    // Treating both Married and MarriedUnable as equivalent for Part-Time marital status
    // because they are considered functionally the same in the context of MSFAA processing.
```
created_at: 2025-05-01T22:59:56Z
author_association: CONTRIBUTOR

PR comments:
user: login: dheepak-aot
created_at: 2025-05-01T22:01:45Z
body: Great Job! One minor comment and a clarification.
author_association: COLLABORATOR
user: login: sonarqubecloud[bot]
created_at: 2025-05-01T23:32:49Z
body: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=bcgov_SIMS&pullRequest=4651) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=bcgov_SIMS&pullRequest=4651&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=bcgov_SIMS&pullRequest=4651&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=bcgov_SIMS&pullRequest=4651&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=bcgov_SIMS&pullRequest=4651&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=bcgov_SIMS&pullRequest=4651&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=bcgov_SIMS&pullRequest=4651)


author_association: NONE
user: login: github-actions[bot]
created_at: 2025-05-01T23:33:15Z
body: <!-- coverage-monitor-action: Backend Unit Tests Coverage Report -->
## Backend Unit Tests Coverage Report

|  Totals | ![Coverage](https://img.shields.io/static/v1?label=coverage&message=25%&color=yellow) |
| :-- | :-- |
| Statements: | 21.83% ( 4015 / 18390 ) |
| Methods: | 9.91% ( 233 / 2352 ) |
| Lines: | 25.2% ( 3470 / 13771 ) |
| Branches: | 13.76% ( 312 / 2267 ) |

author_association: NONE
user: login: github-actions[bot]
created_at: 2025-05-01T23:33:33Z
body: <!-- coverage-monitor-action: E2E Workflow Workers Coverage Report -->
## E2E Workflow Workers Coverage Report

|  Totals | ![Coverage](https://img.shields.io/static/v1?label=coverage&message=75%&color=green) |
| :-- | :-- |
| Statements: | 72.47% ( 679 / 937 ) |
| Methods: | 73.45% ( 83 / 113 ) |
| Lines: | 74.58% ( 531 / 712 ) |
| Branches: | 58.04% ( 65 / 112 ) |

author_association: NONE
user: login: github-actions[bot]
created_at: 2025-05-01T23:36:10Z
body: <!-- coverage-monitor-action: E2E Queue Consumers Coverage Report -->
## E2E Queue Consumers Coverage Report

|  Totals | ![Coverage](https://img.shields.io/static/v1?label=coverage&message=88%&color=green) |
| :-- | :-- |
| Statements: | 85.75% ( 1511 / 1762 ) |
| Methods: | 83.41% ( 171 / 205 ) |
| Lines: | 88.12% ( 1246 / 1414 ) |
| Branches: | 65.73% ( 94 / 143 ) |

author_association: NONE
user: login: github-actions[bot]
created_at: 2025-05-01T23:36:45Z
body: <!-- coverage-monitor-action: E2E SIMS API Coverage Report -->
## E2E SIMS API Coverage Report

|  Totals | ![Coverage](https://img.shields.io/static/v1?label=coverage&message=75%&color=green) |
| :-- | :-- |
| Statements: | 71.28% ( 6772 / 9500 ) |
| Methods: | 69.45% ( 839 / 1208 ) |
| Lines: | 74.75% ( 5252 / 7026 ) |
| Branches: | 53.79% ( 681 / 1266 ) |

author_association: NONE