====== Especificação Funcional: Cadastro de Entidade ======
===== Resumo =====
As entidades representam os bancos de dados do cliente, o usuário tem a possibilidade de sincronizar ([[softwares:school:requisitos:modulos:schoolweb:arquitetura:escopo:projeto|ref]]) as bases com o servidor, assim tornando os dados disponíveis na aplicação School Web. Cada banco terá um Id gerado de forma incremental, um nome e um município que serão exibidos no momento do login ([[softwares:school:requisitos:modulos:schoolweb:configuracoes:login:home|ref]]) e de acordo as permissões ([[softwares:school:requisitos:modulos:schoolweb:arquitetura:escopo:permissionamento|ref]]) do usuário dará a profundidade das informações.
===== Campos =====
|< 100% 19% 60% 7% 7% 7%>|
^ Campo ^ Descrição ^ Tipo ^ Tamanho ^ Obrigatório? ^
|**__Dados gerais__** |||||
|Nome|Nome da Entidade|Varchar | |Sim |
|Município|Lista dos Municípios |Varchar | |Sim |
|Id Banco|Id Banco gerado automaticamente no momento do cadastro de uma nova entidade|Varchar | |Sim |
|Situação|Situação da Entidade (Pendente/Configurando/Configurada/Publicando/Publicada)|Varchar | |Não |
|Logo da Entidade|Logo da entidade|Mediumblob | |Não |
|Data sincronização|Logo da última atualização de dados da entidade|String | |Não |
===== Funções =====
=== Configurar ===
A opção de configurar, é responsável por criar a conexão entre a escola e o servidor. Quando ela é acionada deverá cumprir os seguintes requisitos:
== Lado cliente: ==
- Gerar o arquivo **engines.properties**
- Criar as tabelas e triggers responsáveis pela sincronização
== Lado servidor: ==
- Nas tabelas **sym_node** e **sym_node_security** criar os registros(nós) responsáveis pela sincronização
=== Pausar ===
A opção de pausar é responsável por pausar a sincronização de dados entre a escola e o servidor. Geralmente é usada quando existe uma atualização em que foram feitas alterações significativas no esquema do banco de dados, principalmente em chave primária. Quando este tipo de alteração ocorre, o servidor recebe muitos erros de clientes que não estão na última versão e por isso o sistema na web fica consideravelmente lento.
Quando ela é acionada deverá cumprir os seguintes requisitos:
== Lado servidor: ==
- Remover o nó da tabela **sym_node_security**, quando o mesmo é feito, a atualização é interrompida, e só é retomada quando for feita uma nova sincronização.
=== Sincronizar ===
A opção sincronizar é responsável por realizar a sincronização dos dados da escola e o servidor. Ela pode ser utilizada de três maneiras, são elas:
* Quando a sincronização da escola está pausada e é necessário voltar a sincronizar os dados;
* Quando o usuário deseja sincronizar os dados da escola novamente sem haver a necessidade de despublicar os dados;
* Quando a entidade é removida do sistema através da opção Despublicar.
Para todas essas três maneiras o sistema deve se comportar da mesma maneira, são elas:
- Remover os nós das tabelas **sym_node** e **sym_node_security**
- Remover todos os dados da entidade no banco de dados WEB, exceto a entidade
- Restaurar os nós das tabelas **sym_node** e **sym_node_security**
- Iniciar a publicação dos dados
Essa opção só deve ser usada caso o banco de dados na escola esteja atualizado para a última versão disponível.
=== Despublicar ===
A opção despublicar é responsável por deletar todos os dados da entidade na Web e os dados do Symmetric na escola. Quando ela é acionada deve cumprir os seguintes requisitos:
== Lado cliente: ==
- Remover todas as tabelas de sincronização do banco de dados
- Parar o Symmetric
== Lado servidor ==
- Remover os nós das tabelas **sym_node** e **sym_node_security**
- Remover todos os dados da entidade do banco de dados inclusive a própria entidade.
===== Upload de imagens=====
- Para melhor renderização da logo da entidade, esta devem possuir a altura de 60 e largura 60;
===== Observações =====
Nenhuma.