import requests
import json

OP_URL = "https://projetos.rede5.com.br"
OP_API_KEY = "9c704b1c48939f97463fd9d811a9de050317b85224b93694d6e037f0799d37c2"
OP_AUTH = ('apikey', OP_API_KEY)

# Mapeamento Projeto OP -> Repo GitHub
REPO_MAPPING = {
    "Q1Agenda": "q1agenda-backend",
    "Q1 SITE": "q1site",
    "GoHorseJobs": "gohorsejobs",
    "PHOTUM": "photum",
    "SaveinMed": "saveinmed",
    "Q1FIT": "q1fit",
    "Zeus": "zeus-suplementos"
}

def update_wiki():
    print("--- Atualizando Wiki do OpenProject ---")
    
    # 1. Listar projetos para pegar os IDs
    projs_resp = requests.get(f"{OP_URL}/api/v3/projects", auth=OP_AUTH).json()
    projects = projs_resp['_embedded']['elements']
    
    for p in projects:
        name = p['name']
        if name in REPO_MAPPING:
            repo = REPO_MAPPING[name]
            p_id = p['id']
            print(f"Atualizando Wiki de {name} (ID: {p_id})...")
            
            wiki_content = f"""# Documentação do Projeto

Este projeto foi migrado do Monday.com e está vinculado ao repositório GitHub.

## Repositório
* **Nome:** `{repo}`
* **Branch Padrão (Local):** `dev`
* **Localização Local:** `C:\dev\{repo}`

## Acesso
Para clonar manualmente:
```bash
git clone https://github.com/rede5/{repo}.git
git checkout dev
```
"""
            # No OpenProject API v3, para atualizar a wiki:
            # Primeiro verificamos se a wiki existe e pegamos o link
            wiki_link = p['_links'].get('wikiPage')
            if wiki_link:
                # Se existe link, tentamos atualizar
                wiki_url = f"{OP_URL}{wiki_link['href']}"
                # O payload para Wiki requer formato específico
                payload = {
                    "title": "Wiki",
                    "text": {"format": "markdown", "raw": wiki_content}
                }
                # Para atualizar via API v3, geralmente é via PATCH ou POST no endpoint de wiki
                # Vamos tentar buscar a página de wiki primeiro
                wiki_page = requests.get(wiki_url, auth=OP_AUTH).json()
                if '_links' in wiki_page and 'update' in wiki_page['_links']:
                    update_url = f"{OP_URL}{wiki_page['_links']['update']['href']}"
                    requests.patch(update_url, auth=OP_AUTH, json=payload)
                    print(f"  OK: Wiki de {name} atualizada.")
            else:
                # Se não tem link de wiki_page, o projeto pode não ter a wiki ativa.
                # Tentamos ativar ou criar via endpoint de wiki pages do projeto
                print(f"  Aviso: Wiki não ativa para {name}. Verifique as configurações do projeto.")

if __name__ == "__main__":
    update_wiki()
