Appearance
Incentive Policy — Business Rules
Tổng quan
Domain này gom các chính sách động lực và thưởng trong settings, gồm:
- commission setting,
- prepaid card,
- expired period,
- promotion wallet,
- affiliate config/label/policy,
- KPI catalog,
- achievement,
- check-in bonus / transition bonus / app highlight feature.
Điểm quan trọng nhất:
- business boundary của domain này khá rõ,
- nhưng route topology trong UI lại bị phân tán mạnh giữa nhiều wrapper khác nhau.
Nhóm nghiệp vụ
| Nhóm | Vai trò |
|---|---|
| Commission / prepaid | Chính sách commission dịch vụ, prepaid card, expired period |
| Wallet promotion | Bật/tắt visibility của wallet_promotion payment method |
| Affiliate policy | General config, label, policy group |
| KPI config | Catalog metric và grouping cho KPI |
| Achievement / bonus | Huy hiệu, check-in bonus, transition bonus |
| App highlight | Highlight/banner feature cho app |
Quy tắc nghiệp vụ
| Mã | Quy tắc |
|---|---|
| BR-IP-001 | service commission dùng root role_commission và lồng sub_commission theo payment_method_id + service_id. |
| BR-IP-002 | prepaid card có hai surface UI khác nhau trong settings: tab config và CRUD/detail riêng. |
| BR-IP-003 | expired period, check-in bonus, transition bonus không có table riêng; chúng ghi vào singleton app_setting. |
| BR-IP-004 | promotion wallet trong settings chỉ là toggle trên payment_method.id = wallet_promotion, không đại diện cho toàn bộ runtime wallet behavior. |
| BR-IP-005 | affiliate general đang split data giữa app_setting.app_settings.affiliate và bảng affiliate_config. |
| BR-IP-006 | KPI settings chỉ nắm catalog/grouping; runtime relation/stats/reporting nằm downstream ở ecommerce/report. |
Boundary
| Boundary | Ghi chú |
|---|---|
ecommerce | prepaid, policy, KPI metric, payment method |
wallet | runtime commission/wallet request sống ngoài settings |
affiliate | settings chỉ nắm config/label/policy, không nắm referral runtime |
cms | app_highlight_feature lưu ở CMS tables |
Rủi ro / Findings
| Mức | Finding |
|---|---|
| P1 | Business boundary khá rõ nhưng route topology bị phân tán mạnh, khiến người đọc khó lần theo domain bằng UI tree. |
| P1 | affiliate general đang dual-write vào app_setting và affiliate_config, không có transaction boundary. |
| P1 | PromotionWallet đang ghép app_visible và web_visible vào cùng một toggle, làm mất khả năng cấu hình độc lập. |
| P1 | Prepaid card có hai surface UI khác nhau cho cùng domain, dễ gây UX và ownership drift. |
| P2 | AppHighlightFeature đang nằm chung wrapper customer app/bonus, làm boundary UI càng khó đọc. |