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,62 @@
---
title: "Marketing Campaign (OneMarketing Request)"
type: OpenSpec
status: Draft
domain: OneMarketing
---
# Marketing Campaign (OneMarketing Request)
## Requirement Definition
Filters target customers that satisfy specific marketing criteria. Triggers either notification messages or reward campaigns (via OLS Transaction Code) for the target customers.
## Process Flow
### Pre-Conditions
- Users must have access rights in the "Marketing Request" module.
- Depending on rights, users can view, add, edit, or approve requests.
- All OMR criteria must be defined as attributes.
## Business Rules
### OMR Criteria Logic
- Uses Query Builder for marketing criteria.
- Criteria can be dragged/dropped from the right panel.
- Supports AND/OR conditions between criteria groups.
- Introduces NOT toggle for exclusion criteria.
### Data Schema
#### General Information
| Field Name | Description | Logic Type | Constraints / Rules |
|---|---|---|---|
| Request ID | Unique identifier. | String (20) | Required. No special characters. |
| Description | Description. | String (100) | Required. |
| Effective Date From | Start date. | Date | Required. |
| Effective Date To | End date. | Date | Required. |
| Marketing Function | Notification [N] or Trigger Campaign Rule [TCR]. | Enum | Required. |
#### Run Schedule and Message Content
| Field Name | Description | Logic Type | Constraints / Rules |
|---|---|---|---|
| Trigger Method | Schedule or Event trigger. | Enum | Required. |
| Run Schedule | Once Time [O], Daily [D], Weekly [W], Monthly [M], Annually [A]. | Enum | Required if Trigger Method is Schedule. |
| Schedule Details | Specific details (e.g., Repeat every, Fixed Date, Time of day). | Complex | Required based on Run Schedule. |
| Business Event | Specific event triggering the request. | Array of Strings (Lookup) | Required if Trigger Method is Event trigger. |
| Message Template | The marketing message to send. | String (Lookup) | Required if Marketing Function is Notification. |
| OLS Transaction Code | TC used to trigger campaign rule. | String (Lookup) | Required if Marketing Function is Trigger Campaign Rule. |
#### Targeting
| Field Name | Description | Logic Type | Constraints / Rules |
|---|---|---|---|
| Trigger Method | OMR Criteria or Upload file. | Enum | Required. |
| Targeting Data | The selected OMR criteria setup or the uploaded file. | Rule / File | Required based on Trigger Method. |
### Batch Job Processing
- OMR job checks effective requests based on processing date.
- Finds valid jobs based on schedule.
- Creates notifications or extracts transactions based on criteria.
- Stops sending when frequency capping limits are reached.
## Post-Conditions
- Marketing content is sent to target customers, or target customers trigger a Campaign Rule.