?" JOIN resource_definitions d ON d.id=r.templateId JOIN resource_definitions f ON f.stockKey='field:expires'"
:"";
constwhere=
"WHERE (:companyId IS NULL OR r.companyId=:companyId)"+
(expiry
?" AND d.stockKey=:stockKey AND JSON_EXTRACT(r.`values`,'$.active')=true AND JSON_UNQUOTE(JSON_EXTRACT(r.`values`,CONCAT('$.characteristics.\"',f.id,'\"'))) BETWEEN :today AND :until"
`SELECT COUNT(*) AS total FROM resources r ${join}${where}`,
{type:QueryTypes.SELECT,replacements}
);
constitems=awaitthis.database.query<Entry>(
`SELECT r.id,r.companyId,c.name AS companyName,JSON_UNQUOTE(JSON_EXTRACT(r.\`values\`,'$.name')) AS name,NULL AS recordedAt,NULL AS actorName FROM resources r JOIN companies c ON c.id=r.companyId ${join}${where} ORDER BY name,r.id LIMIT 10 OFFSET :offset`,
{type:QueryTypes.SELECT,replacements}
);
return{total: Number(counts[0]?.total??0),items};
}
activity(companyId?: string){
returnthis.database.query<Entry>(
"SELECT r.id,h.id AS eventId,r.companyId,c.name AS companyName,JSON_UNQUOTE(JSON_EXTRACT(r.`values`,'$.name')) AS name,h.recordedAt,u.name AS actorName FROM resource_revisions h JOIN resources r ON r.id=h.resourceId JOIN companies c ON c.id=r.companyId LEFT JOIN users u ON u.id=h.actorId WHERE (:companyId IS NULL OR r.companyId=:companyId) ORDER BY h.recordedAt DESC,h.id DESC LIMIT 6",