Initial commit DBMaker - Oficiais e Funcionando
This commit is contained in:
279
estrutura_visual/exported-assets/script_1.py
Normal file
279
estrutura_visual/exported-assets/script_1.py
Normal file
@@ -0,0 +1,279 @@
|
||||
|
||||
# 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!")
|
||||
Reference in New Issue
Block a user