# Testes de mesa VoxMe
### Usuario é o assinante e assistido
Como o assinante é o assistido principal, ele visualiza seus dados e os dados dos assistidos secundarios no quem usa o voxme.
Acesso ao assistido principal:
1. Usuario consegue alterar nome
2. Usuario não pode alterar a sua senha. (campo e botões ficam oculto)
3. Usuario consegue alterar o email:
1. Ao mudar o seu email o usuario gera um assistido principal
Nesse cenario os campos de senha ficam visiveis e são obrigatorios.
Acesso ao assistido secundario:
1. Usuario consegue alterar nome
2. Usuario consegue alterar seu email
3. Usuario consegue alterar sua senha
### Usuario é o assinante e tem assistido principal
Assinante visualiza somente assistido principal e assistidos secundarios no quem usa o voxme.
Acesso ao assistido principal
1. Usuario consegue alterar seu nome
2. Usuario consegue alterar sua senha
3. Usuario consegue alterar seu email:
1. Deve exigir a senha se for para outro email que não seja o email do assinante
2. Se o assinante mudar o email do assistido para o seu email, o assinante torna-se o assistido principal.
Nessa situação os campos de nome e telefone ficam desabilitados e o campo/botão de senha ficam ocultos.
Acesso ao assistido secundario:
1. Usuario consegue alterar nome
2. Usuario consegue alterar seu email
3. Usuario consegue alterar sua senha
### Usuario é o assistido principal
O assistido principal logou no voxme, nessa situação ele pode:
1. Usuario consegue alterar nome
2. Usuario consegue alterar seu email
3. Usuario consegue alterar sua senha
### Usuario é o assistido secundario
O assistido secundario logou no voxme, nessa situação ele pode:
1. Usuario consegue alterar nome
2. Usuario consegue alterar seu email
3. Usuario consegue alterar sua senha
Como ficam os dados (Redux)
Somente o assinante e o assistido principal ficam persistidos no Redux (userInfo) abaixo as principais informações em cada um dos cenarios:
#### Assinante e assistido logado:
_Nessa situação as informações do user_data são as mesmas do assinante_
```json
{
is_subscriber: true,
is_user: true,
subscriber_data: null,
user_data: {...} //assistido principal (assinante)
}
```
#### Assinante logado com assistido principal:
_Nessa situação as informações do user_data são as informações do assistido principal_
```json
{
is_subscriber: true,
is_user: false,
subscriber_data: null,
user_data: {...} //assistido principal
}
```
#### Assistido principal logado (assinatura para outra pessoa):
_Nessa situação as informações do userInfo passam a ser as informações do assistido, o user_data fica nulo e o subscriber_data contém as informações do assinante_
```json
{
is_subscriber: false,
is_user: true,
subscriber_data: {...}, //assinante
user_data: {null}
}
```
#### Assistido secundario logado:
_Nessa situação as informações do userInfo passam a ser as informações do assistido secundario, o user_data fica nulo e o subscriber_data contém as informações do assinante_
_Edições quando o assistido secundario estiver logado devem ser persistidas no redux_
```json
{
is_subscriber: false,
is_user: true,
subscriber_data: {...}, //assinante
user_data: {null}
}
```
usuário assinate e assistido (self-assist)
quem usa o voxme:
- campo, nome e telefone ficam bloqueados
- botão trocar senha fica oculto
- campo email liberado
- ao aletar o email, desbloqueia o nome, telefone e exibe a senha (pois vai deixar de ser self-assist)
usuário assinate, assistido é outra pessoa
- todos os campos liberados
- aparece o botão de trocar senha
- se colocar o email do proprio assistido, bloqueia todos os campos menos o email
- oculta o trocar senha
usuário assinante com assistidos secundários
- todos os campos liberados
- não existe validação especial
- não tem tratamento especial
usuário logado como assistido (não é self-assist)
- visualizar os dados próprios
- todos os campos liberados
- não tem tratamento especial
- na seção de conta, apenas visual