Caso 1: Disponibilidade do Serviço

Considere uma situação fictícia onde Ana pode ler o evento, enquanto Bia não pode. Se o serviço estiver fora do ar, não sabemos se a autorização teria funcionado. Este exemplo roda sem modelo ou API, mas representa essas três saídas.

Revisão de Permissões de Agente: Três Casos Importantes

```javascript
class PermissionExample {
constructor() {
this.assert = require('node:assert/strict');
}

readEvent({ userId, event, available = true }) {
if (!available) {
return { status: 'unavailable' };
}
if (event.ownerId!== userId) {
return { status: 'forbidden' };
}
return { status: 'ok', event: { title: event.title } };
}
}

const event = { ownerId: 'ana', title: 'Evento fictício' };

const example = new PermissionExample();

example.assert.equal(example.readEvent({ userId: 'ana', event }).status, 'ok');
example.assert.deepEqual(example.readEvent({ userId: 'bia', event }).status, 'forbidden');
example.assert.deepEqual(example.readEvent({ userId: 'bia', event, available: false }).status, 'unavailable');

console.log('3 verificações passaram no exemplo local.');
```

Agente Casos Permissoes Revisao Tres