meta {
  name: 5. Atribuir Contatos a Listas (Assign)
  type: http
  seq: 5
}

post {
  url: {{baseUrl}}/api/contact-lists/assign
  body: json
  auth: none
}

body:json {
  {
    "contactIds": ["{{contactId}}"],
    "listIds": ["{{contactListId}}"]
  }
}

docs {
  Requer sessão + ser dona de CADA `listId` informado (não checa `contactIds`, já que `Contact` não tem dono).

  Schema (`assign-contacts-to-lists-schema.ts`): `contactIds` (array, min 1 item, não valida se existem), `listIds` (array, min 1 item).

  ⚠️ Validação usa `.parse()` → **500** se inválido, não 400.

  Erro de negócio: `AppError.notFound("Lista não encontrada")` → 404 se QUALQUER `listId` do array não existir ou não pertencer ao usuário logado (basta um inválido para toda a operação falhar).

  Operação idempotente (`skipDuplicates: true`) — rodar duas vezes não duplica memberships.

  Sucesso: 200, `{"success": true}`.
}
