@forwardslashns/taskit-validation-messages 1.0.64 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +1 -0
- package/PUBLISHING.md +78 -0
- package/README.md +59 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/validation/features/account-category.validation-messages.d.ts +21 -0
- package/dist/validation/features/account-category.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/account-category.validation-messages.js +23 -0
- package/dist/validation/features/account-id.validation-messages.d.ts +26 -0
- package/dist/validation/features/account-id.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/account-id.validation-messages.js +28 -0
- package/dist/validation/features/address.validation-messages.d.ts +62 -0
- package/dist/validation/features/address.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/address.validation-messages.js +64 -0
- package/dist/validation/features/bank-and-credit-card.validation-messages.d.ts +19 -0
- package/dist/validation/features/bank-and-credit-card.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/bank-and-credit-card.validation-messages.js +21 -0
- package/dist/validation/features/bank.validation-messages.d.ts +7 -0
- package/dist/validation/features/bank.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/bank.validation-messages.js +9 -0
- package/dist/validation/features/business-activity.validation-messages.d.ts +21 -0
- package/dist/validation/features/business-activity.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/business-activity.validation-messages.js +23 -0
- package/dist/validation/features/client-relationship.validation-messages.d.ts +63 -0
- package/dist/validation/features/client-relationship.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/client-relationship.validation-messages.js +65 -0
- package/dist/validation/features/client.validation-messages.d.ts +387 -0
- package/dist/validation/features/client.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/client.validation-messages.js +389 -0
- package/dist/validation/features/commission-detail.validation-messages.d.ts +24 -0
- package/dist/validation/features/commission-detail.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/commission-detail.validation-messages.js +26 -0
- package/dist/validation/features/contact.validation-messages.d.ts +37 -0
- package/dist/validation/features/contact.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/contact.validation-messages.js +39 -0
- package/dist/validation/features/credit-card.validation-messages.d.ts +11 -0
- package/dist/validation/features/credit-card.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/credit-card.validation-messages.js +13 -0
- package/dist/validation/features/data-filter.validation-messages.d.ts +19 -0
- package/dist/validation/features/data-filter.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/data-filter.validation-messages.js +21 -0
- package/dist/validation/features/filing-category.validation-messages.d.ts +21 -0
- package/dist/validation/features/filing-category.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/filing-category.validation-messages.js +23 -0
- package/dist/validation/features/outside-provider.validation-messages.d.ts +13 -0
- package/dist/validation/features/outside-provider.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/outside-provider.validation-messages.js +15 -0
- package/dist/validation/features/role-and-permission.validation-messages.d.ts +32 -0
- package/dist/validation/features/role-and-permission.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/role-and-permission.validation-messages.js +34 -0
- package/dist/validation/features/state.validation-messages.d.ts +49 -0
- package/dist/validation/features/state.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/state.validation-messages.js +51 -0
- package/dist/validation/features/user-preference.validation-messages.d.ts +20 -0
- package/dist/validation/features/user-preference.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/user-preference.validation-messages.js +22 -0
- package/dist/validation/features/user.validation-messages.d.ts +48 -0
- package/dist/validation/features/user.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/user.validation-messages.js +50 -0
- package/dist/validation/validation-message.formatter.d.ts +5 -1
- package/dist/validation/validation-message.formatter.d.ts.map +1 -1
- package/dist/validation/validation-message.formatter.js +4 -1
- package/dist/validation/validation-messages.d.ts +183 -1
- package/dist/validation/validation-messages.d.ts.map +1 -1
- package/dist/validation/validation-messages.js +36 -684
- package/package.json +8 -8
- package/publish.ps1 +37 -0
- package/src/index.ts +2 -2
- package/src/validation/features/account-category.validation-messages.ts +20 -0
- package/src/validation/features/account-id.validation-messages.ts +25 -0
- package/src/validation/features/address.validation-messages.ts +61 -0
- package/src/validation/features/bank-and-credit-card.validation-messages.ts +20 -0
- package/src/validation/features/bank.validation-messages.ts +6 -0
- package/src/validation/features/business-activity.validation-messages.ts +20 -0
- package/src/validation/features/client-relationship.validation-messages.ts +62 -0
- package/src/validation/features/client.validation-messages.ts +386 -0
- package/src/validation/features/commission-detail.validation-messages.ts +23 -0
- package/src/validation/features/contact.validation-messages.ts +36 -0
- package/src/validation/features/credit-card.validation-messages.ts +10 -0
- package/src/validation/features/data-filter.validation-messages.ts +18 -0
- package/src/validation/features/filing-category.validation-messages.ts +20 -0
- package/src/validation/features/outside-provider.validation-messages.ts +12 -0
- package/src/validation/features/role-and-permission.validation-messages.ts +31 -0
- package/src/validation/features/state.validation-messages.ts +48 -0
- package/src/validation/features/user-preference.validation-messages.ts +19 -0
- package/src/validation/features/user.validation-messages.ts +47 -0
- package/src/validation/validation-message.formatter.ts +11 -2
- package/src/validation/validation-messages.ts +37 -686
package/package.json
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forwardslashns/taskit-validation-messages",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"type": "commonjs",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"build": "rimraf ./dist && tsc",
|
|
9
|
-
"prepublishOnly": "npm run build",
|
|
10
|
-
"format:fix": "prettier --write --ignore-path .gitignore ."
|
|
11
|
-
},
|
|
12
7
|
"engines": {
|
|
13
8
|
"node": ">=22.0.0"
|
|
14
9
|
},
|
|
@@ -31,5 +26,10 @@
|
|
|
31
26
|
"bugs": {
|
|
32
27
|
"url": "https://github.com/fws-solutions/taskit-validation-messages/issues"
|
|
33
28
|
},
|
|
34
|
-
"homepage": "https://github.com/fws-solutions/taskit-validation-messages#readme"
|
|
35
|
-
|
|
29
|
+
"homepage": "https://github.com/fws-solutions/taskit-validation-messages#readme",
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "rimraf ./dist && tsc",
|
|
32
|
+
"format:fix": "prettier --write --ignore-path .gitignore .",
|
|
33
|
+
"publish:token": "powershell -ExecutionPolicy Bypass -File ./publish.ps1"
|
|
34
|
+
}
|
|
35
|
+
}
|
package/publish.ps1
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Load environment variables from .env file
|
|
2
|
+
if (Test-Path .env) {
|
|
3
|
+
Get-Content .env | ForEach-Object {
|
|
4
|
+
if ($_ -match '^([^=]+)=(.*)$') {
|
|
5
|
+
$key = $matches[1].Trim()
|
|
6
|
+
$value = $matches[2].Trim()
|
|
7
|
+
Set-Item -Path "env:$key" -Value $value
|
|
8
|
+
Write-Host "Loaded $key from .env"
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
} else {
|
|
12
|
+
Write-Host "Error: .env file not found. Copy .env.example to .env and add your NPM_TOKEN" -ForegroundColor Red
|
|
13
|
+
exit 1
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
# Verify NPM_TOKEN is set
|
|
17
|
+
if (-not $env:NPM_TOKEN) {
|
|
18
|
+
Write-Host "Error: NPM_TOKEN not set in .env file" -ForegroundColor Red
|
|
19
|
+
exit 1
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
Write-Host "NPM_TOKEN loaded (length: $($env:NPM_TOKEN.Length) chars)" -ForegroundColor Cyan
|
|
23
|
+
|
|
24
|
+
# Backup original .npmrc
|
|
25
|
+
Copy-Item .npmrc .npmrc.backup -Force
|
|
26
|
+
|
|
27
|
+
# Replace ${NPM_TOKEN} with actual token in .npmrc
|
|
28
|
+
$npmrcContent = Get-Content .npmrc -Raw
|
|
29
|
+
$npmrcContent = $npmrcContent -replace '\$\{NPM_TOKEN\}', $env:NPM_TOKEN
|
|
30
|
+
Set-Content .npmrc $npmrcContent
|
|
31
|
+
|
|
32
|
+
Write-Host "Publishing package from current branch..." -ForegroundColor Green
|
|
33
|
+
pnpm publish --no-git-checks
|
|
34
|
+
|
|
35
|
+
# Restore original .npmrc
|
|
36
|
+
Move-Item .npmrc.backup .npmrc -Force
|
|
37
|
+
Write-Host "Restored .npmrc" -ForegroundColor Cyan
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getValidationMessage } from './validation/validation-message.formatter';
|
|
1
|
+
import { getValidationMessage, ValidationMessageResult } from './validation/validation-message.formatter';
|
|
2
2
|
import { VALIDATION_MESSAGES } from './validation/validation-messages';
|
|
3
3
|
|
|
4
|
-
export { VALIDATION_MESSAGES, getValidationMessage };
|
|
4
|
+
export { VALIDATION_MESSAGES, getValidationMessage, ValidationMessageResult };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const ACCOUNT_CATEGORY = {
|
|
2
|
+
INVALID_REQUEST: {
|
|
3
|
+
message: 'Missing account category id in request',
|
|
4
|
+
affectedFields: [],
|
|
5
|
+
},
|
|
6
|
+
ID_DOES_NOT_EXIST: {
|
|
7
|
+
message: `Account category with id '{id}' does not exist`,
|
|
8
|
+
params: ['id'],
|
|
9
|
+
affectedFields: ['accountCategoryId'],
|
|
10
|
+
},
|
|
11
|
+
NAME_ALREADY_EXISTS: {
|
|
12
|
+
message: `Account category with the same name '{name}' already exists`,
|
|
13
|
+
params: ['name'],
|
|
14
|
+
affectedFields: ['name'],
|
|
15
|
+
},
|
|
16
|
+
OPTION_IN_USE: {
|
|
17
|
+
message: `This option is currently in use and cannot be deleted.`,
|
|
18
|
+
affectedFields: [],
|
|
19
|
+
},
|
|
20
|
+
} as const;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export const ACCOUNT_ID = {
|
|
2
|
+
INVALID_REQUEST: {
|
|
3
|
+
message: 'Missing account id identifier in request',
|
|
4
|
+
affectedFields: [],
|
|
5
|
+
},
|
|
6
|
+
ID_DOES_NOT_EXIST: {
|
|
7
|
+
message: `Account id with id '{id}' does not exist`,
|
|
8
|
+
params: ['id'],
|
|
9
|
+
affectedFields: ['accountId'],
|
|
10
|
+
},
|
|
11
|
+
NAME_ALREADY_EXISTS: {
|
|
12
|
+
message: `Account id with the same name '{name}' already exists`,
|
|
13
|
+
params: ['name'],
|
|
14
|
+
affectedFields: ['name'],
|
|
15
|
+
},
|
|
16
|
+
ACCOUNT_CATEGORY_ID_DOES_NOT_EXIST: {
|
|
17
|
+
message: `Account category with id '{id}' does not exist`,
|
|
18
|
+
params: ['id'],
|
|
19
|
+
affectedFields: ['accountCategoryId'],
|
|
20
|
+
},
|
|
21
|
+
OPTION_IN_USE: {
|
|
22
|
+
message: `This option is currently in use and cannot be deleted.`,
|
|
23
|
+
affectedFields: [],
|
|
24
|
+
},
|
|
25
|
+
} as const;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export const ADDRESS = {
|
|
2
|
+
STATES_NOT_FOUND: {
|
|
3
|
+
message: 'States with ids {ids} do not exist',
|
|
4
|
+
params: ['ids'],
|
|
5
|
+
affectedFields: ['stateId'],
|
|
6
|
+
},
|
|
7
|
+
INVALID_STATE_TYPE: {
|
|
8
|
+
message: `States with ids {ids} are not of type 'State'`,
|
|
9
|
+
params: ['ids'],
|
|
10
|
+
affectedFields: ['stateId'],
|
|
11
|
+
},
|
|
12
|
+
CITIES_NOT_FOUND: {
|
|
13
|
+
message: `Cities with ids {ids} do not exist`,
|
|
14
|
+
params: ['ids'],
|
|
15
|
+
affectedFields: ['cityId'],
|
|
16
|
+
},
|
|
17
|
+
INVALID_CITY_TYPE: {
|
|
18
|
+
message: `Cities with ids {ids} are not of type 'City'`,
|
|
19
|
+
params: ['ids'],
|
|
20
|
+
affectedFields: ['cityId'],
|
|
21
|
+
},
|
|
22
|
+
ZIP_CODES_NOT_FOUND: {
|
|
23
|
+
message: `Zip codes with ids {ids} do not exist`,
|
|
24
|
+
params: ['ids'],
|
|
25
|
+
affectedFields: ['zipCode'],
|
|
26
|
+
},
|
|
27
|
+
CONTACT_ROLES_NOT_FOUND: {
|
|
28
|
+
message: `Contact roles with ids {ids} do not exist`,
|
|
29
|
+
params: ['ids'],
|
|
30
|
+
affectedFields: ['contactRoleId'],
|
|
31
|
+
},
|
|
32
|
+
CONTACT_TYPES_NOT_FOUND: {
|
|
33
|
+
message: `Contact types with ids {ids} do not exist`,
|
|
34
|
+
params: ['ids'],
|
|
35
|
+
affectedFields: ['contactTypeId'],
|
|
36
|
+
},
|
|
37
|
+
LEGAL_ADDRESS_MUST_BE_PROVIDED: {
|
|
38
|
+
message: `The client must have a legal address. Please set the address type to 'Legal'.`,
|
|
39
|
+
affectedFields: ['addresses'],
|
|
40
|
+
},
|
|
41
|
+
MULTIPLE_LEGAL_ADDRESSES_PROVIDED: {
|
|
42
|
+
message: `The client must have only one legal address. Please ensure only one address is set to 'Legal'.`,
|
|
43
|
+
affectedFields: ['addresses'],
|
|
44
|
+
},
|
|
45
|
+
BILLING_ADDRESS_MUST_BE_PROVIDED: {
|
|
46
|
+
message: `The client must have a billing address. Please set the address type to 'Billing'.`,
|
|
47
|
+
affectedFields: ['addresses'],
|
|
48
|
+
},
|
|
49
|
+
MULTIPLE_BILLING_ADDRESSES_PROVIDED: {
|
|
50
|
+
message: `The client must have only one billing address. Please ensure only one address is set to 'Billing'.`,
|
|
51
|
+
affectedFields: ['addresses'],
|
|
52
|
+
},
|
|
53
|
+
PRIMARY_ADDRESS_MUST_BE_PROVIDED: {
|
|
54
|
+
message: `The client must have a primary address. Please set the address type to 'Primary'.`,
|
|
55
|
+
affectedFields: ['addresses'],
|
|
56
|
+
},
|
|
57
|
+
MULTIPLE_PRIMARY_ADDRESSES_PROVIDED: {
|
|
58
|
+
message: `The client must have only one primary address. Please ensure only one address is set to 'Primary'.`,
|
|
59
|
+
affectedFields: ['addresses'],
|
|
60
|
+
},
|
|
61
|
+
} as const;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const BANK_AND_CREDIT_CARD = {
|
|
2
|
+
INVALID_ACCOUNT_NUMBER: {
|
|
3
|
+
message: 'Enter a valid account number.',
|
|
4
|
+
affectedFields: ['accountNumber'],
|
|
5
|
+
},
|
|
6
|
+
INVALID_DESCRIPTION: {
|
|
7
|
+
message:
|
|
8
|
+
'There is another payment method with the same description. Please ensure all payment methods have different descriptions.',
|
|
9
|
+
affectedFields: ['description'],
|
|
10
|
+
},
|
|
11
|
+
NO_DEFAULT_PAYMENT_METHOD: {
|
|
12
|
+
message: 'There must be at least one payment method marked as default. Please select a default payment method.',
|
|
13
|
+
affectedFields: ['paymentMethods'],
|
|
14
|
+
},
|
|
15
|
+
MULTIPLE_DEFAULT_PAYMENT_METHODS: {
|
|
16
|
+
message:
|
|
17
|
+
'There can only be one default payment method. Please ensure only one payment method is marked as default.',
|
|
18
|
+
affectedFields: ['paymentMethods'],
|
|
19
|
+
},
|
|
20
|
+
} as const;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const BUSINESS_ACTIVITY = {
|
|
2
|
+
INVALID_REQUEST: {
|
|
3
|
+
message: 'Missing business activity id in request.',
|
|
4
|
+
affectedFields: [],
|
|
5
|
+
},
|
|
6
|
+
ID_DOES_NOT_EXIST: {
|
|
7
|
+
message: `Business activity with id '{id}' does not exist.`,
|
|
8
|
+
params: ['id'],
|
|
9
|
+
affectedFields: ['businessActivityId'],
|
|
10
|
+
},
|
|
11
|
+
NAME_ALREADY_EXISTS: {
|
|
12
|
+
message: `Business activity with the same name '{name}' already exists.`,
|
|
13
|
+
params: ['name'],
|
|
14
|
+
affectedFields: ['name'],
|
|
15
|
+
},
|
|
16
|
+
OPTION_IN_USE: {
|
|
17
|
+
message: `This option is currently in use and cannot be deleted.`,
|
|
18
|
+
affectedFields: [],
|
|
19
|
+
},
|
|
20
|
+
} as const;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export const CLIENT_RELATIONSHIP = {
|
|
2
|
+
CURRENT_CLIENT_CANNOT_BE_RELATED_TO_CURRENT_CLIENT: {
|
|
3
|
+
message: `A client cannot have a relationship with itself.`,
|
|
4
|
+
affectedFields: ['relatedClientId'],
|
|
5
|
+
},
|
|
6
|
+
INVALID_RELATIONSHIP_TYPE_FOR_ENTITY_TYPE: {
|
|
7
|
+
message: `{clientName} is a/an {entityType}, which can't have {relationshipType}s. Please update the relationship type.`,
|
|
8
|
+
params: ['clientName', 'entityType', 'relationshipType'],
|
|
9
|
+
affectedFields: ['relationshipTypeId'],
|
|
10
|
+
},
|
|
11
|
+
PARENT_RELATIONSHIP_REQUIRES_FILES_UNDER_PARENT: {
|
|
12
|
+
message: `A Parent relationship can only be added to an entity that files under parent. Please update the Sub/Parent status before adding a parent relationship, or choose a different relationship type.`,
|
|
13
|
+
affectedFields: ['relationshipTypeId', 'filingTypeId'],
|
|
14
|
+
},
|
|
15
|
+
STARTING_DATE_BEFORE_CLIENT_DATE_ESTABLISHED: {
|
|
16
|
+
message: `This relationship's start date cannot be before {clientName}'s date established, {clientDateEstablished}. Please adjust the dates to proceed.`,
|
|
17
|
+
params: ['clientName', 'clientDateEstablished'],
|
|
18
|
+
affectedFields: ['startingDate'],
|
|
19
|
+
},
|
|
20
|
+
STARTING_DATE_ON_OR_AFTER_CLIENT_CLOSE_DATE: {
|
|
21
|
+
message: `This relationship's start date cannot be on or after {clientName}'s close date, {clientCloseDate}. Please adjust the dates to proceed.`,
|
|
22
|
+
params: ['clientName', 'clientCloseDate'],
|
|
23
|
+
affectedFields: ['startingDate'],
|
|
24
|
+
},
|
|
25
|
+
STARTING_DATE_BEFORE_RELATED_CLIENT_DATE_ESTABLISHED: {
|
|
26
|
+
message: `This relationship's start date cannot be before {relatedClientName}'s date established, {relatedClientDateEstablished}. Please adjust the dates to proceed.`,
|
|
27
|
+
params: ['relatedClientName', 'relatedClientDateEstablished'],
|
|
28
|
+
affectedFields: ['startingDate'],
|
|
29
|
+
},
|
|
30
|
+
STARTING_DATE_ON_OR_AFTER_RELATED_CLIENT_CLOSE_DATE: {
|
|
31
|
+
message: `This relationship's start date cannot be on or after {relatedClientName}'s close date, {relatedClientCloseDate}. Please adjust the dates to proceed.`,
|
|
32
|
+
params: ['relatedClientName', 'relatedClientCloseDate'],
|
|
33
|
+
affectedFields: ['startingDate'],
|
|
34
|
+
},
|
|
35
|
+
ENDING_DATE_ON_OR_BEFORE_STARTING_DATE: {
|
|
36
|
+
message: `Please update the relationship ending date to be after the starting date, {startingDate}.`,
|
|
37
|
+
params: ['startingDate'],
|
|
38
|
+
affectedFields: ['endingDate'],
|
|
39
|
+
},
|
|
40
|
+
ENDING_DATE_AFTER_CLIENT_CLOSE_DATE: {
|
|
41
|
+
message: `Please update the relationship ending date to be on or before the client's close date, {clientCloseDate}.`,
|
|
42
|
+
params: ['clientCloseDate'],
|
|
43
|
+
affectedFields: ['endingDate'],
|
|
44
|
+
},
|
|
45
|
+
ENDING_DATE_AFTER_RELATED_CLIENT_CLOSE_DATE: {
|
|
46
|
+
message: `Please update the relationship ending date to be on or before {relatedClientName}'s close date, {relatedClientCloseDate}.`,
|
|
47
|
+
params: ['relatedClientName', 'relatedClientCloseDate'],
|
|
48
|
+
affectedFields: ['endingDate'],
|
|
49
|
+
},
|
|
50
|
+
MULTIPLE_ACTIVE_PARENT_RELATIONSHIPS: {
|
|
51
|
+
message: `All parent relationships besides the current one must have an ending date. Please add an ending date for any parent relationships that are no longer current, before adding this parent relationship.`,
|
|
52
|
+
affectedFields: ['endingDate'],
|
|
53
|
+
},
|
|
54
|
+
FINAL_REQUIRED_WHEN_ENDING_DATE_MATCHES_CLIENT_CLOSE_DATE: {
|
|
55
|
+
message: `The client has a close date that is the same as the relationship ending date, therefore the relationship must be marked as final. Please update the relationship's final status to 'Yes', or adjust the dates.`,
|
|
56
|
+
affectedFields: ['isFinal'],
|
|
57
|
+
},
|
|
58
|
+
FINAL_REQUIRED_WHEN_ENDING_DATE_MATCHES_RELATED_CLIENT_CLOSE_DATE: {
|
|
59
|
+
message: `The related client has a close date that is the same as the relationship ending date, therefore the relationship must be marked as final. Please update the relationship's final status to 'Yes', or adjust the dates.`,
|
|
60
|
+
affectedFields: ['isFinal'],
|
|
61
|
+
},
|
|
62
|
+
} as const;
|