Source code for kittycad.models.invoice

import datetime
from typing import Dict, List, Optional

from pydantic import BaseModel, ConfigDict

from ..models.currency import Currency
from ..models.discount import Discount
from ..models.invoice_line_item import InvoiceLineItem
from ..models.invoice_status import InvoiceStatus


[docs] class Invoice(BaseModel): """An invoice.""" amount_due: float = 0.0 amount_paid: float = 0.0 amount_remaining: float = 0.0 attempt_count: int = 0 attempted: bool = False created_at: datetime.datetime currency: Currency = "usd" # type: ignore customer_email: Optional[str] = None customer_id: Optional[str] = None default_payment_method: Optional[str] = None description: Optional[str] = None discounts: Optional[List[Discount]] = None id: Optional[str] = None lines: Optional[List[InvoiceLineItem]] = None metadata: Dict[str, str] = {} number: Optional[str] = None paid: bool = False pdf: Optional[str] = None receipt_number: Optional[str] = None statement_descriptor: Optional[str] = None status: Optional[InvoiceStatus] = None subtotal: float = 0.0 tax: float = 0.0 total: float = 0.0 url: Optional[str] = None model_config = ConfigDict(protected_namespaces=())