feat: initialize project backend structure and document system specifications across all modules

This commit is contained in:
SonPhung
2026-07-24 09:05:41 +07:00
parent 506008c69f
commit 4534e4ecb8
74 changed files with 7989 additions and 44 deletions

View File

@@ -0,0 +1,54 @@
---
title: "Item Price"
type: OpenSpec
status: Draft
domain: OneCatalogue
---
# Item Price
## Requirement Definition
Item Price specifies the conversion rate between reward points and redemption quantity, defining pricing tiers based on account types, redemption channels, or specific criteria. It manages redemption options (points only vs. cash and points).
## Process Flow
### Pre-Conditions
- Users must have access rights in the "Item Master" and "Item Price" screens under the "OneCatalogue" module.
- Depending on access rights, users can view, add, edit, or approve Item Price records.
## Business Rules
### Data Schema
#### General Information
| Field Name | Description | Logic Type | Constraints / Rules |
|---|---|---|---|
| Item Code | The item being configured. | String (Lookup) | Required. |
| Price Code | Identifier of the item price. | String (10) | Required. |
| Price Name | Default name of the price. | String (100) | Required. |
| Effective Start Date | Start date of the price validity. | Date | Required. |
| Effective End Date | End date of the price validity. | Date | Required. |
| Redemption Channel | Channel applicable for this price (e.g., Call Center, Mobile App). | String (Lookup) | Required. |
| Account Type Group | Account Type Group this price applies to. | Array of Strings (Lookup) | Optional. Mutually exclusive with Account Level/Type. |
| Product Account Level | Account Level this price applies to. | String (Lookup) | Optional. Mutually exclusive with Account Type Group. |
| Product Account Type | Account Type this price applies to. | Array of Strings (Lookup) | Optional. Mutually exclusive with Account Type Group. |
| Redemption Pool | Pool from which to deduct points. | String (Lookup) | Required. |
| Use Only Points from Selected PA Type | Restrict points usage to the selected Account Type/Group. | Boolean | Default: False. |
| Face Value | The value the customer receives upon redemption. | Decimal (12,2) | Must be > 0. |
| Price in Point | Price if paid fully in points. | Decimal (12,2) | Must be > 0. |
| Original Price | The original price of the item (for reference). | Decimal (12,2) | Must be > 0. |
| Partial Redemption Allowed | Allows a mix of points and cash for redemption. | Boolean | Default: False. |
| Minimum Partial Redeem Points | Minimum points customer must use for partial redemption. | Decimal (12,2) | Required if Partial Redemption is Allowed. Must be >= 0. |
| Cash per Point | Cash amount required to substitute one point during partial redemption. | Decimal (12,2) | Required if Partial Redemption is Allowed. Must be > 0. |
| Applicable Taxes | Tax rate applicable. | String (Lookup) | Optional. |
#### Price Detail (Localization)
| Field Name | Description | Logic Type | Constraints / Rules |
|---|---|---|---|
| Language | Selected language. | String (Lookup) | Required. |
| Item Price Name | Specific name of chosen language. | String (100) | Required. |
| Description | Description of the price. | String (500) | Optional. |
#### Item Criteria
- Utilizes the Query Builder logic. Criteria groups can be combined using logical OR/AND operators.
- Applicable criteria are tagged specifically for the "Item Price" module.