feat: initialize project backend structure and document system specifications across all modules
This commit is contained in:
46
docs/specs/customer_management/re_instatement.md
Normal file
46
docs/specs/customer_management/re_instatement.md
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
title: "Re-Instatement"
|
||||
type: OpenSpec
|
||||
status: Draft
|
||||
domain: Customer Management
|
||||
---
|
||||
|
||||
# Re-Instatement
|
||||
|
||||
## Requirement Definition
|
||||
Allows manual re-instatement of expired balance buckets that have not yet been forfeited.
|
||||
|
||||
## Process Flow
|
||||
|
||||
### Pre-Conditions
|
||||
- Users must have access rights in the "Re-Instatement" module.
|
||||
- The customer must have expired pool buckets that are within the grace period (not yet forfeited).
|
||||
- Requires Maker-Checker approval.
|
||||
|
||||
## Business Rules
|
||||
|
||||
### Data Schema
|
||||
|
||||
| Field Name | Description | Logic Type | Constraints / Rules |
|
||||
|---|---|---|---|
|
||||
| Posted Transaction By | Card, Account, or CIF. | Enum | Required. |
|
||||
| Card / Account / CIF | Identifier based on above selection. | String | Required. |
|
||||
| Store | Store of transaction. | Enum (Lookup) | Required. |
|
||||
| Pool Id | Pool of the bucket to re-instate. | Enum (Lookup) | Required. Lists pools with non-forfeited expired balances. |
|
||||
| Bucket to Re-instate | Specific expired bucket to reinstate. | Enum (Lookup) | Required. |
|
||||
| Expiry Date | New expiry date of the reinstated points. | Date | Required. |
|
||||
| Reason Code | Reason for re-instatement. | Enum (Lookup) | Required. |
|
||||
| Remarks | Additional notes. | String (100) | Optional. |
|
||||
|
||||
### Execution
|
||||
- **Pending/Approve Flow**: New requests go to a pending list. Authorised user approves.
|
||||
- Re-instatement is posted as an Adjustment.
|
||||
- The expired bucket balance is set to 0.
|
||||
- If a bucket with the new Expiry Date already exists, the amount is added to it.
|
||||
- Otherwise, a new bucket is created with the new Expiry Date.
|
||||
|
||||
## Post-Conditions
|
||||
- Balances updated and logged as adjustments.
|
||||
|
||||
## Exception Flow
|
||||
- Rejected by TP validation or block code.
|
||||
Reference in New Issue
Block a user