Finance — Khái niệm cốt lõi
Core objects
| Khái niệm | Nghĩa |
|---|---|
| Billing | Aggregate gom nghĩa vụ tính tiền từ booking/subscription. Billing sở hữu payment option, split context và dữ liệu để sinh invoice. |
| BillingPeriod | Kỳ tài chính hoặc giai đoạn dùng để nhóm line, nhất là subscription billing schedule. |
| Invoice | Chứng từ phải thu gửi tới customer/account. Invoice có header, line, tax/discount, status và scheduler xử lý. |
| InvoiceLine | Dòng phí cụ thể: session, add-on, discount, adjustment hoặc metadata liên quan booking. |
| CreditNote | Chứng từ điều chỉnh ngược invoice khi giảm tiền, hủy hoặc chỉnh booking sau khi invoice đã phát hành/paid. |
| FinanceTransaction | Projection phục vụ truy vấn invoice/credit-note/payment trạng thái hiện tại. Nó giúp màn hình list/search nhanh và ổn định. |
| InvoiceScheduler | Job/scheduler phát hành hoặc xử lý invoice ở thời điểm phù hợp. |
| Preview Billing Difference | Read-only computation cho edit booking: tính invoice/credit-note dự kiến mà không persist. |
| Accounting Provider | Nhà cung cấp kế toán như Xero; nhận invoice/credit-note/payment sync từ AIMY. |
Billing vs Invoice
Billing là context tính tiền; Invoice là chứng từ customer thấy và finance vận hành. Một billing có thể dẫn tới nhiều invoice nếu split rule yêu cầu tách theo org, attendee, category hoặc kỳ.
Invoice vs FinanceTransaction
Invoice là record nghiệp vụ gốc. FinanceTransaction là projection/read model để search, list, sync booking number, allocation và trạng thái tổng hợp. Khi có lệch giữa hai bên, source of truth vẫn là invoice/credit note/payment record gốc; projection cần refresh hoặc reconcile.
Credit note
Credit note thường xuất hiện khi edit/cancel làm giảm nghĩa vụ tài chính sau khi invoice đã phát hành hoặc đã paid. Nó không phải “xóa invoice”; nó là chứng từ điều chỉnh để lịch sử tài chính vẫn audit được.
Ownership ngắn gọn
| Owner | Sở hữu |
|---|---|
| Billing | Payment option trên billing, split context, dữ liệu chuẩn bị sinh invoice. |
| Invoice | Header/line/status/lock của invoice. |
| CreditNote | Header/line/allocation của credit note. |
| FinanceTransaction | Projection/search state, có thể refresh từ nguồn gốc. |
| Payment | Thu tiền và provider transaction; không sở hữu invoice lifecycle. |