Finance Schema
Schema finance chứa 3 model quản lý các hoạt động tài chính bao gồm quản lý ví, theo dõi thu chi theo danh mục, và chuyển khoản giữa các ví.
Nguồn: packages/core/src/models/schemas/finance/
Tổng quan Model
| Model | Tên Bảng | Mô tả |
|---|---|---|
| FinanceWallet | finance.FinanceWallet | Tài khoản tài chính (tiền mặt, ngân hàng, ví điện tử, thẻ tín dụng) |
| FinanceCategory | finance.FinanceCategory | Phân loại thu nhập và chi phí |
| FinanceTransaction | finance.FinanceTransaction | Giao dịch tài chính riêng lẻ |
FinanceWallet
Tài khoản tài chính để theo dõi luồng tiền theo từng merchant.
Loại Ví
| Loại | Giá trị | Mô tả |
|---|---|---|
| CASH | 100_CASH | Tiền mặt |
| BANK | 200_BANK | Tài khoản ngân hàng |
| EWALLET | 300_EWALLET | Ví điện tử (Momo, ZaloPay, v.v.) |
| CREDIT_CARD | 400_CREDIT_CARD | Thẻ tín dụng |
Các Cột
| Cột | Kiểu | Ràng buộc | Mô tả |
|---|---|---|---|
status | text | NOT NULL, DEFAULT ACTIVATED | Trạng thái ví (ACTIVATED, ARCHIVED) |
name | jsonb (i18n) | NOT NULL | Tên đa ngôn ngữ |
type | text | NOT NULL | Loại ví (CASH, BANK, EWALLET, CREDIT_CARD) |
account_number | text | Số tài khoản ngân hàng hoặc số thẻ | |
bank_name | text | Tên ngân hàng/tổ chức | |
currency | text | NOT NULL, DEFAULT 'VND' | Mã tiền tệ |
initial_balance | decimal(15,4) | NOT NULL, DEFAULT '0' | Số dư ban đầu |
current_balance | decimal(15,4) | NOT NULL, DEFAULT '0' | Số dư hiện tại |
is_default | boolean | NOT NULL, DEFAULT false | Ví mặc định cho merchant |
is_excluded | boolean | NOT NULL, DEFAULT false | Loại trừ khỏi báo cáo |
merchant_id | text | NOT NULL | FK đến Merchant |
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 | id, createdAt, modifiedAt, deletedAt, metadata |
FinanceCategory
Phân loại thu nhập và chi phí với hỗ trợ phân cấp và các danh mục được định nghĩa sẵn.
Loại Danh mục
| Loại | Giá trị | Mô tả |
|---|---|---|
| INCOME | 100_INCOME | Danh mục thu nhập |
| EXPENSE | 200_EXPENSE | Danh mục chi phí |
Các Cột
| Cột | Kiểu | Ràng buộc | Mô tả |
|---|---|---|---|
status | text | NOT NULL, DEFAULT ACTIVATED | Trạng thái danh mục (ACTIVATED, ARCHIVED) |
name | jsonb (i18n) | NOT NULL | Tên đa ngôn ngữ |
description | jsonb (i18n) | Mô tả đa ngôn ngữ | |
type | text | NOT NULL | Loại danh mục (INCOME hoặc EXPENSE) |
identifier | text | NOT NULL, UNIQUE | Định danh duy nhất tự động tạo |
merchant_id | text | FK đến Merchant (null cho danh mục toàn cục) | |
parent_id | text | FK đến FinanceCategory cha | |
| + các cột chung |
Các Danh mục Tài chính Cố định
Danh mục thu nhập:
| Mã | Giá trị | Mô tả |
|---|---|---|
| SALE | 000_SALE | Doanh thu từ bán hàng |
| OTHER_INCOME | 001_OTHER_INCOME | Nguồn thu nhập khác |
| REFUND_INCOME | 002_REFUND_INCOME | Hoàn tiền nhận được |
Danh mục chi phí:
| Mã | Giá trị | Mô tả |
|---|---|---|
| PURCHASE | 100_PURCHASE | Mua hàng tồn kho |
| OTHER_EXPENSE | 101_OTHER_EXPENSE | Chi phí linh tinh |
| REFUND_EXPENSE | 102_REFUND_EXPENSE | Hoàn tiền đã phát hành |
Danh mục chi phí vận hành:
| Mã | Giá trị | Mô tả |
|---|---|---|
| OPERATING | 200_OPERATING | Chi phí vận hành chung |
| SALARY | 201_SALARY | Lương nhân viên |
| RENT_UTILITIES | 202_RENT_UTILITIES | Thuê và tiện ích |
| MARKETING | 203_MARKETING | Tiếp thị và quảng cáo |
| SHIPPING | 204_SHIPPING | Vận chuyển và logistics |
| MAINTENANCE | 205_MAINTENANCE | Bảo trì thiết bị/cơ sở |
Danh mục lãi suất:
| Mã | Giá trị | Mô tả |
|---|---|---|
| COLLECT_INTEREST | 300_COLLECT_INTEREST | Thu nhập lãi suất |
| PAY_INTEREST | 301_PAY_INTEREST | Chi phí lãi suất |
FinanceTransaction
Giao dịch tài chính riêng lẻ với hỗ trợ chuyển khoản giữa các ví.
Loại Giao dịch
| Loại | Giá trị | Mô tả |
|---|---|---|
| INCOME | 100_INCOME | Tiền vào |
| EXPENSE | 200_EXPENSE | Tiền ra |
| TRANSFER | 300_TRANSFER | Tiền chuyển giữa các ví |
Trạng thái Giao dịch
| Trạng thái | Giá trị | Kết thúc | Mô tả |
|---|---|---|---|
| PENDING | 200_PENDING | Không | Đang chờ hoàn thành |
| COMPLETED | 303_COMPLETED | Có | Hoàn thành thành công |
| CANCELLED | 505_CANCELLED | Có | Đã hủy |
Các Cột
| Cột | Kiểu | Ràng buộc | Mô tả |
|---|---|---|---|
status | text | NOT NULL, DEFAULT COMPLETED | Trạng thái giao dịch |
type | text | NOT NULL | Loại giao dịch (INCOME, EXPENSE, TRANSFER) |
amount | decimal(15,4) | NOT NULL | Số tiền giao dịch |
currency | text | NOT NULL, DEFAULT 'VND' | Mã tiền tệ |
exchange_rate | decimal(19,6) | Tỷ giá hối đoái (cho đa tiền tệ) | |
transaction_date | isoTimestamp | NOT NULL | Ngày giao dịch (chuỗi ISO 8601) |
finance_wallet_id | text | NOT NULL | FK đến FinanceWallet nguồn |
to_finance_wallet_id | text | FK đến FinanceWallet đích (cho loại TRANSFER) | |
finance_category_id | text | FK đến FinanceCategory | |
reference_type | text | Loại thực thể tham chiếu (ví dụ: SaleOrder, PurchaseOrder) | |
reference_id | text | ID thực thể tham chiếu | |
merchant_id | text | NOT NULL | FK đến Merchant |
metadata | jsonb | TFinanceTransactionMetadata (chi tiết thanh toán đơn hàng) | |
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 |
Quan hệ Thực thể
Tích hợp Hướng sự kiện
Gói finance tự động tạo giao dịch dựa trên sự kiện từ các dịch vụ khác:
| Sự kiện | Hành động | Danh mục | Loại |
|---|---|---|---|
| Commerce khởi tạo (đăng ký merchant) | Tạo ví tiền mặt mặc định | -- | -- |
| Thanh toán thành công (đơn hàng bán) | Tạo giao dịch THU NHẬP | SALE | INCOME |
| Đơn mua hàng đã nhận | Tạo giao dịch CHI PHÍ | PURCHASE | EXPENSE |
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
- Pricing Schema -- 7 model định giá
- Allocation Schema -- 4 model phân bổ
- Sale Schema -- 2 model đơn hàng bán
- Inventory Schema -- 8 model tồn kho
- Payment Schema -- 1 model cấu hình webhook
- Migration -- DDL migration và framework dữ liệu mẫu