# 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!")