import type { FilterDefinition } from '@/components/shared/filter-bar';
import { EXPENSE_CATEGORIES, formatEnum } from '@/lib/constants';

export const expenseFilterDefinitions: FilterDefinition[] = [
  {
    key: 'search',
    label: 'Search',
    type: 'text',
    placeholder: 'Search by establishment or description...',
  },
  {
    key: 'category',
    label: 'Category',
    type: 'multi-select',
    options: EXPENSE_CATEGORIES.map((c) => ({
      label: formatEnum(c),
      value: c,
    })),
  },
  {
    key: 'paymentStatus',
    label: 'Payment Status',
    type: 'select',
    options: [
      { label: 'Unpaid', value: 'unpaid' },
      { label: 'Paid', value: 'paid' },
      { label: 'Partial', value: 'partial' },
    ],
  },
  {
    key: 'dateFrom',
    label: 'Date From',
    type: 'text',
    placeholder: 'YYYY-MM-DD',
  },
  {
    key: 'dateTo',
    label: 'Date To',
    type: 'text',
    placeholder: 'YYYY-MM-DD',
  },
  {
    key: 'currency',
    label: 'Currency',
    type: 'text',
    placeholder: 'e.g. USD, EUR',
  },
  {
    key: 'tripLabel',
    label: 'Trip / event',
    type: 'text',
    placeholder: 'e.g. Palm Beach 2026',
  },
  {
    key: 'includeArchived',
    label: 'Include Archived',
    type: 'boolean',
  },
];
