@simple galleon add get focus based on userId and extend the task so that I could get the task detail as well:
focus: defineTable({
userId: v.string(),
taskId: v.id("tasks"),
description: v.optional(v.string()),
startedAt: v.number(), // Unix timestamp in milliseconds
stoppedAt: v.optional(v.number()), // Optional Unix timestamp in milliseconds
})
.index("by_userId", ["userId"])
.index("by_userId_taskId", ["userId", "taskId"])
.index("by_startedAt", ["startedAt"]),
tasks: defineTable({
userId: v.string(),
projectName: v.optional(v.string()), // Clockify project name
projectId: v.optional(v.string()), // Clockify project ID
taskName: v.optional(v.string()), // Clockify task name
taskId: v.optional(v.string()), // Clockify task ID
title: v.string(), // Custom Title (Can be pulled out from the Clickup task name)
description: v.string(), // Custom Description (Can be pulled out from the Clickup task description)
status: v.union(v.literal("todo"), v.literal("in_progress"), v.literal("waiting"), v.literal("done"), v.literal("archived")),
timeEstimate: v.number(),
logHours: v.number(),
logHoursPercentage: v.number(),
clickupTaskId: v.optional(v.string()),
clickupUrl: v.optional(v.string()),
meetingLink: v.optional(v.string()),
notes: v.optional(v.string()),
order: v.number(),
})
.index("by_status", ["status"])
.index("by_userId", ["userId"])
.index("by_userId_and_order", ["userId", "order"])
.index("by_userId_status_order", ["userId", "status", "order"])
.index("by_userId_clickupTaskId", ["userId", "clickupTaskId"]),