"""Canonical document types and identifier kinds for the FDI platform."""

from __future__ import annotations

from typing import Literal

DocType = Literal[
    "bank_statement",
    "credit_card_statement",
    "upi_statement",
    "invoice",
    "bill",
    "gst_return",
    "payslip",
    "tax_document",
    "mutual_fund_cas",
    "insurance_policy",
    "loan_statement",
    "balance_sheet",
    "profit_and_loss",
    "cash_flow",
    "receipt",
    "purchase_order",
    "expense_report",
    "general_ledger",
    "trial_balance",
    "annual_report",
    "unknown",
]

DOC_TYPES: tuple[str, ...] = (
    "bank_statement",
    "credit_card_statement",
    "upi_statement",
    "invoice",
    "bill",
    "gst_return",
    "payslip",
    "tax_document",
    "mutual_fund_cas",
    "insurance_policy",
    "loan_statement",
    "balance_sheet",
    "profit_and_loss",
    "cash_flow",
    "receipt",
    "purchase_order",
    "expense_report",
    "general_ledger",
    "trial_balance",
    "annual_report",
    "unknown",
)

IdType = Literal[
    "GSTIN",
    "PAN",
    "INVOICE_NO",
    "UTR",
    "TXN_ID",
    "UPI_REF",
    "IFSC",
    "ACCOUNT",
    "CARD",
    "POLICY",
    "LOAN",
    "SWIFT",
    "CIN",
    "FOLIO",
    "OTHER",
]

Intent = Literal[
    "assistant_identity",
    "assistant_capability",
    "general_chat",
    "general_knowledge",
    "corpus_inventory",
    "lookup_fact",
    "lookup_id",
    "lookup_entity",
    "aggregate",
    "timeline",
    "compare",
    "reconcile",
    "explain",
    "advise",
    "summarize",
    "unknown",
]

EventClass = Literal[
    "payment",
    "receipt",
    "transfer",
    "invoice_line",
    "salary",
    "premium",
    "nav",
    "emi",
    "tax",
    "journal",
    "fee",
    "other",
]
