'use client';

import Link from 'next/link';
import { Alert, Button, Space, Typography } from 'antd';
import { ExternalLink } from 'lucide-react';
import { ICON_SIZE_SM } from '@/components/icons';
import { ProjetoCursorUserTokenSection } from '@/features/projetos/projeto-cursor-user-token';
import type { ConectarPassoDto } from './types';

const { Text } = Typography;

type Props = {
    projetoId: string;
    passo: ConectarPassoDto;
};

/**
 * Painel do passo Cursor Pack — token pessoal + link ao guia (ADR-0085 / S4).
 */
export function ConectarCursorPassoPanel({ projetoId, passo }: Props) {
    const userTokenOk = passo.sinais.user_token_configurado === true;
    const guia =
        typeof passo.links.guia_cursor_pack === 'string'
            ? passo.links.guia_cursor_pack
            : `/projetos/${projetoId}/desenvolvimento/guia-cursor-pack`;

    return (
        <Space direction="vertical" size="middle" style={{ width: '100%' }}>
            {userTokenOk ? (
                <Alert
                    type="success"
                    showIcon
                    message="Token pessoal Cursor configurado"
                    description="Você já tem um token ativo. Use-o no .cursor/config.local.json (chave user_token)."
                />
            ) : (
                <Alert
                    type="warning"
                    showIcon
                    message="Gere o seu token pessoal"
                    description={
                        <>
                            Sem <Text code>X-Cursor-User-Token</Text>, as ações no Cursor não têm
                            autor verificável. Gere abaixo e copie para o pack.
                        </>
                    }
                />
            )}

            <ProjetoCursorUserTokenSection projetoId={projetoId} />

            <Space wrap>
                <Link href={guia}>
                    <Button type="primary" icon={<ExternalLink size={ICON_SIZE_SM} />}>
                        Abrir guia Cursor Pack
                    </Button>
                </Link>
            </Space>
        </Space>
    );
}
