@badgie/crm-cli 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,12 @@
1
1
  import { getAuthedClient } from '../core/supabase.js';
2
2
  import { commonListOptions, output, parseColumns, parseLimit } from '../core/format.js';
3
+ import { maybeResolve } from '../core/resolve.js';
4
+ import { bulkOptions, collectIds, runBulk } from '../core/bulk.js';
3
5
  async function listTasks(_a, opts) {
4
6
  const { client } = await getAuthedClient();
7
+ const assignedTo = await maybeResolve(client, 'team_member', opts.assignedTo);
8
+ const clientId = await maybeResolve(client, 'client', opts.clientId);
9
+ const leadId = await maybeResolve(client, 'lead', opts.leadId);
5
10
  let q = client
6
11
  .from('tasks')
7
12
  .select('id, title, status, priority, type, due_date, assigned_to, client_id, lead_id, created_at, is_archived')
@@ -9,14 +14,14 @@ async function listTasks(_a, opts) {
9
14
  .limit(parseLimit(opts));
10
15
  if (typeof opts.status === 'string')
11
16
  q = q.eq('status', opts.status);
12
- if (typeof opts.assignedTo === 'string')
13
- q = q.eq('assigned_to', opts.assignedTo);
17
+ if (assignedTo)
18
+ q = q.eq('assigned_to', assignedTo);
14
19
  if (typeof opts.priority === 'string')
15
20
  q = q.eq('priority', opts.priority);
16
- if (typeof opts.clientId === 'string')
17
- q = q.eq('client_id', opts.clientId);
18
- if (typeof opts.leadId === 'string')
19
- q = q.eq('lead_id', opts.leadId);
21
+ if (clientId)
22
+ q = q.eq('client_id', clientId);
23
+ if (leadId)
24
+ q = q.eq('lead_id', leadId);
20
25
  if (typeof opts.type === 'string')
21
26
  q = q.eq('type', opts.type);
22
27
  if (typeof opts.search === 'string')
@@ -33,7 +38,13 @@ async function listTasks(_a, opts) {
33
38
  output(data ?? [], { pretty: !!opts.pretty, columns: parseColumns(opts) });
34
39
  }
35
40
  async function createTask(_a, opts) {
41
+ if (typeof opts.title !== 'string' || opts.title.trim() === '') {
42
+ throw new Error('--title is required');
43
+ }
36
44
  const { client } = await getAuthedClient();
45
+ const assignedTo = await maybeResolve(client, 'team_member', opts.assignedTo);
46
+ const leadId = await maybeResolve(client, 'lead', opts.leadId);
47
+ const clientId = await maybeResolve(client, 'client', opts.clientId);
37
48
  const { data, error } = await client
38
49
  .from('tasks')
39
50
  .insert({
@@ -42,9 +53,9 @@ async function createTask(_a, opts) {
42
53
  priority: opts.priority ?? 'medium',
43
54
  status: opts.status ?? 'pending',
44
55
  due_date: opts.dueDate ?? null,
45
- assigned_to: opts.assignedTo ?? null,
46
- lead_id: opts.leadId ?? null,
47
- client_id: opts.clientId ?? null,
56
+ assigned_to: assignedTo,
57
+ lead_id: leadId,
58
+ client_id: clientId,
48
59
  })
49
60
  .select('*')
50
61
  .single();
@@ -54,46 +65,98 @@ async function createTask(_a, opts) {
54
65
  }
55
66
  async function setTaskStatus(args, opts) {
56
67
  const { client } = await getAuthedClient();
57
- const { data, error } = await client
58
- .from('tasks')
59
- .update({ status: args.status })
60
- .eq('id', args.id)
61
- .select('id, status')
62
- .single();
63
- if (error)
64
- throw error;
65
- output(data, { pretty: !!opts.pretty });
68
+ if (!args.status)
69
+ throw new Error('status argument is required');
70
+ const ids = await collectIds({
71
+ positional: args.id,
72
+ ids: opts.ids,
73
+ idsFile: opts.idsFile,
74
+ fromStdin: !!opts.stdin,
75
+ });
76
+ if (ids.length === 0)
77
+ throw new Error('No IDs provided. Pass <id>, --ids, --ids-file, or --stdin.');
78
+ if (ids.length === 1 && !opts.dryRun) {
79
+ const { data, error } = await client
80
+ .from('tasks')
81
+ .update({ status: args.status })
82
+ .eq('id', ids[0])
83
+ .select('id, status')
84
+ .single();
85
+ if (error)
86
+ throw error;
87
+ output(data, { pretty: !!opts.pretty });
88
+ return;
89
+ }
90
+ const result = await runBulk(ids, async (id) => {
91
+ const { data, error } = await client
92
+ .from('tasks')
93
+ .update({ status: args.status })
94
+ .eq('id', id)
95
+ .select('id, status')
96
+ .single();
97
+ if (error)
98
+ throw error;
99
+ return data;
100
+ }, { dryRun: !!opts.dryRun, concurrency: Number(opts.concurrency ?? 5), label: 'set-status' });
101
+ output({ updated: result.ok.length, failed: result.failed.length, errors: result.failed.slice(0, 10) }, { pretty: !!opts.pretty });
66
102
  }
67
103
  async function archiveTask(args, opts) {
68
104
  const { client } = await getAuthedClient();
69
- const { data, error } = await client
70
- .from('tasks')
71
- .update({ is_archived: true })
72
- .eq('id', args.id)
73
- .select('id, is_archived')
74
- .single();
75
- if (error)
76
- throw error;
77
- output(data, { pretty: !!opts.pretty });
105
+ const ids = await collectIds({
106
+ positional: args.id,
107
+ ids: opts.ids,
108
+ idsFile: opts.idsFile,
109
+ fromStdin: !!opts.stdin,
110
+ });
111
+ if (ids.length === 0)
112
+ throw new Error('No IDs provided. Pass <id>, --ids, --ids-file, or --stdin.');
113
+ if (ids.length === 1 && !opts.dryRun) {
114
+ const { data, error } = await client
115
+ .from('tasks')
116
+ .update({ is_archived: true })
117
+ .eq('id', ids[0])
118
+ .select('id, is_archived')
119
+ .single();
120
+ if (error)
121
+ throw error;
122
+ output(data, { pretty: !!opts.pretty });
123
+ return;
124
+ }
125
+ const result = await runBulk(ids, async (id) => {
126
+ const { data, error } = await client
127
+ .from('tasks')
128
+ .update({ is_archived: true })
129
+ .eq('id', id)
130
+ .select('id, is_archived')
131
+ .single();
132
+ if (error)
133
+ throw error;
134
+ return data;
135
+ }, { dryRun: !!opts.dryRun, concurrency: Number(opts.concurrency ?? 5), label: 'archive' });
136
+ output({ archived: result.ok.length, failed: result.failed.length, errors: result.failed.slice(0, 10) }, { pretty: !!opts.pretty });
78
137
  }
79
138
  // developer_tasks
80
139
  async function listDevTasks(_a, opts) {
81
140
  const { client } = await getAuthedClient();
141
+ const assignedTo = await maybeResolve(client, 'team_member', opts.assignedTo);
142
+ const reportedBy = await maybeResolve(client, 'team_member', opts.reportedBy);
82
143
  let q = client
83
144
  .from('developer_tasks')
84
- .select('id, title, status, type, priority, assigned_to, reported_by, created_at, is_archived')
145
+ .select('id, title, status, type, importance, priority, assigned_to, reported_by, created_at, is_archived')
85
146
  .order('created_at', { ascending: false })
86
147
  .limit(parseLimit(opts));
87
148
  if (typeof opts.status === 'string')
88
149
  q = q.eq('status', opts.status);
89
150
  if (typeof opts.type === 'string')
90
151
  q = q.eq('type', opts.type);
91
- if (typeof opts.priority === 'string')
92
- q = q.eq('priority', opts.priority);
93
- if (typeof opts.assignedTo === 'string')
94
- q = q.eq('assigned_to', opts.assignedTo);
95
- if (typeof opts.reportedBy === 'string')
96
- q = q.eq('reported_by', opts.reportedBy);
152
+ // Accept --priority as a friendly alias for the importance column.
153
+ const importanceFilter = (opts.importance ?? opts.priority);
154
+ if (typeof importanceFilter === 'string')
155
+ q = q.eq('importance', importanceFilter);
156
+ if (assignedTo)
157
+ q = q.eq('assigned_to', assignedTo);
158
+ if (reportedBy)
159
+ q = q.eq('reported_by', reportedBy);
97
160
  if (typeof opts.search === 'string')
98
161
  q = q.ilike('title', `%${opts.search}%`);
99
162
  if (opts.archived === undefined)
@@ -104,16 +167,40 @@ async function listDevTasks(_a, opts) {
104
167
  output(data ?? [], { pretty: !!opts.pretty, columns: parseColumns(opts) });
105
168
  }
106
169
  async function createDevTask(_a, opts) {
170
+ if (typeof opts.title !== 'string' || opts.title.trim() === '') {
171
+ throw new Error('--title is required');
172
+ }
107
173
  const { client } = await getAuthedClient();
174
+ // The kanban "priority" column is an integer sort order. Place new tasks at
175
+ // the end of their (type, status) lane to mirror the modal's max+1 logic.
176
+ const type = (typeof opts.type === 'string' ? opts.type : 'idea');
177
+ const status = (typeof opts.status === 'string' ? opts.status : 'pending');
178
+ const { data: maxRow } = await client
179
+ .from('developer_tasks')
180
+ .select('priority')
181
+ .eq('type', type)
182
+ .eq('status', status)
183
+ .order('priority', { ascending: false })
184
+ .limit(1)
185
+ .maybeSingle();
186
+ const nextPriority = (maxRow?.priority ?? -1) + 1;
187
+ // CLI's --priority|--importance flag maps to the importance column
188
+ // (low|medium|high). The integer priority column above is sort order.
189
+ const importance = (opts.importance ?? opts.priority ?? 'medium');
190
+ const assignedTo = await maybeResolve(client, 'team_member', opts.assignedTo);
191
+ const reportedBy = await maybeResolve(client, 'team_member', opts.reportedBy);
108
192
  const { data, error } = await client
109
193
  .from('developer_tasks')
110
194
  .insert({
111
195
  title: opts.title,
112
- type: opts.type ?? 'idea',
113
- priority: opts.priority ?? 'medium',
114
- status: opts.status ?? 'pending',
115
- assigned_to: opts.assignedTo ?? null,
116
- reported_by: opts.reportedBy ?? null,
196
+ type,
197
+ status,
198
+ importance,
199
+ priority: nextPriority,
200
+ description: typeof opts.description === 'string' ? opts.description : null,
201
+ assigned_to: assignedTo,
202
+ reported_by: reportedBy,
203
+ updated_at: new Date().toISOString(),
117
204
  })
118
205
  .select('*')
119
206
  .single();
@@ -123,15 +210,77 @@ async function createDevTask(_a, opts) {
123
210
  }
124
211
  async function setDevTaskStatus(args, opts) {
125
212
  const { client } = await getAuthedClient();
126
- const { data, error } = await client
127
- .from('developer_tasks')
128
- .update({ status: args.status })
129
- .eq('id', args.id)
130
- .select('id, status')
131
- .single();
132
- if (error)
133
- throw error;
134
- output(data, { pretty: !!opts.pretty });
213
+ if (!args.status)
214
+ throw new Error('status argument is required');
215
+ const ids = await collectIds({
216
+ positional: args.id,
217
+ ids: opts.ids,
218
+ idsFile: opts.idsFile,
219
+ fromStdin: !!opts.stdin,
220
+ });
221
+ if (ids.length === 0)
222
+ throw new Error('No IDs provided. Pass <id>, --ids, --ids-file, or --stdin.');
223
+ if (ids.length === 1 && !opts.dryRun) {
224
+ const { data, error } = await client
225
+ .from('developer_tasks')
226
+ .update({ status: args.status, updated_at: new Date().toISOString() })
227
+ .eq('id', ids[0])
228
+ .select('id, status')
229
+ .single();
230
+ if (error)
231
+ throw error;
232
+ output(data, { pretty: !!opts.pretty });
233
+ return;
234
+ }
235
+ const now = new Date().toISOString();
236
+ const result = await runBulk(ids, async (id) => {
237
+ const { data, error } = await client
238
+ .from('developer_tasks')
239
+ .update({ status: args.status, updated_at: now })
240
+ .eq('id', id)
241
+ .select('id, status')
242
+ .single();
243
+ if (error)
244
+ throw error;
245
+ return data;
246
+ }, { dryRun: !!opts.dryRun, concurrency: Number(opts.concurrency ?? 5), label: 'set-status' });
247
+ output({ updated: result.ok.length, failed: result.failed.length, errors: result.failed.slice(0, 10) }, { pretty: !!opts.pretty });
248
+ }
249
+ async function archiveDevTask(args, opts) {
250
+ const { client } = await getAuthedClient();
251
+ const ids = await collectIds({
252
+ positional: args.id,
253
+ ids: opts.ids,
254
+ idsFile: opts.idsFile,
255
+ fromStdin: !!opts.stdin,
256
+ });
257
+ if (ids.length === 0)
258
+ throw new Error('No IDs provided. Pass <id>, --ids, --ids-file, or --stdin.');
259
+ const now = new Date().toISOString();
260
+ if (ids.length === 1 && !opts.dryRun) {
261
+ const { data, error } = await client
262
+ .from('developer_tasks')
263
+ .update({ is_archived: true, updated_at: now })
264
+ .eq('id', ids[0])
265
+ .select('id, is_archived')
266
+ .single();
267
+ if (error)
268
+ throw error;
269
+ output(data, { pretty: !!opts.pretty });
270
+ return;
271
+ }
272
+ const result = await runBulk(ids, async (id) => {
273
+ const { data, error } = await client
274
+ .from('developer_tasks')
275
+ .update({ is_archived: true, updated_at: now })
276
+ .eq('id', id)
277
+ .select('id, is_archived')
278
+ .single();
279
+ if (error)
280
+ throw error;
281
+ return data;
282
+ }, { dryRun: !!opts.dryRun, concurrency: Number(opts.concurrency ?? 5), label: 'archive' });
283
+ output({ archived: result.ok.length, failed: result.failed.length, errors: result.failed.slice(0, 10) }, { pretty: !!opts.pretty });
135
284
  }
136
285
  export const tasksModule = {
137
286
  name: 'tasks',
@@ -145,9 +294,9 @@ export const tasksModule = {
145
294
  { flag: '--status <s>', description: 'pending|in_progress|completed…' },
146
295
  { flag: '--priority <p>', description: 'low|medium|high' },
147
296
  { flag: '--type <t>', description: 'task type' },
148
- { flag: '--assigned-to <uuid>', description: 'filter by assignee' },
149
- { flag: '--client-id <uuid>', description: 'filter by client' },
150
- { flag: '--lead-id <uuid>', description: 'filter by lead' },
297
+ { flag: '--assigned-to <uuid|name|email>', description: 'filter by assignee' },
298
+ { flag: '--client-id <uuid|name|email>', description: 'filter by client' },
299
+ { flag: '--lead-id <uuid|title>', description: 'filter by lead' },
151
300
  { flag: '--search <text>', description: 'ilike on title or description' },
152
301
  { flag: '--due-before <date>', description: 'due_date <= YYYY-MM-DD' },
153
302
  { flag: '--due-after <date>', description: 'due_date >= YYYY-MM-DD' },
@@ -166,30 +315,35 @@ export const tasksModule = {
166
315
  { flag: '--priority <p>', description: 'low|medium|high' },
167
316
  { flag: '--status <s>', description: 'default pending' },
168
317
  { flag: '--due-date <date>', description: 'ISO date' },
169
- { flag: '--assigned-to <uuid>', description: 'team_members.id' },
170
- { flag: '--lead-id <uuid>', description: 'link to lead' },
171
- { flag: '--client-id <uuid>', description: 'link to client' },
318
+ { flag: '--assigned-to <uuid|name|email>', description: 'team member (name resolved via ilike)' },
319
+ { flag: '--lead-id <uuid|title>', description: 'link to lead' },
320
+ { flag: '--client-id <uuid|name|email>', description: 'link to client' },
172
321
  { flag: '--pretty', description: 'human output' },
173
322
  ],
174
323
  handler: createTask,
175
324
  },
176
325
  {
177
326
  path: ['tasks', 'set-status'],
178
- summary: 'Change task status',
327
+ summary: 'Change task status (single or bulk)',
179
328
  tags: ['write'],
180
329
  args: [
181
- { name: 'id', required: true, description: 'task uuid' },
182
330
  { name: 'status', required: true, description: 'new status' },
331
+ { name: 'id', required: false, description: 'task uuid (or use --ids / --stdin)' },
332
+ ],
333
+ options: [...bulkOptions, { flag: '--pretty', description: 'human output' }],
334
+ examples: [
335
+ 'badgie-crm tasks set-status completed <uuid>',
336
+ 'badgie-crm tasks set-status completed --ids "uuid1,uuid2,uuid3"',
337
+ 'badgie-crm tasks set-status completed --ids-file ids.txt --dry-run',
183
338
  ],
184
- options: [{ flag: '--pretty', description: 'human output' }],
185
339
  handler: setTaskStatus,
186
340
  },
187
341
  {
188
342
  path: ['tasks', 'archive'],
189
- summary: 'Archive a task',
343
+ summary: 'Archive a task (single or bulk)',
190
344
  tags: ['write'],
191
- args: [{ name: 'id', required: true, description: 'task uuid' }],
192
- options: [{ flag: '--pretty', description: 'human output' }],
345
+ args: [{ name: 'id', required: false, description: 'task uuid (or use --ids / --stdin)' }],
346
+ options: [...bulkOptions, { flag: '--pretty', description: 'human output' }],
193
347
  handler: archiveTask,
194
348
  },
195
349
  {
@@ -199,9 +353,10 @@ export const tasksModule = {
199
353
  options: [
200
354
  { flag: '--status <s>', description: 'filter by status' },
201
355
  { flag: '--type <t>', description: 'bug|feature|idea|…' },
202
- { flag: '--priority <p>', description: 'low|medium|high' },
203
- { flag: '--assigned-to <uuid>', description: 'filter by assignee' },
204
- { flag: '--reported-by <uuid>', description: 'filter by reporter' },
356
+ { flag: '--importance <i>', description: 'low|medium|high (alias: --priority)' },
357
+ { flag: '--priority <p>', description: 'alias for --importance' },
358
+ { flag: '--assigned-to <uuid|name|email>', description: 'filter by assignee' },
359
+ { flag: '--reported-by <uuid|name|email>', description: 'filter by reporter' },
205
360
  { flag: '--search <text>', description: 'ilike on title' },
206
361
  { flag: '--archived', description: 'include archived' },
207
362
  ...commonListOptions(),
@@ -215,25 +370,35 @@ export const tasksModule = {
215
370
  options: [
216
371
  { flag: '--title <text>', description: 'required' },
217
372
  { flag: '--type <t>', description: 'bug|feature|idea (default idea)' },
218
- { flag: '--priority <p>', description: 'low|medium|high' },
373
+ { flag: '--importance <i>', description: 'low|medium|high (default medium, alias: --priority)' },
374
+ { flag: '--priority <p>', description: 'alias for --importance' },
219
375
  { flag: '--status <s>', description: 'default pending' },
220
- { flag: '--assigned-to <uuid>', description: 'assignee' },
221
- { flag: '--reported-by <uuid>', description: 'reporter' },
376
+ { flag: '--description <text>', description: 'long description' },
377
+ { flag: '--assigned-to <uuid|name|email>', description: 'assignee (team member)' },
378
+ { flag: '--reported-by <uuid|name|email>', description: 'reporter (team member)' },
222
379
  { flag: '--pretty', description: 'human output' },
223
380
  ],
224
381
  handler: createDevTask,
225
382
  },
226
383
  {
227
384
  path: ['development', 'set-status'],
228
- summary: 'Change developer_task status',
385
+ summary: 'Change developer_task status (single or bulk)',
229
386
  tags: ['write'],
230
387
  args: [
231
- { name: 'id', required: true, description: 'developer_task uuid' },
232
388
  { name: 'status', required: true, description: 'new status' },
389
+ { name: 'id', required: false, description: 'developer_task uuid (or use --ids / --stdin)' },
233
390
  ],
234
- options: [{ flag: '--pretty', description: 'human output' }],
391
+ options: [...bulkOptions, { flag: '--pretty', description: 'human output' }],
235
392
  handler: setDevTaskStatus,
236
393
  },
394
+ {
395
+ path: ['development', 'archive'],
396
+ summary: 'Archive a developer_task (single or bulk)',
397
+ tags: ['write'],
398
+ args: [{ name: 'id', required: false, description: 'developer_task uuid (or use --ids / --stdin)' }],
399
+ options: [...bulkOptions, { flag: '--pretty', description: 'human output' }],
400
+ handler: archiveDevTask,
401
+ },
237
402
  ],
238
403
  };
239
404
  //# sourceMappingURL=tasks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/commands/tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/commands/tasks.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { getAuthedClient } from '../core/supabase.js';
2
2
  import { commonListOptions, output, parseColumns, parseLimit } from '../core/format.js';
3
+ import { maybeResolve } from '../core/resolve.js';
4
+ import { bulkOptions, collectIds, runBulk } from '../core/bulk.js';
3
5
  async function listTopClients(_a, opts) {
4
6
  const { client } = await getAuthedClient();
5
7
  const now = new Date();
@@ -15,8 +17,9 @@ async function listTopClients(_a, opts) {
15
17
  .eq('year', year)
16
18
  .order('created_at', { ascending: false })
17
19
  .limit(parseLimit(opts));
18
- if (typeof opts.kam === 'string')
19
- reviewsQ = reviewsQ.eq('reviewed_by', opts.kam);
20
+ const kam = await maybeResolve(client, 'team_member', opts.kam);
21
+ if (kam)
22
+ reviewsQ = reviewsQ.eq('reviewed_by', kam);
20
23
  if (typeof opts.status === 'string')
21
24
  reviewsQ = reviewsQ.eq('status', opts.status);
22
25
  const { data, error } = await reviewsQ;
@@ -34,15 +37,40 @@ async function listTopClients(_a, opts) {
34
37
  }
35
38
  async function setReviewStatus(args, opts) {
36
39
  const { client } = await getAuthedClient();
37
- const { data, error } = await client
38
- .from('client_monthly_reviews')
39
- .update({ status: args.status })
40
- .eq('id', args.id)
41
- .select('id, status')
42
- .single();
43
- if (error)
44
- throw error;
45
- output(data, { pretty: !!opts.pretty });
40
+ if (!args.status)
41
+ throw new Error('status argument is required');
42
+ const ids = await collectIds({
43
+ positional: args.id,
44
+ ids: opts.ids,
45
+ idsFile: opts.idsFile,
46
+ fromStdin: !!opts.stdin,
47
+ });
48
+ if (ids.length === 0)
49
+ throw new Error('No IDs provided. Pass <id>, --ids, --ids-file, or --stdin.');
50
+ if (ids.length === 1 && !opts.dryRun) {
51
+ const { data, error } = await client
52
+ .from('client_monthly_reviews')
53
+ .update({ status: args.status })
54
+ .eq('id', ids[0])
55
+ .select('id, status')
56
+ .single();
57
+ if (error)
58
+ throw error;
59
+ output(data, { pretty: !!opts.pretty });
60
+ return;
61
+ }
62
+ const result = await runBulk(ids, async (id) => {
63
+ const { data, error } = await client
64
+ .from('client_monthly_reviews')
65
+ .update({ status: args.status })
66
+ .eq('id', id)
67
+ .select('id, status')
68
+ .single();
69
+ if (error)
70
+ throw error;
71
+ return data;
72
+ }, { dryRun: !!opts.dryRun, concurrency: Number(opts.concurrency ?? 5), label: 'set-status' });
73
+ output({ updated: result.ok.length, failed: result.failed.length, errors: result.failed.slice(0, 10) }, { pretty: !!opts.pretty });
46
74
  }
47
75
  export const topClientsModule = {
48
76
  name: 'top-clients',
@@ -55,7 +83,7 @@ export const topClientsModule = {
55
83
  options: [
56
84
  { flag: '--month <n>', description: '1-12 (default current month)' },
57
85
  { flag: '--year <n>', description: 'YYYY (default current year)' },
58
- { flag: '--kam <uuid>', description: 'filter by reviewed_by (team_members.id)' },
86
+ { flag: '--kam <uuid|name|email>', description: 'filter by reviewed_by (team member)' },
59
87
  { flag: '--status <s>', description: 'pending|completed|…' },
60
88
  { flag: '--search <text>', description: 'filter by client name (client-side)' },
61
89
  ...commonListOptions(),
@@ -68,13 +96,13 @@ export const topClientsModule = {
68
96
  },
69
97
  {
70
98
  path: ['top-clients', 'set-status'],
71
- summary: 'Change review status',
99
+ summary: 'Change review status (single or bulk)',
72
100
  tags: ['write'],
73
101
  args: [
74
- { name: 'id', required: true, description: 'client_monthly_reviews.id' },
75
102
  { name: 'status', required: true, description: 'new status' },
103
+ { name: 'id', required: false, description: 'client_monthly_reviews.id (or use --ids / --stdin)' },
76
104
  ],
77
- options: [{ flag: '--pretty', description: 'human output' }],
105
+ options: [...bulkOptions, { flag: '--pretty', description: 'human output' }],
78
106
  handler: setReviewStatus,
79
107
  },
80
108
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"top-clients.js","sourceRoot":"","sources":["../../src/commands/top-clients.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"top-clients.js","sourceRoot":"","sources":["../../src/commands/top-clients.ts"],"names":[],"mappings":"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"}