This is a solid definition for an Invoice entity. The statuses cover the main scenarios.
Recommendation:
Consider adding a dueDate field.
An invoice is typically composed of multiple InvoiceLineItem records (e.g., one line for the base plan, one for user overages, one for a proration credit). This provides clarity and makes generating invoice PDFs much easier.
This is a solid definition for an Invoice entity. The statuses cover the main scenarios.
Recommendation:
Consider adding a dueDate field.
An invoice is typically composed of multiple InvoiceLineItem records (e.g., one line for the base plan, one for user overages, one for a proration credit). This provides clarity and makes generating invoice PDFs much easier.