Pricing Schema
Schema pricing chứa 7 model triển khai công cụ định giá linh hoạt, dựa trên quy tắc. Nó hỗ trợ định giá tĩnh, định giá động với các quy tắc theo ngữ cảnh, cấu trúc giá phân cấp, chi phí, và cấu hình đa thuế.
Nguồn: packages/core/src/models/schemas/pricing/
Tổng quan Model
| Model | Tên Bảng | Mô tả |
|---|---|---|
| Fare | pricing.Fare | Điểm giá với số tiền, thời hạn hiệu lực, và ràng buộc số lượng |
| FareSet | pricing.FareSet | Container liên kết một ProductVariant với cấu hình định giá |
| FareRule | pricing.FareRule | Quy tắc có điều kiện phải thỏa mãn để Fare được áp dụng |
| Cost | pricing.Cost | Theo dõi chi phí biến thể sản phẩm với thời hạn hiệu lực |
| Tax | pricing.Tax | Mục thuế suất trong một bộ thuế |
| TaxSet | pricing.TaxSet | Container cấu hình thuế sử dụng quyền sở hữu đa hình |
| TaxType | pricing.TaxType | Định nghĩa loại thuế (VAT, Tiêu thụ đặc biệt, v.v.) |
Fare
Một tầng giá với thời hạn hiệu lực tùy chọn, ràng buộc số lượng, và các điều kiện dựa trên quy tắc. Hỗ trợ phân cấp cha-con cho giá ghi đè/khuyến mãi.
| Cột | Kiểu | Ràng buộc | Mô tả |
|---|---|---|---|
name | jsonb (i18n) | Tên đa ngôn ngữ | |
description | jsonb (i18n) | Mô tả đa ngôn ngữ | |
status | text | NOT NULL, DEFAULT ACTIVATED | Trạng thái giá vé |
type | text | Loại giá vé (SALE, OVERRIDE) | |
effective_from | isoTimestamp | Ngày bắt đầu hiệu lực | |
effective_to | isoTimestamp | Ngày kết thúc hiệu lực | |
min_quantity | decimal(15,4) | Số lượng tối thiểu cho giá vé này | |
max_quantity | decimal(15,4) | Số lượng tối đa cho giá vé này | |
amount | decimal(15,4) | Số tiền giá | |
rules_count | integer | Số lượng quy tắc đính kèm (cached) | |
children_count | integer | Số lượng giá vé con (cached) | |
fare_set_id | text | NOT NULL | FK đến FareSet |
parent_id | text | FK đến Fare cha (tự tham chiếu) | |
| + các cột chung | id, createdAt, modifiedAt, deletedAt, metadata |
Trạng thái: ACTIVATED, DEACTIVATED, ARCHIVED
Loại:
SALE-- Giá bán tiêu chuẩnOVERRIDE-- Giá ghi đè/khuyến mãi
FareSet
Container liên kết một ProductVariant với cấu hình định giá. Quan hệ một-một với ProductVariant.
| Cột | Kiểu | Ràng buộc | Mô tả |
|---|---|---|---|
status | text | NOT NULL, DEFAULT ACTIVATED | Trạng thái FareSet |
product_variant_id | text | NOT NULL, UNIQUE | Một FareSet cho mỗi ProductVariant |
| + các cột chung |
Trạng thái: ACTIVATED, DEACTIVATED, ARCHIVED
Quan hệ: Một FareSet có nhiều Fare.
FareRule
Quy tắc có điều kiện đính kèm vào một Fare. Tất cả quy tắc trên một Fare phải thỏa mãn để Fare được áp dụng. Các quy tắc được đánh giá theo thứ tự ưu tiên.
| Cột | Kiểu | Ràng buộc | Mô tả |
|---|---|---|---|
code | text | NOT NULL | Định danh quy tắc (ví dụ: quantity, saleChannelId) |
priority | integer | NOT NULL | Thứ tự đánh giá (thấp hơn = trước) |
operator | text | NOT NULL | Toán tử so sánh |
fare_id | text | NOT NULL | FK đến Fare |
| + các cột kiểu dữ liệu | dataType, tValue, nValue, boValue, bValue, jValue | ||
| + các cột chung |
Toán tử (từ FareRuleOperators):
| Toán tử | Bí danh | Mô tả |
|---|---|---|
eq | Bằng | |
ne | neq | Không bằng |
gt | Lớn hơn | |
gte | Lớn hơn hoặc bằng | |
lt | Nhỏ hơn | |
lte | Nhỏ hơn hoặc bằng | |
in | inq | Trong mảng |
nin | Không trong mảng |
Helper generateDataTypeColumnDefs() cung cấp lưu trữ giá trị có kiểu:
tValue(text) -- cho so sánh chuỗinValue(double precision) -- cho so sánh sốboValue(boolean) -- cho kiểm tra booleanbValue(bytea) -- cho dữ liệu nhị phânjValue(jsonb) -- cho quy tắc phức tạp
Cost
Theo dõi chi phí biến thể sản phẩm với thời hạn hiệu lực.
| Cột | Kiểu | Ràng buộc | Mô tả |
|---|---|---|---|
amount | decimal(15,4) | NOT NULL | Số tiền chi phí |
note | text | Ghi chú chi phí | |
effective_from | isoTimestamp | NOT NULL | Ngày bắt đầu (bắt buộc) |
effective_to | isoTimestamp | Ngày kết thúc (null = vô thời hạn) | |
product_variant_id | text | NOT NULL | FK đến ProductVariant |
created_by | text | ID người dùng tạo | |
modified_by | text | ID người dùng sửa đổi cuối | |
| + các cột chung |
Tax
Mục thuế suất riêng lẻ trong một bộ thuế.
| Cột | Kiểu | Ràng buộc | Mô tả |
|---|---|---|---|
name | jsonb (i18n) | NOT NULL | Tên đa ngôn ngữ |
amount | decimal(15,4) | Số tiền thuế cố định | |
percentage | decimal(15,4) | Thuế suất phần trăm | |
effective_from | isoTimestamp | NOT NULL | Ngày bắt đầu |
effective_to | isoTimestamp | Ngày kết thúc | |
priority | integer | DEFAULT 0 | Thứ tự đánh giá (cao nhất trước khi nhiều thuế áp dụng) |
status | text | NOT NULL, DEFAULT ACTIVATED | Trạng thái thuế |
tax_set_id | text | NOT NULL | FK đến TaxSet |
tax_type_id | text | NOT NULL | FK đến TaxType |
| + các cột chung |
Trạng thái: ACTIVATED, DEACTIVATED, ARCHIVED
TaxSet
Container cấu hình thuế sử dụng quyền sở hữu đa hình (có thể liên kết đến bất kỳ thực thể nào).
| Cột | Kiểu | Ràng buộc | Mô tả |
|---|---|---|---|
principal_id | text | ID chủ sở hữu đa hình | |
principal_type | text | Loại chủ sở hữu đa hình | |
name | jsonb (i18n) | Tên đa ngôn ngữ | |
status | text | NOT NULL, DEFAULT ACTIVATED | Trạng thái TaxSet |
| + các cột chung |
Ràng buộc duy nhất: (principalId, principalType, status, deletedAt)
Trạng thái: ACTIVATED, DEACTIVATED, ARCHIVED
TaxType
Định nghĩa loại thuế được chia sẻ giữa các merchant.
| Cột | Kiểu | Ràng buộc | Mô tả |
|---|---|---|---|
type | text | NOT NULL | Mã loại thuế |
name | jsonb (i18n) | NOT NULL | Tên đa ngôn ngữ |
description | jsonb (i18n) | Mô tả đa ngôn ngữ | |
status | text | NOT NULL, DEFAULT ACTIVATED | Trạng thái TaxType |
merchant_id | text | FK đến Merchant (null cho loại toàn cục) | |
| + các cột chung |
Ràng buộc duy nhất: (type, merchantId)
Loại Thuế Cố định (từ FixedTaxTypes):
| Hằng số | Giá trị | Mô tả |
|---|---|---|
VAT | 000_VAT | Thuế Giá trị Gia tăng |
EXCISE | 100_EXCISE5 | Thuế tiêu thụ đặc biệt |
ENVIRONMENTAL | 200_ENVIRONMENTAL | Thuế bảo vệ môi trường |
LUXURY | 300_LUXURY | Thuế hàng xa xỉ |
Quan hệ Thực thể
Tài liệu Liên quan
- Tổng quan Cơ sở dữ liệu -- Tóm tắt schema, cột chung, kiểu chia sẻ
- Sơ đồ Quan hệ Thực thể -- ERD toàn diện cho tất cả 55 model
- Public Schema -- 30 model trong public schema
- Allocation Schema -- 4 model phân bổ
- Sale Schema -- 2 model đơn hàng bán
- Inventory Schema -- 8 model tồn kho
- Finance Schema -- 3 model tài chính
- Payment Schema -- 1 model cấu hình webhook
- Migration -- DDL migration và framework dữ liệu mẫu