feat(filters): ticket company filter + column; reports: company filter in CSVs; dashboard: queue summary; docs: agents.md and roadmap updates

This commit is contained in:
Esdras Renan 2025-10-07 14:18:59 -03:00
parent 70f91f5bbd
commit 2cf399dcb1
9 changed files with 100 additions and 31 deletions

View file

@ -217,10 +217,11 @@ export const csatOverview = query({
});
export const backlogOverview = query({
args: { tenantId: v.string(), viewerId: v.id("users"), range: v.optional(v.string()) },
handler: async (ctx, { tenantId, viewerId, range }) => {
args: { tenantId: v.string(), viewerId: v.id("users"), range: v.optional(v.string()), companyId: v.optional(v.id("companies")) },
handler: async (ctx, { tenantId, viewerId, range, companyId }) => {
const viewer = await requireStaff(ctx, viewerId, tenantId);
const tickets = await fetchScopedTickets(ctx, tenantId, viewer);
let tickets = await fetchScopedTickets(ctx, tenantId, viewer);
if (companyId) tickets = tickets.filter((t) => t.companyId === companyId)
// Optional range filter (createdAt) for reporting purposes
const days = range === "7d" ? 7 : range === "30d" ? 30 : 90;
@ -350,10 +351,12 @@ export const ticketsByChannel = query({
tenantId: v.string(),
viewerId: v.id("users"),
range: v.optional(v.string()),
companyId: v.optional(v.id("companies")),
},
handler: async (ctx, { tenantId, viewerId, range }) => {
handler: async (ctx, { tenantId, viewerId, range, companyId }) => {
const viewer = await requireStaff(ctx, viewerId, tenantId);
const tickets = await fetchScopedTickets(ctx, tenantId, viewer);
let tickets = await fetchScopedTickets(ctx, tenantId, viewer);
if (companyId) tickets = tickets.filter((t) => t.companyId === companyId)
const days = range === "7d" ? 7 : range === "30d" ? 30 : 90;
const end = new Date();