app.models.invoice moduleΒΆ

Invoice, Vendor, and InvoiceLineItem ORM models.

class app.models.invoice.Invoice(**kwargs)[source]ΒΆ

Bases: UUIDPrimaryKeyMixin, Base

Extracted Invoice Data.

confidence: Mapped[Decimal | None]ΒΆ
currency: Mapped[str | None]ΒΆ
discount_amount: Mapped[Decimal | None]ΒΆ
document: Mapped[Document]ΒΆ
document_id: Mapped[UUID]ΒΆ
due_date: Mapped[date | None]ΒΆ
extracted_at: Mapped[datetime]ΒΆ
idΒΆ
invoice_date: Mapped[date | None]ΒΆ
invoice_index: Mapped[int]ΒΆ
invoice_number: Mapped[str | None]ΒΆ
line_items: Mapped[list[InvoiceLineItem]]ΒΆ
notes: Mapped[str | None]ΒΆ
page_range_end: Mapped[int | None]ΒΆ
page_range_start: Mapped[int | None]ΒΆ
processing_job: Mapped[ProcessingJob]ΒΆ
processing_job_id: Mapped[UUID]ΒΆ
raw_date_text: Mapped[str | None]ΒΆ
raw_total_text: Mapped[str | None]ΒΆ
raw_vendor_name: Mapped[str | None]ΒΆ
subtotal: Mapped[Decimal | None]ΒΆ
tax_amount: Mapped[Decimal | None]ΒΆ
total_amount: Mapped[Decimal | None]ΒΆ
updated_at: Mapped[datetime]ΒΆ
vendor: Mapped[Vendor | None]ΒΆ
vendor_id: Mapped[UUID | None]ΒΆ
class app.models.invoice.InvoiceLineItem(**kwargs)[source]ΒΆ

Bases: UUIDPrimaryKeyMixin, Base

Individual line items within an invoice.

created_at: Mapped[datetime]ΒΆ
description: Mapped[str | None]ΒΆ
id: Mapped[UUID]ΒΆ
invoice: Mapped[Invoice]ΒΆ
invoice_id: Mapped[UUID]ΒΆ
line_number: Mapped[int]ΒΆ
line_total: Mapped[Decimal | None]ΒΆ
quantity: Mapped[Decimal | None]ΒΆ
sku: Mapped[str | None]ΒΆ
tax_amount: Mapped[Decimal | None]ΒΆ
tax_rate: Mapped[Decimal | None]ΒΆ
unit_of_measure: Mapped[str | None]ΒΆ
unit_price: Mapped[Decimal | None]ΒΆ
class app.models.invoice.Vendor(**kwargs)[source]ΒΆ

Bases: UUIDPrimaryKeyMixin, Base

Normalized vendor registry.

canonical_name: Mapped[str]ΒΆ
country: Mapped[str | None]ΒΆ
created_at: Mapped[datetime]ΒΆ
id: Mapped[UUID]ΒΆ
invoices: Mapped[list[Invoice]]ΒΆ
raw_names: Mapped[list[str]]ΒΆ
tax_id: Mapped[str | None]ΒΆ
updated_at: Mapped[datetime]ΒΆ