import type { ComponentProps } from 'react';
import { Badge } from '@/components/ui/badge';
import type { DocumentAccountingClassification } from '@/features/documents/types';
import { cn } from '@/lib/utils';

type BadgeVariant = ComponentProps<typeof Badge>['variant'];

const classificationConfig: Record<
    DocumentAccountingClassification,
    { variant: BadgeVariant; className?: string }
> = {
    pending: { variant: 'secondarySoft' },
    accounting: { variant: 'successSoft' },
    non_accounting: {
        variant: 'outline',
        className: 'border-amber-500/40 bg-amber-500/10 text-amber-800 dark:text-amber-200',
    },
};

export function DocumentAccountingClassificationBadge({
    classification,
    label,
    className,
}: {
    classification: DocumentAccountingClassification;
    label: string;
    className?: string;
}) {
    const config = classificationConfig[classification];

    return (
        <Badge variant={config.variant} className={cn('font-normal', config.className, className)}>
            {label}
        </Badge>
    );
}
