# Histórias de Usuário

## **US00 - Criação de Qualificações**

**Eu como** administrador do Sistema,  
**quero** criar qualificações ao criar categorias  
**para** assim poder reaproveitá-las em eventos futuros.

**Qualificação:**

- **Título:** Ex: SEMOB, CAESB
- **Categoria:** Ex: Dia da Mulher, Dia do Cidadão

**Critérios de aceitação:**

- [ ]  [x]  Qualificações não podem ter o mesmo nome
- [ ]  [x]  Nenhum campo pode ser nulo
- [ ]  [x]  Toda qualificação deve estar associada a uma categoria
- [ ]  [ ]  Deve ser possível deletar qualificações

---

## **US01 - Criação de Categorias**

**Eu como** Administrador do Sistema,  
**quero** criar categorias  
**para** poder identificar tipos de eventos e suas particularidades, assim podendo reutilizar configurações para eventos reincidentes.

**Categoria:**

- **Nome:** Ex: Dia da Mulher, Dia do Cidadão
- **Qualificações Base:**
    
    
    - Deverão ser cadastradas no momento da criação da categoria
    - Com ao menos 1 qualificação por categoria
    - Deverá ser possível deletar e criar qualificações
- **Estatísticas Relevantes:** Seleção de estatísticas relevantes para aquele tipo de evento:
    
    
    - Pessoas Atendidas
    - Parceiros
    - Serviços por Pessoa
    - Atendimentos
    - Voluntários
    - Lanches Entregues
- **Eventos Criados com a Categoria:** Apenas para facilitar eventuais queries

**Critérios de aceitação:**

- [ ]  [x]  Apenas usuários do Tipo Admin podem criar categorias
- [ ]  [x]  Nenhum campo pode ser nulo
- [ ]  [ ]  Deverá ser possível editar as qualificações bases para eventos futuros
- [ ]  [x]  Deverá ser selecionado ao menos 6 estatísticas relevantes (já devem vir selecionadas por padrão)
- [ ]  [x]  As características serão criadas depois, em uma janela separada (página separada)

---

## **US02 - Buscar Assistido**

**Eu como** usuário Servidor (Atendente),  
**quero** pesquisar um assistido  
**para** que eu possa gerar sua ficha de atendimento para rastrear os serviços do meu evento.

**Detalhes:**

- Pesquisar um assistido que está no banco de dados do SOLAR.

**Critérios de aceitação:**

- [ ]  [ ]  Deverá ser possível pesquisar por:
    
    
    - Nome
    - CPF
- [ ]  [ ]  Ambos os casos de pesquisa devem ser feitos pelo mesmo input
- [ ]  [ ]  O sistema deverá apresentar todos os resultados encontrados, porém é necessário pensar em uma maneira (talvez paginação) para evitar pesar muito a página

---

## **US03 - Cadastrar Assistido**

**Eu como** usuário Servidor (Atendente),  
**quero** cadastrar um assistido  
**para** que eu possa gerar sua ficha de atendimento para rastrear em meu evento.

**Detalhes:**

- O cadastro deverá ser feito no sistema SOLAR, devendo estar disponível tanto no Aurora quanto no Solar

**Campos para cadastro:**

- Nome
- Nome da Mãe
- CPF
- Telefone
- Data de Nascimento

**Critérios de aceitação:**

- [ ]  [ ]  Campos obrigatórios:
    
    
    - Nome
    - Nome da mãe
- [ ]  [ ]  Nome e nome da mãe deverão aceitar apenas letras
- [ ]  [ ]  CPF deverá aceitar apenas números e formatar o campo automaticamente para `xxx.xxx.xxx-xx`
- [ ]  [ ]  Telefone deverá aceitar apenas números e formatar o campo automaticamente para `(xx) xxxxx-xxxx`

---

## **US04 - Cadastro de Atendimento**

**Eu como** servidor (Atendente),  
**quero** cadastrar um atendimento de um assistido  
**para** que eu possa rastrear as estatísticas do evento futuramente.

**Detalhes:**

- Após a pesquisa de assistidos, o servidor deverá selecionar o assistido desejado e preencher quais serviços o mesmo irá usar durante o evento.

**Critérios de aceitação:**

- [ ]  [ ]  Um atendimento só pode ser feito em dia de evento e **SE O EVENTO ESTIVER COM O STATUS EM\_ANDAMENTO**

⚠️ **Atenção:**  
O evento é identificado pela URL, portanto devem ser implementados avisos e travas para que, se o usuário tentar acessar um evento que não está em andamento diretamente pela URL, o sistema bloqueie a ação.

- [ ]  [ ]  Apenas usuários logados e com sessão válida no Solar (5 min) poderão registrar atendimentos (implementar refresh do Solar)
- [ ]  [ ]  O atendimento deverá ter no mínimo 1 serviço
- [ ]  [ ]  O atendimento deverá vir com os dados do assistido já preenchidos e visíveis
- [ ]  [ ]  O sistema deverá apresentar erros claros, indicando os motivos de tal erro
- [ ]  [ ]  Caso o usuário crie um assistido, ele deverá ser automaticamente redirecionado para a tela de atendimento
- [ ]  [ ]  Após a finalização, o atendimento deverá estar disponível imediatamente no banco de dados, para uso na página de estatísticas do admin

---