// _core : social/userPessoa
const dbPublicacoes = _db.query(`
    SELECT 
        publicacao.uid,
        pessoa.nome,
        pessoa.sobrenome,
        publicacao.momento,
        comunidade.nome AS "comunidade",
        cidade.nome AS "cidade",
        publicacao.mensagem
    FROM publicacao
        INNER JOIN pessoa ON publicacao.pessoa_id = pessoa.id
        INNER JOIN comunidade ON publicacao.comunidade_id = comunidade.id
        INNER JOIN cidade ON pessoa.cidade_id = cidade.id
    WHERE publicacao.active = true
        AND comunidade.id IN (
            SELECT
                comunidade.id
            FROM pessoa_comunidade
            WHERE pessoa_id = ?
        )
    ORDER BY momento desc, cidade.nome, comunidade.nome
`, userPessoa().getInt("id"))

const data = _val.list()

for (const dbPublicacao of dbPublicacoes) {
    data.add(
        _val.map()
            .set("uid", dbPublicacao.getString("uid"))
            .set("name", dbPublicacao.getString("nome") +' '+ dbPublicacao.getString("sobrenome"))
            .set("moment", dbPublicacao.getSQLTimestamp("momento"))
            .set("community", dbPublicacao.getString("comunidade"))
            .set("city", dbPublicacao.getString("cidade"))
            .set("message", dbPublicacao.getString("mensagem"))
    )
}

_out.json(data)