-------
--- SQL para criação do Timer no sistema.
--------
--
-- cria o que envia o informativo semanal para os usuários com interesse
--
-- horaExecucao: 12h
-- tipoReplicacao: S = Semanal
-- diaExecucao: DOM = 1
--
--
insert into INFRA.REGISTRO_TIMER (id, dia_execucao, hora_execucao, tempo, tipo_repeticao, classe, ativa, servidor_execucao, servidor_restricao)
values (33, 1, 12, 0, 'S', 'br.ufrn.sigaa.biblioteca.timer.NotificaUsuariosInteressadosDSITimer', true, 'sistemas1', 'sistemas1i1');
\\
\\
O caso de uso é finalizado.
\\
\\
===== Principais Regras de Negócio =====
* **RN01** - Somente é enviado o informativo para os usuários cadastraram interesse que possuem cadastro **ativo** e **não quitado** na biblioteca.
* **RN02** - Somente deve ser enviado no máximo 1 email por usuário por semana. Esse email deve conter a listagem de todos as Catalogação para as quais foram incluídos novos materiais na última semana na biblioteca de interesse do usuário e cujos assuntos ou autores então registrados como de interesse pelo usuário.
==== Resoluções/Legislações Associadas ====
Não se Aplica
-------
--- Retorna 10 usuários com interesse em receber a notificação de assunto
--------
SELECT DISTINCT usuarioBiblioteca.id_usuario_biblioteca, pessoa.nome, usuario.email AS emailUsuario, pessoa.email AS emailPessoa, true, cacheAssunto.entrada_autorizada_assunto as assuntosInteresse, COALESCE(biblioteca.descricao, 'Todas') as bibliotecaInteresse
FROM biblioteca.perfil_interesse_usuario_biblioteca perfil
INNER JOIN biblioteca.usuario_biblioteca usuarioBiblioteca ON perfil.id_usuario_biblioteca = usuarioBiblioteca.id_usuario_biblioteca
INNER JOIN comum.pessoa pessoa ON (usuarioBiblioteca.id_pessoa = pessoa.id_pessoa)
INNER JOIN comum.usuario usuario ON (pessoa.id_pessoa = usuario.id_pessoa)
LEFT JOIN biblioteca.perfil_interesse_x_autoridade_assunto assuntosInteresse ON perfil.id_perfil_interesse_usuario_biblioteca = assuntosInteresse.id_perfil_interesse_usuario_biblioteca
LEFT JOIN biblioteca.perfil_interesse_x_biblioteca bibliotecaInteresse ON perfil.id_perfil_interesse_usuario_biblioteca = bibliotecaInteresse.id_perfil_interesse_usuario_biblioteca
LEFT JOIN biblioteca.cache_entidades_marc cacheAssunto ON cacheAssunto.id_autoridade = assuntosInteresse.id_autoridade
LEFT JOIN biblioteca.biblioteca ON bibliotecaInteresse.id_biblioteca = biblioteca.id_biblioteca
WHERE usuarioBiblioteca.ativo = true AND usuarioBiblioteca.quitado = false
LIMIT 10
-------
--- Retorna 10 usuários com interesse em receber a notificação para autores
--------
SELECT DISTINCT usuarioBiblioteca.id_usuario_biblioteca, pessoa.nome, usuario.email AS emailUsuario, pessoa.email AS emailPessoa, false, cacheAutor.entrada_autorizada_autor as autorInteresse, COALESCE(biblioteca.descricao, 'Todas') as bibliotecaInteresse
FROM biblioteca.perfil_interesse_usuario_biblioteca perfil
INNER JOIN biblioteca.usuario_biblioteca usuarioBiblioteca ON perfil.id_usuario_biblioteca = usuarioBiblioteca.id_usuario_biblioteca
INNER JOIN comum.pessoa pessoa ON (usuarioBiblioteca.id_pessoa = pessoa.id_pessoa)
INNER JOIN comum.usuario usuario ON (pessoa.id_pessoa = usuario.id_pessoa)
LEFT JOIN biblioteca.perfil_interesse_x_autoridade_autor autorInteresse ON perfil.id_perfil_interesse_usuario_biblioteca = autorInteresse.id_perfil_interesse_usuario_biblioteca
LEFT JOIN biblioteca.perfil_interesse_x_biblioteca bibliotecaInteresse ON perfil.id_perfil_interesse_usuario_biblioteca = bibliotecaInteresse.id_perfil_interesse_usuario_biblioteca
LEFT JOIN biblioteca.cache_entidades_marc cacheAutor ON cacheAutor.id_autoridade = autorInteresse.id_autoridade
LEFT JOIN biblioteca.biblioteca ON bibliotecaInteresse.id_biblioteca = biblioteca.id_biblioteca
WHERE usuarioBiblioteca.ativo = true AND usuarioBiblioteca.quitado = false
LIMIT 10