// _core : social/userPessoa

const dbComunidades = _db.query(`
    SELECT 
        comunidade.uid,
        comunidade.nome,
        comunidade.descricao,
        (
            SELECT count(comunidade_id)
            FROM pessoa_comunidade
            WHERE pessoa_id = ?
              AND comunidade_id = comunidade.id
        ) AS seguindo
    FROM comunidade
    WHERE comunidade.active = true
    ORDER BY comunidade.nome
`, userPessoa().getInt("id"))

const data = _val.list()

for (const dbComunidade of dbComunidades) {
    data.add(
        _val.map()
            .set("uid", dbComunidade.getString("uid"))
            .set("name", dbComunidade.getString("nome"))
            .set("description", dbComunidade.getString("descricao"))
            .set("following", dbComunidade.getInt("seguindo") > 0)
    )
}

_out.json(data)
