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