feat: CMS com limites de caracteres, traduções auto e painel de notificações

This commit is contained in:
Erik
2025-11-27 12:05:23 -03:00
parent ea0c4ac5a6
commit 6e32ffdc95
40 changed files with 3665 additions and 278 deletions

View File

@@ -0,0 +1,49 @@
// Script para migrar dados existentes de PageContent para o novo formato com locale
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function main() {
console.log('🔄 Migrando dados para incluir locale...\n');
// Buscar todos os registros que não têm locale definido ou têm locale null
const pages = await prisma.pageContent.findMany();
console.log(`📄 Encontrados ${pages.length} registros de PageContent\n`);
for (const page of pages) {
// Se o registro já tem locale 'pt' e está no formato correto, pular
if (page.locale === 'pt') {
console.log(`✓ "${page.slug}" (${page.locale}) - já migrado`);
continue;
}
// Se tem locale diferente de pt, pular também (já foi migrado)
if (page.locale && ['en', 'es'].includes(page.locale)) {
console.log(`✓ "${page.slug}" (${page.locale}) - já é tradução`);
continue;
}
// Atualizar para ter locale 'pt'
try {
await prisma.pageContent.update({
where: { id: page.id },
data: { locale: 'pt' }
});
console.log(`✅ "${page.slug}" - atualizado para locale 'pt'`);
} catch (error) {
console.error(`❌ Erro ao atualizar "${page.slug}":`, error.message);
}
}
console.log('\n✨ Migração concluída!');
}
main()
.catch((e) => {
console.error('Erro na migração:', e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});