Skip to content

Cadastrar, renomear e remover tipos de solo #494

Description

@edvaldoszy

GitHub: bloqueada pela issue Solo listar e buscar (o módulo já precisa existir).

Por que isso importa

Solo é o tipo de solo do local de coleta (por exemplo arenoso, argiloso). O coletor escolhe no formulário do tombo; fica em tombos.solo_id; a ficha impressa e as pendências mostram o nome.

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 solo (por exemplo “arenoso”) para que os tombos novos usem um valor compartilhado em vez de texto livre.
  • Como Curador, quero renomear um tipo de solo para que um erro de digitação fique corrigido para quem selecionar daqui pra frente.
  • Como Curador, quero remover um tipo de solo 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

  • POST /api/v2/solos com { "nome": "arenoso" } devolve 201 e o registro criado { id, nome }.
  • nome vazio ou só espaço → 400.
  • nome duplicado (sem diferenciar maiúsculas) → 409.

Renomear

  • PUT /api/v2/solos/:soloId com { "nome": "argiloso" } devolve 200 e o { id, nome } atualizado.
  • Id inexistente → 404. Id inválido ou nome vazio → 400.
  • Renomear para um nome que outra linha já tem (sem diferenciar maiúsculas) → 409.
  • O id não muda.

Remover

  • DELETE /api/v2/solos/:soloId em uma linha sem uso devolve 204 e corpo vazio.
  • Id inexistente → 404. Id inválido → 400.
  • Linha ainda usada em tombos.solo_id409 com mensagem clara.

Comum

  • O legado /api/solos permanece inalterado.
  • Há testes de cadastro, nome vazio, duplicata, atualização, exclusão de linha livre e exclusão recusada quando o tipo ainda está em uso.

Fora de escopo

  • Auth na v2.
  • Delete em cascata ou anular FKs nos tombos.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

  • Status
    to do

Relationships

None yet

Development

No branches or pull requests

Issue actions