Flows

Flows são a unidade fundamental do discord-flow

O que é um Flow?

Um Flow é uma máquina de estados que gerencia um conjunto de interações relacionadas. Cada flow possui um ID único e contém múltiplos estados.

Criando um Flow

Use o FlowRegistry para definir flows:

typescript
1import { FlowRegistry } from 'discord-flow';
2
3const registry = new FlowRegistry();
4
5registry.define('meu-flow', (flow) => {
6 // Define o estado inicial
7 flow.start('idle');
8
9 // Define os estados
10 flow.state('idle')
11 .on.command({ name: 'start' }, () => ({
12 response: { content: 'Flow iniciado!' },
13 transition: 'processing'
14 }));
15
16 flow.state('processing')
17 .on.button('confirm', () => ({
18 response: { content: 'Confirmado!' },
19 transition: 'idle'
20 }));
21});

Flow ID

O ID do flow é usado internamente para rotear interações. Ele deve ser único dentro do registry.

Múltiplos Flows

Você pode definir quantos flows precisar. Cada um gerencia seu próprio conjunto de estados:

typescript
1registry.define('auth', (flow) => {
2 flow.start('logged-out');
3 // ... estados de autenticação
4});
5
6registry.define('tickets', (flow) => {
7 flow.start('idle');
8 // ... estados de tickets
9});
10
11registry.define('settings', (flow) => {
12 flow.start('menu');
13 // ... estados de configurações
14});