Files
dbmaker/estrutura_visual/exported-assets/script_1.py

280 lines
9.4 KiB
Python

# Criar um guia JSON estruturado do template para integração na plataforma
template_guide = {
"metadata": {
"nome": "Template SteelBook Databook",
"versao": "1.0",
"base": "DB-B97-01 (SAIPEM)",
"tipo": "Vendor Databook Técnico"
},
"componentes": {
"1_capa_frontal": {
"nome": "Capa Frontal",
"campos_editaveis": [
{
"campo": "logo_cliente",
"tipo": "imagem",
"dimensoes": "200x100px",
"formato": "PNG, SVG preferencial"
},
{
"campo": "titulo_projeto",
"tipo": "texto",
"max_caracteres": 100,
"exemplo": "BUZIOS 7 PRODUCTION SYSTEM DEVELOPMENT"
},
{
"campo": "subtitulo",
"tipo": "texto",
"max_caracteres": 80,
"exemplo": "AR HEAD FABRICATION LONG"
},
{
"campo": "numero_documento",
"tipo": "texto",
"padrao": "DB-XXX-YY_SZ_VENDOR_DATABOOK",
"exemplo": "DB-B97-01_S1_VENDOR_DATABOOK"
},
{
"campo": "numero_contrato",
"tipo": "texto",
"exemplo": "OC 1472739"
},
{
"campo": "data_emissao",
"tipo": "data",
"formato": "DD/MM/YYYY"
},
{
"campo": "logo_fornecedor",
"tipo": "imagem",
"dimensoes": "150x75px",
"posicao": "rodape"
}
],
"cores": {
"cor_primaria": "#1a365d",
"cor_secundaria": "#2b6cb0",
"cor_texto": "#2d3748"
}
},
"2_indice_geral": {
"nome": "Índice Geral / Table of Contents",
"estrutura": "hierarquica",
"niveis_suportados": 3,
"campos_editaveis": [
{
"campo": "titulo_secao",
"tipo": "texto_bilingue",
"linguas": ["pt", "en"]
}
],
"formato_numeracao": {
"nivel_1": "X",
"nivel_2": "X.Y",
"nivel_3": "X.Y.Z"
},
"exemplo_estrutura": [
"1 - Identificação | Identification",
"2 - Materiais | Materials",
" 2.1 - Certificados | Certificates",
" 2.2 - Consumíveis | Consumables"
]
},
"3_divisoras_secao": {
"nome": "Capas Divisoras de Seção",
"estilos_disponiveis": [
{
"estilo": "minimalista",
"descricao": "Número grande em marca d'água, título centralizado",
"uso_recomendado": "Seções principais (1, 2, 3, 4)"
},
{
"estilo": "lateral",
"descricao": "Barra colorida lateral com número, título à direita",
"uso_recomendado": "Subseções importantes (2.1, 3.1)"
},
{
"estilo": "corporativo",
"descricao": "Header com degradê, logo e caixa de informações",
"uso_recomendado": "Seções de certificação e conformidade"
}
],
"campos_editaveis": [
{
"campo": "numero_secao",
"tipo": "texto",
"exemplo": "2"
},
{
"campo": "titulo_pt",
"tipo": "texto",
"exemplo": "Materiais"
},
{
"campo": "titulo_en",
"tipo": "texto",
"exemplo": "Materials"
},
{
"campo": "subtitulo_pt",
"tipo": "texto",
"opcional": True
},
{
"campo": "icone_secao",
"tipo": "emoji_svg",
"exemplo": "🔩"
}
]
},
"4_cabecalho_rodape": {
"nome": "Cabeçalhos e Rodapés",
"opcoes": [
{
"tipo": "header_padrao",
"elementos": ["logo_mini", "nome_projeto", "numero_documento"]
},
{
"tipo": "footer_padrao",
"elementos": ["numero_pagina", "revisao", "data"]
}
],
"altura_header": "60px",
"altura_footer": "40px"
}
},
"integração_steelbook": {
"endpoints_sugeridos": [
{
"nome": "GET /api/templates",
"descricao": "Lista todos os templates disponíveis"
},
{
"nome": "GET /api/templates/:id",
"descricao": "Retorna configuração específica de um template"
},
{
"nome": "POST /api/templates",
"descricao": "Cria novo template customizado"
},
{
"nome": "PUT /api/templates/:id",
"descricao": "Atualiza template existente"
},
{
"nome": "POST /api/databooks/:id/apply-template",
"descricao": "Aplica template a um databook"
}
],
"estrutura_dados": {
"template_config": {
"id": "string",
"nome": "string",
"capa": {
"titulo": "string",
"subtitulo": "string",
"logo_cliente_url": "string",
"logo_fornecedor_url": "string",
"cores": {
"primaria": "hex",
"secundaria": "hex"
}
},
"indice": {
"bilingue": "boolean",
"estrutura": "array"
},
"divisoras": {
"estilo_padrao": "string",
"cor_destaque": "hex"
}
}
}
},
"workflow_uso": [
{
"passo": 1,
"acao": "Usuário acessa 'Gestão de Templates' no SteelBook",
"interface": "Lista templates existentes + botão 'Novo Template'"
},
{
"passo": 2,
"acao": "Clica 'Novo Template' ou 'Editar' em template existente",
"interface": "Abre editor visual (similar ao app criado)"
},
{
"passo": 3,
"acao": "Customiza elementos: cores, textos, logos, estrutura",
"interface": "Painéis de configuração + preview em tempo real"
},
{
"passo": 4,
"acao": "Salva template com nome descritivo",
"interface": "Modal de salvamento com campos: nome, descrição, tags"
},
{
"passo": 5,
"acao": "Ao criar novo Databook, seleciona template",
"interface": "Dropdown de templates na tela de criação"
},
{
"passo": 6,
"acao": "Sistema gera estrutura com capas e índices automáticos",
"interface": "Databook criado com template aplicado"
}
],
"recomendacoes_implementacao": {
"armazenamento": "Supabase tabela 'templates' com campos JSON para configurações",
"renderizacao": "Server-side com Puppeteer/wkhtmltopdf para gerar PDFs",
"preview": "Client-side com React/Vue renderizando HTML dinâmico",
"versionamento": "Histórico de revisões de templates",
"compartilhamento": "Templates públicos/privados por organização"
}
}
# Salvar como JSON
import json
json_output = json.dumps(template_guide, indent=2, ensure_ascii=False)
print("GUIA DE INTEGRAÇÃO - TEMPLATE DATABOOK")
print("=" * 80)
print("\n📋 COMPONENTES DO TEMPLATE IDENTIFICADOS:")
print("-" * 80)
for key, comp in template_guide["componentes"].items():
print(f"\n{comp['nome'].upper()}")
print(f" Campos editáveis: {len(comp['campos_editaveis'])}")
print("\n\n🔌 INTEGRAÇÃO COM STEELBOOK:")
print("-" * 80)
print(f"Endpoints sugeridos: {len(template_guide['integração_steelbook']['endpoints_sugeridos'])}")
for endpoint in template_guide['integração_steelbook']['endpoints_sugeridos']:
print(f"{endpoint['nome']}: {endpoint['descricao']}")
print("\n\n📝 WORKFLOW DE USO:")
print("-" * 80)
for step in template_guide['workflow_uso']:
print(f"{step['passo']}. {step['acao']}")
print("\n\n💡 RECOMENDAÇÕES:")
print("-" * 80)
for chave, valor in template_guide['recomendacoes_implementacao'].items():
print(f"{chave.title()}: {valor}")
# Salvar arquivo
with open('template_integration_guide.json', 'w', encoding='utf-8') as f:
f.write(json_output)
print("\n\n✅ Arquivo 'template_integration_guide.json' criado com sucesso!")