Remover o model Agreement
TLDR: apaga o model
Agreement, suas associações, testes, fixtures e a tabelaagreements, que não são usados por nenhum fluxo do sistema.
Contexto
O model Agreement foi criado em 20260724120700_create_agreements.rb, mas nenhum controller, service, serializer ou tela o utiliza. Ele só aparece em associações de outros models, em testes/fixtures e em um puts do seed. Manter código e tabela sem uso aumenta a superfície de manutenção.
Objetivos
- Remover o model
Agreemente todas as referências a ele no backend. - Remover a tabela
agreementsdo banco via migration nova.
Fora de escopo
- O conceito de negócio “acordo” nas regras em
.project/docs/rules/— os docs falam do conceito, não do model, e não mudam. - Alterar
Negotiation,DebitouUseralém de retirar as associações comAgreement. - Editar ou apagar a migration original
20260724120700_create_agreements.rb— ela permanece no histórico. - Reversibilidade da remoção: a migration usa
drop_tablesem bloco e não é reversível (decisão explícita).
Mudanças
Todos os caminhos relativos a modules/backend/.
app/models/agreement.rb— apagar.app/models/negotiation.rb— removerhas_one :agreement, dependent: :destroy.app/models/user.rb— removerhas_many :approved_agreements, ....app/models/debit.rb— removerhas_many :agreements, through: :negotiations.test/models/agreement_test.rb— apagar.test/fixtures/agreements.yml— apagar.test/models/debit_test.rb— remover o teste"reaches its agreements through the negotiations".db/seeds.rb— remover o bloco que imprime--- Agreement ---/Agreement.count.db/migrate/<timestamp>_drop_agreements.rb— nova migration comdrop_table :agreements(sem bloco, irreversível). As foreign keys paranegotiationseuserscaem junto com a tabela.db/schema.rb— regenerado pelodb:migrate(somecreate_table "agreements"e os doisadd_foreign_key "agreements", ...).
Como verificar
grep -rni agreement modules/backend --exclude-dir={tmp,log}retorna apenas a migration original e a nova migration de drop.bin/rails db:migrateroda sem erro e oschema.rbnão contém maisagreements.- Suíte de testes do backend passa (
bin/rails test). bin/rails db:seedroda sem erro.
Documentação
Nenhuma mudança de documentação necessária.