feat: initialize project backend structure and document system specifications across all modules
This commit is contained in:
44
docs/specs/onecatalogue/catalogue.md
Normal file
44
docs/specs/onecatalogue/catalogue.md
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
title: "Catalogue"
|
||||
type: OpenSpec
|
||||
status: Draft
|
||||
domain: OneCatalogue
|
||||
---
|
||||
|
||||
# Catalogue
|
||||
|
||||
## Requirement Definition
|
||||
A Catalogue groups items for online redemptions (e.g., Cash-back rebates, frequent flyer miles, merchant vouchers). All items included in the Catalogue must be tagged with a specific Catalogue Code. The system supports multiple concurrent catalogues, each with its own Item Master records.
|
||||
|
||||
## Process Flow
|
||||
|
||||
### Pre-Conditions
|
||||
- Users must have access rights to the "Catalogue" screen under the "OneCatalogue" module.
|
||||
- Depending on access rights, users can view, add, edit, or approve catalogue records.
|
||||
|
||||
## Business Rules
|
||||
- Each Catalogue operates within a Start / End date range.
|
||||
- Items are only presented to customers if the current date falls within the Catalogue's effective date range.
|
||||
|
||||
### Data Schema
|
||||
|
||||
#### General Information
|
||||
| Field Name | Description | Logic Type | Constraints / Rules |
|
||||
|---|---|---|---|
|
||||
| Catalogue Code | User-specified code identifying the catalogue. Used by front-end systems. | String (10) | Required. |
|
||||
| Description | A description of this catalogue. | String (50) | Required. Default description if no specific language is chosen. |
|
||||
| Effective From Date | Date from which the catalogue is effective. | Date | Required. |
|
||||
| Effective To Date | Date until which the catalogue is effective. | Date | Required. |
|
||||
| Icon | Icon of the catalogue. | Image | Optional. |
|
||||
|
||||
#### Content Configuration
|
||||
| Field Name | Description | Logic Type | Constraints / Rules |
|
||||
|---|---|---|---|
|
||||
| Language | Selected language for specific description setup. | String (Lookup) | Required. |
|
||||
| Description | Description of the catalogue in the chosen language. | String (100) | Required. |
|
||||
|
||||
## Post-Conditions
|
||||
- The Catalogue information is returned to the front-end during Item Enquiry responses for searching.
|
||||
|
||||
## Exception Flow
|
||||
- None specified.
|
||||
40
docs/specs/onecatalogue/category.md
Normal file
40
docs/specs/onecatalogue/category.md
Normal file
@@ -0,0 +1,40 @@
|
||||
---
|
||||
title: "Category"
|
||||
type: OpenSpec
|
||||
status: Draft
|
||||
domain: OneCatalogue
|
||||
---
|
||||
|
||||
# Category
|
||||
|
||||
## Requirement Definition
|
||||
A Category is a logical group within a catalog that organizes items. Multiple Categories can be linked to form a hierarchy, which is utilized on the Member site.
|
||||
|
||||
## Process Flow
|
||||
|
||||
### Pre-Conditions
|
||||
- Users must have access rights to the "Category" screen under the "OneCatalogue" module.
|
||||
- Depending on access rights, users can view, add, edit, or approve category records.
|
||||
|
||||
## Business Rules
|
||||
|
||||
### Data Schema
|
||||
|
||||
#### General Information
|
||||
| Field Name | Description | Logic Type | Constraints / Rules |
|
||||
|---|---|---|---|
|
||||
| Category Code | User-specified code identifying the category. | String (10) | Required. |
|
||||
| Description | Default description of this category. | String (100) | Required. |
|
||||
| Effective From Date | Date from which the category is effective. | Date | Optional. If empty, non-expiring. |
|
||||
| Effective To Date | Date until which the category is effective. | Date | Optional. |
|
||||
| Parent Category | Identifies the parent category to form a hierarchy. | String (Lookup) | Optional. |
|
||||
| Display Ordering | Ordering sequence on the Member Site. | Integer | Optional. |
|
||||
| Icon | Icon of the category. | Image | Optional. |
|
||||
| Image Group | Selected image group. | String (Lookup) | Optional. |
|
||||
| Image | Selected image from Image Stock. | String (Lookup) | Required if Image Group is selected. |
|
||||
|
||||
#### Content Configuration
|
||||
| Field Name | Description | Logic Type | Constraints / Rules |
|
||||
|---|---|---|---|
|
||||
| Language | Selected language for specific description setup. | String (Lookup) | Required. |
|
||||
| Description | Description of the category in the chosen language. | String (100) | Required. |
|
||||
65
docs/specs/onecatalogue/item_master.md
Normal file
65
docs/specs/onecatalogue/item_master.md
Normal file
@@ -0,0 +1,65 @@
|
||||
---
|
||||
title: "Item Master"
|
||||
type: OpenSpec
|
||||
status: Draft
|
||||
domain: OneCatalogue
|
||||
---
|
||||
|
||||
# Item Master
|
||||
|
||||
## Requirement Definition
|
||||
Item Master defines details about a particular item, such as prices, quantities, availability dates, terms, and conditions.
|
||||
|
||||
## Process Flow
|
||||
|
||||
### Pre-Conditions
|
||||
- Users must have access rights in the "Item Master" screen under the "OneCatalogue" module.
|
||||
- Depending on access rights, users can view, add, edit, or approve Item Master records.
|
||||
|
||||
## Business Rules
|
||||
|
||||
### Data Schema
|
||||
|
||||
#### General Information
|
||||
| Field Name | Description | Logic Type | Constraints / Rules |
|
||||
|---|---|---|---|
|
||||
| Catalogue Code | The Catalogue for which this item is configured. | String (Lookup) | Required. |
|
||||
| Category | Category under which this item is tagged. | Array of Strings (Lookup) | Optional. |
|
||||
| Item Code | Identifier for the item to be added. | String (10) | Required. |
|
||||
| Item Name | Short description used by customer-facing application. | String (50) | Required. |
|
||||
| Redemption From Date | Date from which the item is available for redemption. | Date | Required. Must fall within Catalogue/Category date range. |
|
||||
| Redemption To Date | Date until which the item is available. | Date | Required. Must fall within Catalogue/Category date range. |
|
||||
| Redemption Store | Supplier/merchant of this item. | String (Lookup) | Optional. |
|
||||
| Redemption Transaction Code | OLS TC used for redemption processing. | String (Lookup) | Required. |
|
||||
| Award Transaction Code | OLS TC used to locate award campaign rules upon redemption. | String (Lookup) | Optional. |
|
||||
| Item Type | Type of item. | Enum | Required. Values: Miles, Physical, eVoucher, Donation, Cash rebate, Other. |
|
||||
| Voucher Code | Selected voucher code. | String (Lookup) | Required if Item Type is eVoucher. |
|
||||
| Face Value | Value of the cash rebate/voucher/miles that customer receives. | Decimal (14,2) | Required for Cash rebate/eVoucher/Miles. Must be positive. |
|
||||
| Display on Member Site | Determines if the item is displayed on the member site. | Boolean | Default: True. |
|
||||
| Hot Item | Indicates if this is a hot item. | Boolean | Active only if Display on Member Site is True. Default: False. |
|
||||
| Display Ordering | Ordering sequence to display on member site. | Integer | Must be > 0. Active only if Display on Member Site is True. |
|
||||
| Track Quantity on Hand | Enables inventory control. | Boolean | Default: False. Forced to True if item is a Voucher Code. |
|
||||
| Initialize Quantity of Stocks | Initial stock quantity. | Integer | Required if Track Quantity on Hand is True. Read-only if item has been redeemed. |
|
||||
|
||||
#### Item Detail (Localization)
|
||||
| Field Name | Description | Logic Type | Constraints / Rules |
|
||||
|---|---|---|---|
|
||||
| Language | Selected language. | String (Lookup) | Required. |
|
||||
| Item Name | Specific item name in the chosen language. | String (50) | Required. |
|
||||
| Item Description | Specific item description. | String (100) | Optional. |
|
||||
| Item Content | Detailed content/information. | String (2000) | Optional. |
|
||||
| How to use | Instructions on how to use the item. | String (2000) | Optional. |
|
||||
| Term and Condition | Free text for Terms and Conditions. | String (2000) | Optional. |
|
||||
|
||||
#### Contact and Address Information
|
||||
| Field Name | Description | Logic Type | Constraints / Rules |
|
||||
|---|---|---|---|
|
||||
| City | City where the item can be used. | String (Lookup) | Required. |
|
||||
| Address | Detailed address. | String (200) | Optional. |
|
||||
| Email | Contact email. | String (100) | Optional. |
|
||||
| Phone | Contact phone number. | String (20) | Optional. |
|
||||
|
||||
## Post-Conditions
|
||||
- The newly created item should have all required fields populated with valid data.
|
||||
- System adds/updates items in the database.
|
||||
- Other screens looking up the item screen can use the new item.
|
||||
54
docs/specs/onecatalogue/item_price.md
Normal file
54
docs/specs/onecatalogue/item_price.md
Normal 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.
|
||||
58
docs/specs/onecatalogue/voucher_code.md
Normal file
58
docs/specs/onecatalogue/voucher_code.md
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
title: "Voucher Code"
|
||||
type: OpenSpec
|
||||
status: Draft
|
||||
domain: OneCatalogue
|
||||
---
|
||||
|
||||
# Voucher Code
|
||||
|
||||
## Requirement Definition
|
||||
Voucher Codes manage external partner vouchers distributed to customers. Vouchers are imported or generated with specific codes, valid periods, and serial numbers.
|
||||
|
||||
## Process Flow
|
||||
|
||||
### Pre-Conditions
|
||||
- Users must have access rights in the "Voucher Management" screen under the "OneCatalogue" module.
|
||||
- Depending on access rights, users can view, add, edit, or approve Voucher records.
|
||||
|
||||
## Business Rules
|
||||
- Voucher codes cannot be deleted if any associated voucher serial number has been redeemed.
|
||||
|
||||
### Data Schema
|
||||
|
||||
#### Voucher Statistic (View Only)
|
||||
| Field Name | Description | Logic Type |
|
||||
|---|---|---|
|
||||
| Total Voucher | Total serial numbers under this voucher code. | Integer |
|
||||
| Available Vouchers | Total valid, non-expired, ready-to-use vouchers. | Integer |
|
||||
| Redeemed Vouchers | Total successfully redeemed vouchers. | Integer |
|
||||
| Cancelled Vouchers | Total failed redemptions canceled by customers/system. | Integer |
|
||||
| Expired Vouchers | Total expired vouchers not redeemed. | Integer |
|
||||
|
||||
#### Voucher Code Detail
|
||||
| Field Name | Description | Logic Type | Constraints / Rules |
|
||||
|---|---|---|---|
|
||||
| Voucher Code | Identifier of the voucher. | String (10) | Required. |
|
||||
| Description | Description of the voucher. | String (100) | Optional. |
|
||||
| Supplier | Partner issuing the voucher. | String (Lookup) | Optional. |
|
||||
| Expiry Policy | Determines how the voucher expires. | Enum | Required. Values: Fixed Date, N days from Transaction Date, N days from Post Date, N Months from Transaction Date, N months from Post Date. |
|
||||
| Expiry Date | The absolute expiry date. | Date | Required if Expiry Policy is "Fixed Date". |
|
||||
| N Param | Parameter N for relative expiry policies. | Integer | Required if Expiry Policy requires N parameter. Must be >= 0. |
|
||||
| Generate Voucher | Indicates if OLS generates the voucher (instead of partner upload). | Boolean | Default: False. Read-only if voucher is redeemed. |
|
||||
| Quantity | Number of voucher codes to generate. | Integer | Required if Generate Voucher is True. Read-only if voucher is redeemed. |
|
||||
| This is a promo code | Indicates if this is a promo code. | Boolean | Default: False. |
|
||||
| Promotion Type | Type of discount. | Enum | Required if This is a promo code is True. Values: Fixed Percentage Discount, Fixed Monetary Value Discount, Cashback Voucher, Gift Voucher. |
|
||||
| Value | The specific value of the discount. | Decimal (14,2) | Required if Promotion Type is Fixed Monetary Value or Fixed Percentage. Must be > 0. |
|
||||
|
||||
#### Voucher Detail (View Only)
|
||||
*Displays specific serial numbers assigned to the Voucher Code.*
|
||||
|
||||
| Field Name | Description | Logic Type |
|
||||
|---|---|---|
|
||||
| Voucher Code | The associated voucher code. | String |
|
||||
| Voucher No | The serial voucher number. | String |
|
||||
| Redemption Date | Date when voucher is redeemed. | Date |
|
||||
| Expiry Date | Expiry date of the serial number. | Date |
|
||||
| Redemption Indicator | Yes or No. | Boolean |
|
||||
| Fulfillment Status | New, Issued, Fulfilled, Cancelled, Rejected. | Enum |
|
||||
Reference in New Issue
Block a user