import { Link, useForm } from '@inertiajs/react';
import { Frame, card, button, input } from '@/pages/investment/shared';
export default function Install({
hash,
installed,
backupVerified,
qaVerified,
changes,
target,
pendingMigrations,
compatibilityVerified,
backupDate,
scanner,
rollback,
databaseReady,
baseDeskInstalled,
pathInstalled,
pathEnabled,
pathQaVerified,
}: {
hash: string;
installed: boolean;
backupVerified: boolean;
qaVerified: boolean;
changes: string[];
target: { database: string; port: number };
pendingMigrations: string[];
compatibilityVerified: boolean;
backupDate: string | null;
scanner: { available: boolean; reason_code: string | null };
rollback: string;
databaseReady: boolean;
baseDeskInstalled: boolean;
pathInstalled: boolean;
pathEnabled: boolean;
pathQaVerified: boolean;
}) {
const form = useForm({ hash, confirm: false });
const service = useForm({ code: 'project-preparation', confirm: false });
return (
Voltar ao Balcão
Consultar inventário privado e exemplares de formulários
Destino: {target.database}, porta {target.port}.
Backup/restauro: {backupDate ?? 'Pendente'}.
Balcão existente:{' '}
{baseDeskInstalled ? 'Instalado' : 'Pendente'}. Apenas as
migrations ausentes serão executadas; nenhuma instalação já
registada será repetida.
Extensão do percurso:{' '}
{pathInstalled ? 'Instalada' : 'Pendente'}.
Disponibilização:{' '}
{pathEnabled ? 'Configurada' : 'Desativada'}. Instalar não
disponibiliza o percurso, não converte dossiers antigos nem
apaga dados ou publica serviços.
Backup/restauro verificado:{' '}
{backupVerified ? 'Sim' : 'Pendente'} · QA desta versão:{' '}
{qaVerified ? 'Sim' : 'Pendente'}.
Compatibilidade e reversão em cópia restaurada:{' '}
{compatibilityVerified ? 'Verificadas' : 'Pendentes'}.
Percursos A/B completos na interface desta versão:{' '}
{pathQaVerified
? 'Demonstrados'
: 'Pendentes — API ou build não substituem a demonstração visual'}
.
Permissões da conexão para criar o esquema e estender
tarefas:{' '}
{databaseReady
? 'Disponíveis'
: 'Insuficientes — intervenção autorizada necessária'}
.
ClamD real:{' '}
{scanner.available
? 'Disponível'
: `Indisponível (${scanner.reason_code ?? 'sem evidência'})`}
. Ficheiros sem scan conclusivo continuam pendentes para
utilização segura; guardar rascunhos e preparar pedidos
mantém-se disponível.
{rollback}
Confirmação inclui o restauro isolado da base e a
integridade dos ficheiros privados. O histórico e os pedidos
existentes são preservados.
Alterações de esquema ainda necessárias
{pendingMigrations.map((name) => (
{changes.map((c) => (
Editar formulários e publicar novas versões
)} {baseDeskInstalled && ( )} ); }