GitHub: bloqueada pela issue Vegetação listar e buscar (o módulo já precisa existir).
Por que isso importa
Vegetação é o tipo de habitat do local de coleta. O coletor escolhe no formulário do tombo; fica em tombos.vegetacao_id; o Darwin Core exporta o nome como habitat; a ficha impressa mostra em Observações.
O Curador precisa manter este catálogo em dia: incluir um tipo quando os coletores passam a usar um valor novo, corrigir nome errado e retirar linhas que ninguém usa — sem nunca quebrar espécimes que ainda apontam para aquele registro.
Histórias
- Como Curador, quero cadastrar um tipo de vegetação (por exemplo “Cerrado”) para que os tombos novos usem um valor compartilhado em vez de texto livre.
- Como Curador, quero renomear um tipo de vegetação para que um erro de digitação fique corrigido para quem selecionar daqui pra frente.
- Como Curador, quero remover um tipo de vegetação que nada usa para o dropdown ficar limpo. Quero que o sistema recuse a exclusão quando ainda houver registros usando aquele tipo, para não quebrar o histórico dos espécimes.
Critérios de aceite
Cadastrar
Renomear
Remover
Comum
Fora de escopo
- Auth na v2.
- Delete em cascata ou anular FKs nos tombos.
GitHub: bloqueada pela issue Vegetação listar e buscar (o módulo já precisa existir).
Por que isso importa
Vegetação é o tipo de habitat do local de coleta. O coletor escolhe no formulário do tombo; fica em
tombos.vegetacao_id; o Darwin Core exporta o nome comohabitat; a ficha impressa mostra em Observações.O Curador precisa manter este catálogo em dia: incluir um tipo quando os coletores passam a usar um valor novo, corrigir nome errado e retirar linhas que ninguém usa — sem nunca quebrar espécimes que ainda apontam para aquele registro.
Histórias
Critérios de aceite
Cadastrar
POST /api/v2/vegetacoescom{ "nome": "Cerrado" }devolve 201 e o registro criado{ id, nome }.nomevazio ou só espaço → 400.nomeduplicado (sem diferenciar maiúsculas) → 409.Renomear
PUT /api/v2/vegetacoes/:vegetacaoIdcom{ "nome": "Cerrado sensu stricto" }devolve 200 e o{ id, nome }atualizado.nomevazio → 400.idnão muda.Remover
DELETE /api/v2/vegetacoes/:vegetacaoIdem uma linha sem uso devolve 204 e corpo vazio.tombos.vegetacao_id→ 409 com mensagem clara.Comum
/api/vegetacoespermanece inalterado.Fora de escopo