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:
VPS 4 Builder
2026-05-14 05:02:49 +02:00
parent 2a284f9e6e
commit c70b2cde66
5 changed files with 12 additions and 17 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
{
"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": []
}
+6 -11
View File
@@ -32,12 +32,8 @@ const apiFetch = async (url: string, options: RequestInit = {}) => {
};
export const HybridBackend = {
// Configurações do Banco de Dados fornecidas
dbConfig: {
host: 'localhost',
user: 'root', // Exemplo
password: '',
database: 'sis_odonto'
database: 'scoreodonto'
},
// --- AUTH METHODS ---
@@ -161,16 +157,15 @@ export const HybridBackend = {
" SCOREODONTO - ATUALIZADOR DE BANCO DE DADOS ",
"--------------------------------------------------",
"[INFO] VERIFICANDO AMBIENTE...",
"[OK] AMBIENTE MYSQL DETECTADO.",
"[OK] AMBIENTE POSTGRESQL DETECTADO.",
`[INFO] CONECTANDO DB: ${HybridBackend.dbConfig.database}...`,
`[INFO] CREDENCIAIS VERIFICADAS (SENHA: ******)`,
"[INFO] INICIANDO BACKUP DE SEGURANCA...",
`[OK] BACKUP SALVO EM: ./bkp_database/BKP_${new Date().toISOString().replace(/[:.]/g, '-')}.SQL`,
"[INFO] CONECTANDO API GOOGLE SHEETS...",
"[INFO] LENDO PLANILHA: 'Dados Pacientes'...",
" > 1.240 LINHAS ENCONTRADAS.",
" > VALIDANDO DADOS (CPF, TELEFONE)...",
"[INFO] SINCRONIZANDO COM MYSQL (sis_odonto)...",
"[INFO] SINCRONIZANDO COM POSTGRESQL (scoreodonto)...",
" > FORCANDO PADRAO 'UPPERCASE' EM TODOS OS CAMPOS TEXTUAIS...",
" > ATUALIZANDO TABELA: PACIENTES...",
" > ATUALIZANDO TABELA: FINANCEIRO...",
@@ -190,16 +185,16 @@ export const HybridBackend = {
return true;
},
syncGoogleSheetsToMysql: async (onProgress: (log: string) => void) => {
syncGoogleSheetsToPg: async (onProgress: (log: string) => void) => {
onProgress("INICIANDO CONEXÃO COM GOOGLE SHEETS...");
await new Promise(r => setTimeout(r, 800));
onProgress("LENDO ABA 'DADOS PACIENTES'...");
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));
onProgress("COMPARANDO REGISTROS (HASH CHECK)...");
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...");
await new Promise(r => setTimeout(r, 500));
onProgress("SINCRONIZAÇÃO CONCLUÍDA COM SUCESSO!");
+3 -3
View File
@@ -858,7 +858,7 @@ export const SyncView: React.FC = () => {
setSyncing(true);
setLogs([]);
try {
await HybridBackend.syncGoogleSheetsToMysql((log) => {
await HybridBackend.syncGoogleSheetsToPg((log) => {
setLogs(prev => [...prev, `[${new Date().toLocaleTimeString()}] ${log}`]);
});
toast.success("SINCRONIZAÇÃO CONCLUÍDA COM SUCESSO!");
@@ -871,7 +871,7 @@ export const SyncView: React.FC = () => {
return (
<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
onClick={startSync}
disabled={syncing}
@@ -898,7 +898,7 @@ export const SyncView: React.FC = () => {
<div>
<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">
ESTA AÇÃO TODOS OS DADOS DA PLANILHA MESTRE E ATUALIZA O BANCO DE DADOS MYSQL LOCAL.
ESTA AÇÃO 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.
</p>
</div>
+1 -1
View File
@@ -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">
{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>}
{displayedPacientes && displayedPacientes.map(p => (
+1 -1
View File
@@ -52,7 +52,7 @@ export const UpdateDbView: React.FC = () => {
<div>
<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">
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>
</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">