fix(ui): replace all MySQL references with PostgreSQL
Update SyncView description, security note, mock progress logs, dbConfig, loading text in PatientsView, UpdateDbView warning, and metadata.json description. Rename syncGoogleSheetsToMysql → syncGoogleSheetsToPg. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "ScoreOdonto CRM",
|
"name": "ScoreOdonto CRM",
|
||||||
"description": "Sistema de gerenciamento para clínica odontológica com integração híbrida (MySQL + Google Sheets) e design moderno.",
|
"description": "Sistema de gerenciamento para clínica odontológica com integração híbrida (PostgreSQL + Google Sheets) e design moderno.",
|
||||||
"requestFramePermissions": []
|
"requestFramePermissions": []
|
||||||
}
|
}
|
||||||
@@ -32,12 +32,8 @@ const apiFetch = async (url: string, options: RequestInit = {}) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const HybridBackend = {
|
export const HybridBackend = {
|
||||||
// Configurações do Banco de Dados fornecidas
|
|
||||||
dbConfig: {
|
dbConfig: {
|
||||||
host: 'localhost',
|
database: 'scoreodonto'
|
||||||
user: 'root', // Exemplo
|
|
||||||
password: '',
|
|
||||||
database: 'sis_odonto'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// --- AUTH METHODS ---
|
// --- AUTH METHODS ---
|
||||||
@@ -161,16 +157,15 @@ export const HybridBackend = {
|
|||||||
" SCOREODONTO - ATUALIZADOR DE BANCO DE DADOS ",
|
" SCOREODONTO - ATUALIZADOR DE BANCO DE DADOS ",
|
||||||
"--------------------------------------------------",
|
"--------------------------------------------------",
|
||||||
"[INFO] VERIFICANDO AMBIENTE...",
|
"[INFO] VERIFICANDO AMBIENTE...",
|
||||||
"[OK] AMBIENTE MYSQL DETECTADO.",
|
"[OK] AMBIENTE POSTGRESQL DETECTADO.",
|
||||||
`[INFO] CONECTANDO DB: ${HybridBackend.dbConfig.database}...`,
|
`[INFO] CONECTANDO DB: ${HybridBackend.dbConfig.database}...`,
|
||||||
`[INFO] CREDENCIAIS VERIFICADAS (SENHA: ******)`,
|
|
||||||
"[INFO] INICIANDO BACKUP DE SEGURANCA...",
|
"[INFO] INICIANDO BACKUP DE SEGURANCA...",
|
||||||
`[OK] BACKUP SALVO EM: ./bkp_database/BKP_${new Date().toISOString().replace(/[:.]/g, '-')}.SQL`,
|
`[OK] BACKUP SALVO EM: ./bkp_database/BKP_${new Date().toISOString().replace(/[:.]/g, '-')}.SQL`,
|
||||||
"[INFO] CONECTANDO API GOOGLE SHEETS...",
|
"[INFO] CONECTANDO API GOOGLE SHEETS...",
|
||||||
"[INFO] LENDO PLANILHA: 'Dados Pacientes'...",
|
"[INFO] LENDO PLANILHA: 'Dados Pacientes'...",
|
||||||
" > 1.240 LINHAS ENCONTRADAS.",
|
" > 1.240 LINHAS ENCONTRADAS.",
|
||||||
" > VALIDANDO DADOS (CPF, TELEFONE)...",
|
" > VALIDANDO DADOS (CPF, TELEFONE)...",
|
||||||
"[INFO] SINCRONIZANDO COM MYSQL (sis_odonto)...",
|
"[INFO] SINCRONIZANDO COM POSTGRESQL (scoreodonto)...",
|
||||||
" > FORCANDO PADRAO 'UPPERCASE' EM TODOS OS CAMPOS TEXTUAIS...",
|
" > FORCANDO PADRAO 'UPPERCASE' EM TODOS OS CAMPOS TEXTUAIS...",
|
||||||
" > ATUALIZANDO TABELA: PACIENTES...",
|
" > ATUALIZANDO TABELA: PACIENTES...",
|
||||||
" > ATUALIZANDO TABELA: FINANCEIRO...",
|
" > ATUALIZANDO TABELA: FINANCEIRO...",
|
||||||
@@ -190,16 +185,16 @@ export const HybridBackend = {
|
|||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
|
|
||||||
syncGoogleSheetsToMysql: async (onProgress: (log: string) => void) => {
|
syncGoogleSheetsToPg: async (onProgress: (log: string) => void) => {
|
||||||
onProgress("INICIANDO CONEXÃO COM GOOGLE SHEETS...");
|
onProgress("INICIANDO CONEXÃO COM GOOGLE SHEETS...");
|
||||||
await new Promise(r => setTimeout(r, 800));
|
await new Promise(r => setTimeout(r, 800));
|
||||||
onProgress("LENDO ABA 'DADOS PACIENTES'...");
|
onProgress("LENDO ABA 'DADOS PACIENTES'...");
|
||||||
await new Promise(r => setTimeout(r, 800));
|
await new Promise(r => setTimeout(r, 800));
|
||||||
onProgress(`CONECTANDO AO MYSQL (${HybridBackend.dbConfig.database})...`);
|
onProgress(`CONECTANDO AO POSTGRESQL (${HybridBackend.dbConfig.database})...`);
|
||||||
await new Promise(r => setTimeout(r, 800));
|
await new Promise(r => setTimeout(r, 800));
|
||||||
onProgress("COMPARANDO REGISTROS (HASH CHECK)...");
|
onProgress("COMPARANDO REGISTROS (HASH CHECK)...");
|
||||||
await new Promise(r => setTimeout(r, 1000));
|
await new Promise(r => setTimeout(r, 1000));
|
||||||
onProgress("INSERINDO 2 NOVOS PACIENTES NO MYSQL...");
|
onProgress("INSERINDO 2 NOVOS PACIENTES NO POSTGRESQL...");
|
||||||
onProgress("ATUALIZANDO 4 AGENDAMENTOS...");
|
onProgress("ATUALIZANDO 4 AGENDAMENTOS...");
|
||||||
await new Promise(r => setTimeout(r, 500));
|
await new Promise(r => setTimeout(r, 500));
|
||||||
onProgress("SINCRONIZAÇÃO CONCLUÍDA COM SUCESSO!");
|
onProgress("SINCRONIZAÇÃO CONCLUÍDA COM SUCESSO!");
|
||||||
|
|||||||
@@ -858,7 +858,7 @@ export const SyncView: React.FC = () => {
|
|||||||
setSyncing(true);
|
setSyncing(true);
|
||||||
setLogs([]);
|
setLogs([]);
|
||||||
try {
|
try {
|
||||||
await HybridBackend.syncGoogleSheetsToMysql((log) => {
|
await HybridBackend.syncGoogleSheetsToPg((log) => {
|
||||||
setLogs(prev => [...prev, `[${new Date().toLocaleTimeString()}] ${log}`]);
|
setLogs(prev => [...prev, `[${new Date().toLocaleTimeString()}] ${log}`]);
|
||||||
});
|
});
|
||||||
toast.success("SINCRONIZAÇÃO CONCLUÍDA COM SUCESSO!");
|
toast.success("SINCRONIZAÇÃO CONCLUÍDA COM SUCESSO!");
|
||||||
@@ -871,7 +871,7 @@ export const SyncView: React.FC = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="max-w-4xl mx-auto space-y-6">
|
<div className="max-w-4xl mx-auto space-y-6">
|
||||||
<PageHeader title="IMPORTAÇÃO E SINCRONIZAÇÃO" description="GOOGLE SHEETS ➔ MYSQL (SIS_ODONTO)">
|
<PageHeader title="IMPORTAÇÃO E SINCRONIZAÇÃO" description="GOOGLE SHEETS ➔ POSTGRESQL">
|
||||||
<button
|
<button
|
||||||
onClick={startSync}
|
onClick={startSync}
|
||||||
disabled={syncing}
|
disabled={syncing}
|
||||||
@@ -898,7 +898,7 @@ export const SyncView: React.FC = () => {
|
|||||||
<div>
|
<div>
|
||||||
<h4 className="text-sm font-bold text-yellow-800 uppercase">NOTA DE SEGURANÇA</h4>
|
<h4 className="text-sm font-bold text-yellow-800 uppercase">NOTA DE SEGURANÇA</h4>
|
||||||
<p className="text-xs text-yellow-700 mt-1 uppercase font-medium">
|
<p className="text-xs text-yellow-700 mt-1 uppercase font-medium">
|
||||||
ESTA AÇÃO LÊ TODOS OS DADOS DA PLANILHA MESTRE E ATUALIZA O BANCO DE DADOS MYSQL LOCAL.
|
ESTA AÇÃO LÊ TODOS OS DADOS DA PLANILHA MESTRE E ATUALIZA O BANCO DE DADOS POSTGRESQL.
|
||||||
O GOOGLE SHEETS PERMANECE COMO FONTE SEGURA DE BACKUP. CONFLITOS SERÃO RESOLVIDOS PRIORIZANDO A DATA DE MODIFICAÇÃO MAIS RECENTE.
|
O GOOGLE SHEETS PERMANECE COMO FONTE SEGURA DE BACKUP. CONFLITOS SERÃO RESOLVIDOS PRIORIZANDO A DATA DE MODIFICAÇÃO MAIS RECENTE.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -463,7 +463,7 @@ export const PatientsView: React.FC = () => {
|
|||||||
)}
|
)}
|
||||||
|
|
||||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 overflow-y-auto pb-10">
|
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 overflow-y-auto pb-10">
|
||||||
{isLoading && <div className="col-span-3 text-center p-10 text-gray-500 uppercase font-bold flex justify-center items-center gap-2"><Loader2 className="animate-spin" /> CARREGANDO DADOS DO MYSQL...</div>}
|
{isLoading && <div className="col-span-3 text-center p-10 text-gray-500 uppercase font-bold flex justify-center items-center gap-2"><Loader2 className="animate-spin" /> CARREGANDO DADOS DO POSTGRESQL...</div>}
|
||||||
{error && <div className="col-span-3 text-center p-10 text-red-600 uppercase font-bold">ERRO AO CARREGAR: {error.message}</div>}
|
{error && <div className="col-span-3 text-center p-10 text-red-600 uppercase font-bold">ERRO AO CARREGAR: {error.message}</div>}
|
||||||
|
|
||||||
{displayedPacientes && displayedPacientes.map(p => (
|
{displayedPacientes && displayedPacientes.map(p => (
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ export const UpdateDbView: React.FC = () => {
|
|||||||
<div>
|
<div>
|
||||||
<h2 className="text-lg font-bold text-gray-800 uppercase">SCRIPT DE ATUALIZAÇÃO (SH/UPDATE_DB.SH)</h2>
|
<h2 className="text-lg font-bold text-gray-800 uppercase">SCRIPT DE ATUALIZAÇÃO (SH/UPDATE_DB.SH)</h2>
|
||||||
<p className="text-gray-500 text-sm mt-2 max-w-md mx-auto uppercase">
|
<p className="text-gray-500 text-sm mt-2 max-w-md mx-auto uppercase">
|
||||||
ESTA AÇÃO IRÁ LER A PLANILHA "DADOS PACIENTES", GERAR UM BACKUP SQL E ATUALIZAR AS TABELAS DO MYSQL.
|
ESTA AÇÃO IRÁ LER A PLANILHA "DADOS PACIENTES", GERAR UM BACKUP SQL E ATUALIZAR AS TABELAS DO POSTGRESQL.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="bg-gray-800 text-green-400 p-4 rounded-lg font-mono text-sm text-left max-w-md mx-auto shadow-inner">
|
<div className="bg-gray-800 text-green-400 p-4 rounded-lg font-mono text-sm text-left max-w-md mx-auto shadow-inner">
|
||||||
|
|||||||
Reference in New Issue
Block a user