====== Especificação Funcional: Serviço de sincronização (School.CRUD.ACL) ====== ===== Resumo ===== Este serviços será responsável por verificar os dados do School Web e realizar a sincronização com os dados do Pré-matrícula. ====== Descrição ====== Este serviço realizará a sincronização dos dados do School Web para o pré-matrícula. Ele irá incluir, excluir e alterar os dados necessários. Além disso, também será responsável por enviar os eventos de alteração e exclusão para a fila do RabbitMQ. Para que a sincronização ocorra é necessário que a relação Gestor x IdBanco esteja configurada. ====== Despublicação de banco de dados ====== Foi criado uma validação para evitar que os dados sejam excluídos ou alterados no pré-matrícula quando o banco de dados de uma determinada escola for despublicado. Essa validação consiste em dois pontos: * Verificar o nó e o campo que indica se está publicando ou não. (tabela: //**sym_node_security**//, campo: //**rev_initial_load_enabled**//). Para validação retornar verdadeira é necessário que o nó exista e o campo indicado esteja com o valor zero (0); * Verificar o status da entidade. (tabela: //**entidade**//, campo: //**status**//). Para a validação retornar verdadeira é necessário que a entidade exista e que o status seja igual a "Publicada". A sincronização somente será efetuada caso as das validações sejam verdadeiras. ====== Backup/Restore do banco de dados do School Web ====== Em algumas situações o banco de dados do School Web precisa ser restaurado. Quando isso ocorre é necessário que o serviço de sincronização do pré-matrícula não realize os procedimentos padrões. Para evitar qualquer tipo de problema foi criado um mecanismo para desabilitar a sincronização de uma ou mais entidades. Todos os registros da relação Gestor x IdBanco possuem um campo para indicar se a sincronização está ou não habilitada, caso indique que não, a sincronização não será realizada. Além disso, um registro específico (Idbanco = 0, o valor zero foi escolhido pois não indica um idbanco válido para as escolas) indica a sincronização geral das entidades, ou seja, caso este registro esteja com a sincronização desabilitada todos as outras entidades irão ter a sincronização pausada. Quando um processo de backup/restore for feito é necessário que o desenvolvedor seja comunicado para realizar as alterações na relação Gestor x IdBanco.