# language: pt
Funcionalidade: Exclusividade de um squad ativo
Cenário: Bloqueio de segundo squad ativo
Dado um usuário já ativo (member) no squad A
Quando o capitão do squad B aprova a candidatura dele
Então a entrada é bloqueada pela exclusividade
E exige-se que ele saia do squad A antes
Cenário: Ex-membro pode entrar em outro squad
Dado um usuário que é ex_member do squad A
Quando ele é aprovado no squad B
Então a entrada é permitida
Parent
#342
O que construir
A invariante de exclusividade (1 squad ativo por pessoa/tenant), com defesa em profundidade.
UNIQUE (tenant_id, user_id) WHERE role IN ('captain','sub_captain','member').ApplyToSquad/DecideApplication(erro claro antes de bater no banco).ex_membernão conta. Para entrar em outro squad, é preciso sair do atual antes.Critérios de aceite
ex_membernão contaBDD
Bloqueada por