# Guia de Contribuição — Aquabudget

Obrigado por querer contribuir! Este guia descreve como fazê-lo de forma organizada.

---

## Branches

```
main        → produção (protegida — só via PR)
develop     → integração contínua
feature/xxx → nova funcionalidade
fix/xxx     → correção de bug
chore/xxx   → manutenção (deps, config, docs)
test/xxx    → adição ou correção de testes
```

Exemplo:
```bash
git checkout develop
git checkout -b feature/exportar-pdf
```

---

## Conventional Commits

As mensagens de commit seguem o formato [Conventional Commits](https://www.conventionalcommits.org/):

```
feat: adiciona exportação para PDF
fix: corrige cálculo de totais com desconto
chore: atualiza dependências do frontend
docs: adiciona guia de setup local
refactor: extrai lógica de impostos para serviço
test: adiciona testes para OrçamentoService
```

---

## Processo de Pull Request

1. Criar branch a partir de `develop`
2. Desenvolver a feature/fix
3. Garantir que os testes passam:
   ```bash
   # Backend
   cd backend && ./mvnw test

   # Frontend
   cd frontend && npm run lint
   ```
4. Atualizar `CHANGELOG.md` na secção `[Unreleased]`
5. Abrir PR para `develop` com o template preenchido
6. Aguardar review e aprovação

---

## Setup Local

Ver [docs/setup.md](docs/setup.md) para instruções completas.

---

## Regras de Código

- Comentários em Português, nomes de variáveis/funções em Inglês
- Máximo ~30 linhas por função — dividir se necessário
- Sem credenciais em código — usar variáveis de ambiente
- Sem prints/logs de debug em PRs

---

## Reportar Bugs / Pedir Features

Usar os templates em `.github/ISSUE_TEMPLATE/`.
