export type DocumentTaxTreatment = 'exclusive' | 'inclusive' | 'exempt' | 'zero_rated'

export type DocumentType = 'invoice' | 'receipt' | 'invoice_receipt' | 'credit_note'

export interface CustomerParty {
  name: string
  email?: string
  taxId?: string
}

export interface DocumentLineItem {
  description: string
  quantity: number
  unitAmountMinor: bigint
  taxTreatment: DocumentTaxTreatment
  vatRateBasisPoints: number
}

export interface DocumentSpec {
  customer: CustomerParty
  lineItems: DocumentLineItem[]
  currency: string
  idempotencyKey: string
  docType: DocumentType
  lang?: string
}

export interface InvoiceDocumentResult {
  documentId: string
  documentNumber: string
  documentUrl: string
}
