Cleanup: backups antigos removidos + dashboard config + HANDOFF/log
- Remove database-novo/backups/2026-03-27 e 2026-03-29 (deveriam estar no gitignore, mas haviam sido tracked antes) - Atualiza db.config.json + generate-dashboard.cjs + dashboard.html - HANDOFF.md atualizado com estado de 05-05 (sprint blueprint tabular + arquivamento de pacientes) - Obsidian/Brain/log.md: entrada da sessao 05-05 adicionada Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -132,7 +132,7 @@
|
||||
"notification_templates", "notification_channels", "notification_preferences",
|
||||
"notification_logs", "notification_schedules", "notification_queue",
|
||||
"notifications", "notice_dismissals", "global_notices", "login_carousel_slides",
|
||||
"twilio_subaccount_usage"
|
||||
"twilio_subaccount_usage", "saas_twilio_config"
|
||||
],
|
||||
"CRM Conversas (WhatsApp)": [
|
||||
"conversation_messages", "conversation_threads",
|
||||
@@ -140,14 +140,30 @@
|
||||
"conversation_tags", "conversation_thread_tags",
|
||||
"conversation_optouts", "conversation_optout_keywords",
|
||||
"conversation_autoreply_settings", "conversation_autoreply_log",
|
||||
"session_reminder_settings", "session_reminder_logs"
|
||||
"session_reminder_settings", "session_reminder_logs",
|
||||
"conversation_assignments",
|
||||
"conversation_bots", "conversation_bot_sessions",
|
||||
"conversation_sla_rules", "conversation_sla_breaches",
|
||||
"whatsapp_connection_incidents"
|
||||
],
|
||||
"Segurança / Rate limiting": [
|
||||
"submission_rate_limits"
|
||||
"Segurança / Auditoria": [
|
||||
"submission_rate_limits",
|
||||
"audit_logs",
|
||||
"saas_security_config",
|
||||
"math_challenges",
|
||||
"patient_invite_attempts",
|
||||
"public_submission_attempts"
|
||||
],
|
||||
"Central SaaS (docs/FAQ)": [
|
||||
"saas_docs", "saas_doc_votos", "saas_faq", "saas_faq_itens"
|
||||
],
|
||||
"Dev / Tracking": [
|
||||
"dev_auditoria_items", "dev_verificacoes_items", "dev_test_items",
|
||||
"dev_roadmap_phases", "dev_roadmap_items",
|
||||
"dev_competitors", "dev_competitor_features",
|
||||
"dev_comparison_matrix", "dev_comparison_competitor_status",
|
||||
"dev_generation_log"
|
||||
],
|
||||
"Estrutura / Calendário": [
|
||||
"feriados"
|
||||
]
|
||||
@@ -163,8 +179,9 @@
|
||||
"Documentos": "#0ea5e9",
|
||||
"Comunicação / Notificações": "#fbbf24",
|
||||
"CRM Conversas (WhatsApp)": "#25d366",
|
||||
"Segurança / Rate limiting": "#ef4444",
|
||||
"Segurança / Auditoria": "#ef4444",
|
||||
"Central SaaS (docs/FAQ)": "#c084fc",
|
||||
"Dev / Tracking": "#94a3b8",
|
||||
"Estrutura / Calendário": "#fb923c"
|
||||
},
|
||||
"infrastructure": {
|
||||
|
||||
@@ -305,7 +305,7 @@ function buildSB(){
|
||||
</div>
|
||||
<div class="sb-h" style="margin-top:8px">Domínios</div>\`;
|
||||
for(const[d,ts]of Object.entries(D.domains)){
|
||||
h+=\`<div class="sb-i \${dom===d?'active':''}" onclick="scrollToDomain(\`+JSON.stringify(d)+\`)">
|
||||
h+=\`<div class="sb-i \${dom===d?'active':''}" onclick="scrollToDomain('\${D.slugs[d]}')">
|
||||
<div class="sb-dot" style="background:\${gc(d)}"></div>\${escapeHtml(d)}
|
||||
<span class="sb-c">\${ts.length}</span>
|
||||
</div>\`;
|
||||
@@ -349,7 +349,7 @@ function buildMN(){
|
||||
<div class="dgrid">\`;
|
||||
for(const[d,ts]of Object.entries(D.domains)){
|
||||
const fks=ts.reduce((a,t)=>a+(D.tables[t]?.fks?.length||0),0);
|
||||
h+=\`<div class="dc" style="--c:\${gc(d)}" onclick="scrollToDomain(\`+JSON.stringify(d)+\`)">
|
||||
h+=\`<div class="dc" style="--c:\${gc(d)}" onclick="scrollToDomain('\${D.slugs[d]}')">
|
||||
<div class="dc-n">\${escapeHtml(d)}</div>
|
||||
<div class="dc-m"><span style="color:\${gc(d)}">\${ts.length}</span> tabelas · \${fks} FKs</div>
|
||||
</div>\`;
|
||||
@@ -420,7 +420,7 @@ function sel(d){
|
||||
dom=d;view='overview';q='';document.getElementById('si').value='';
|
||||
buildSB();buildMN();document.getElementById('mn').scrollTop=0;
|
||||
}
|
||||
function scrollToDomain(d){
|
||||
function scrollToDomain(slug){
|
||||
// Sempre ir pra overview (com todos os domínios visíveis) antes de scrollar
|
||||
const needRebuild=view!=='overview'||dom!==null||q;
|
||||
if(needRebuild){
|
||||
@@ -429,7 +429,7 @@ function scrollToDomain(d){
|
||||
buildSB();buildMN();
|
||||
}
|
||||
setTimeout(()=>{
|
||||
const el=document.getElementById('dom-'+(D.slugs[d]||''));
|
||||
const el=document.getElementById('dom-'+slug);
|
||||
if(el) el.scrollIntoView({behavior:'smooth',block:'start'});
|
||||
}, needRebuild?80:0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user