{
  "table": {
    "column": {
      "action": "Action"
    }
  },
  "billing": {
    "quickFilter": {
      "title": "Quick Filters",
      "all": "All",
      "pending": "Pending",
      "paid": "Paid",
      "overdue": "Overdue",
      "cancelled": "Cancelled"
    },
    "search": {
      "tenant": "Tenant",
      "tenantPlaceholder": "Select tenant (optional)",
      "billingType": "Bill Type",
      "billingTypePlaceholder": "Select bill type",
      "status": "Status",
      "statusPlaceholder": "Select status",
      "dateRange": "Date range",
      "dateRangePlaceholder": "Select date range",
      "amountRange": "Amount Range",
      "minAmountPlaceholder": "Min amount",
      "maxAmountPlaceholder": "Max amount",
      "keyword": "Keyword",
      "keywordPlaceholder": "Statement no / tenant name"
    },
    "action": {
      "export": "Export",
      "exportPdf": "Export PDF",
      "create": "Create",
      "detail": "Detail",
      "cancel": "Cancel",
      "recordPayment": "Confirm Payment",
      "verifyPayment": "Verify Payment",
      "addLineItem": "Add line item",
      "uploadProof": "Upload proof"
    },
    "dialog": {
      "createTitle": "Create Bill",
      "recordPaymentTitle": "Confirm Payment",
      "proofPreviewTitle": "Proof Preview"
    },
    "field": {
      "statementNo": "Statement No",
      "tenantName": "Tenant",
      "billingType": "Bill Type",
      "amount": "Amount",
      "amountDue": "Amount Due",
      "amountPaid": "Amount Paid",
      "status": "Status",
      "dueDate": "Due date",
      "createdAt": "Created at",
      "periodStart": "Period start",
      "periodEnd": "Period end",
      "notes": "Notes"
    },
    "drawer": {
      "tabs": {
        "basic": "Basic",
        "lineItems": "Line Items",
        "payments": "Payments",
        "statusFlow": "Status Flow"
      },
      "title": "Bill Detail",
      "basicInfo": "Basic info",
      "paymentList": "Payment records",
      "openProof": "Open proof",
      "noPayments": "No payment records",
      "noStatusFlow": "No status flow records"
    },
    "view": {
      "timeline": "Timeline",
      "table": "Table"
    },
    "status": {
      "draft": "Draft",
      "pending": "Pending",
      "paid": "Paid",
      "overdue": "Overdue",
      "cancelled": "Cancelled"
    },
    "statusFlow": {
      "created": "Created",
      "due": "Due",
      "paid": "Paid",
      "overdue": "Overdue",
      "cancelled": "Cancelled"
    },
    "lineItem": {
      "itemType": "Type",
      "description": "Description",
      "quantity": "Qty",
      "unitPrice": "Unit Price",
      "amount": "Amount"
    },
    "billingType": {
      "subscription": "Subscription",
      "quotaPurchase": "Quota Purchase",
      "manual": "Manual",
      "renewal": "Renewal"
    },
    "placeholder": {
      "enterItemType": "Enter type",
      "enterDescription": "Enter description",
      "selectTenant": "Select tenant",
      "selectBillingType": "Select bill type",
      "selectDueDate": "Select due date",
      "enterNotes": "Enter notes (optional)",
      "selectPaymentMethod": "Select payment method",
      "enterPaymentAmount": "Enter payment amount",
      "enterTransactionNo": "Enter transaction no (optional)",
      "enterPaymentNotes": "Enter notes (optional)"
    },
    "hint": {
      "amountAutoSum": "Amount is auto-calculated from line items"
    },
    "validation": {
      "tenantRequired": "Please select tenant",
      "billingTypeRequired": "Please select bill type",
      "dueDateRequired": "Please select due date",
      "lineItemsRequired": "Please add at least one line item",
      "lineItemDescriptionRequired": "Line item #{index}: description is required",
      "lineItemQuantityInvalid": "Line item #{index}: quantity is invalid",
      "lineItemUnitPriceInvalid": "Line item #{index}: unit price is invalid",
      "amountMin": "Amount due must be greater than 0",
      "paymentAmountRequired": "Please enter payment amount",
      "paymentAmountMin": "Payment amount must be greater than 0",
      "paymentAmountExceedRemain": "Payment amount cannot exceed remaining amount",
      "paymentMethodRequired": "Please select payment method"
    },
    "message": {
      "exportFailed": "Export failed, please retry",
      "exportNoData": "No data to export",
      "exportSuccess": "Export successful",
      "exportExcelSuccess": "Exported {count} rows",
      "exportPdfNeedSingleSelection": "Export PDF supports single selection only",
      "exportPdfOpened": "PDF opened in a new window",
      "exportPdfPopupBlocked": "Popup blocked by browser, please allow popups and retry",
      "batchMarkPaidSuccess": "Batch marked as paid",
      "batchMarkPaidNotes": "Batch marked as paid",
      "batchNoPending": "No pending bills selected",
      "batchCancelNotes": "Batch cancelled",
      "batchCancelSuccess": "Batch cancelled successfully",
      "cancelByAdmin": "Cancelled by admin",
      "cancelConfirm": "Cancel this bill?",
      "cancelSuccess": "Cancelled",
      "createSuccess": "Created successfully",
      "loadDetailFailed": "Failed to load bill detail",
      "recordPaymentSuccess": "Payment confirmed",
      "verifyPaymentSuccess": "Payment verified",
      "verifyPaymentConfirm": "Are you sure to verify this payment? After verification, the paid amount of the bill will be updated accordingly.",
      "proofTypeNotAllowed": "Only JPG/PNG images are allowed",
      "proofTooLarge": "File is too large (max {size}MB)",
      "proofUploadSuccess": "Proof uploaded",
      "sortFieldNotSupported": "Sort field is not supported",
      "generatingPdf": "Generating PDF, please wait...",
      "exportCancelled": "Export cancelled"
    },
    "batch": {
      "confirmPayment": "Confirm Payment",
      "confirmPaymentTip": "Mark selected pending bills as paid",
      "cancel": "Batch Cancel",
      "cancelTip": "Cancel selected bills (irreversible)",
      "export": "Batch Export",
      "selectedCount": "Selected {count}"
    },
    "payment": {
      "amount": "Amount",
      "remainAmount": "Remaining",
      "method": "Method",
      "transactionNo": "Transaction No",
      "proofUrl": "Proof",
      "proofUploadHint": "JPG/PNG, single file ≤ 10MB",
      "paidAt": "Paid at",
      "notes": "Notes",
      "status": "Status"
    },
    "paymentMethod": {
      "online": "Online",
      "bankTransfer": "Bank transfer",
      "other": "Other"
    },
    "paymentStatus": {
      "pending": "Pending",
      "success": "Success",
      "failed": "Failed",
      "refunded": "Refunded"
    },
    "export": {
      "title": "Export Bills",
      "format": "Format",
      "formatExcel": "Excel",
      "formatPdf": "PDF",
      "formatCsv": "CSV",
      "scope": "Scope",
      "currentPage": "Current page",
      "selected": "Selected",
      "all": "All",
      "fields": "Fields",
      "dateRange": "Date range",
      "dateRangePlaceholder": "Select date range",
      "confirm": "Export",
      "sheetName": "Bills",
      "fileName": "billing_export",
      "noPayments": "No payment records",
      "formatRequired": "Please select format",
      "scopeRequired": "Please select scope",
      "fieldsRequired": "Please select at least one field"
    },
    "statistics": {
      "title": "Billing Statistics",
      "startDate": "Start date",
      "endDate": "End date",
      "groupBy": {
        "day": "Daily",
        "week": "Weekly",
        "month": "Monthly"
      },
      "totalRevenue": "Collected",
      "pendingAmount": "Uncollected",
      "overdueAmount": "Overdue",
      "totalAmountDue": "Amount Due",
      "statusDistribution": "Status Distribution",
      "paymentMethodDistribution": "Payment Method Share",
      "paymentMethodNoData": "No payment method data",
      "revenueTrend": "Revenue Trend",
      "topDebtors": "Top Debtors",
      "overdueDays": "Overdue Days"
    },
    "timeline": {
      "created": "Created",
      "dueDate": "Due date",
      "overdueByDays": "Overdue by {days} days",
      "payment": "Payment",
      "paymentDesc": "{method} ${amount}",
      "currentStatus": "Current status: {status}",
      "currentStatusDesc": "Current status is authoritative"
    }
  }
}
