'use client';

import { Alert } from 'antd';
import {
    avaliarDescontoTeto,
    type DescontoTetoInput,
} from '../descontoTeto';

export type PropostaDescontoTetoAlertProps = DescontoTetoInput & {
    style?: React.CSSProperties;
};

/**
 * Aviso X10 — desconto acima do teto do vendedor antes de enviar.
 */
export function PropostaDescontoTetoAlert(props: PropostaDescontoTetoAlertProps) {
    const { style, ...input } = props;
    const result = avaliarDescontoTeto(input);
    if (!result.acimaDoTeto || !result.mensagem) return null;

    return (
        <Alert
            type={result.bloqueiaEnviar ? 'error' : 'warning'}
            showIcon
            style={{ marginBottom: 16, ...style }}
            message={
                result.bloqueiaEnviar
                    ? 'Desconto acima do teto — envio bloqueado'
                    : 'Desconto acima do teto (aprovado)'
            }
            description={result.mensagem}
            data-testid="crm-proposta-desconto-teto-alert"
        />
    );
}
