@badgie/crm-cli 0.6.0 → 0.8.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,25 +0,0 @@
1
- import { listLeads } from '../core/services/leads.js';
2
- export async function leadsListCommand(opts) {
3
- const rows = await listLeads({
4
- status: opts.status,
5
- limit: opts.limit ? parseInt(opts.limit, 10) : undefined,
6
- assignedTo: opts.assignedTo,
7
- });
8
- if (opts.pretty) {
9
- if (rows.length === 0) {
10
- console.log('No leads found.');
11
- return;
12
- }
13
- for (const r of rows) {
14
- const status = r.status?.name ?? '—';
15
- const who = r.client?.name ?? r.title ?? '—';
16
- const sport = r.client?.sport ?? '—';
17
- const assigned = r.assigned?.full_name ?? '—';
18
- console.log(`${r.id} ${status.padEnd(18)} ${sport.padEnd(12)} ${who.padEnd(30)} ${assigned}`);
19
- }
20
- console.log(`\n${rows.length} leads`);
21
- return;
22
- }
23
- console.log(JSON.stringify(rows, null, 2));
24
- }
25
- //# sourceMappingURL=leads-list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"leads-list.js","sourceRoot":"","sources":["../../src/commands/leads-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AASrD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAU;IAC/C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QACxD,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,CAAA;IAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAC9B,OAAM;QACR,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,IAAI,GAAG,CAAA;YACpC,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG,CAAA;YAC5C,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,GAAG,CAAA;YACpC,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,IAAI,GAAG,CAAA;YAC7C,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,QAAQ,EAAE,CACrF,CAAA;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAA;QACrC,OAAM;IACR,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AAC5C,CAAC"}
@@ -1,41 +0,0 @@
1
- import { getAuthedClient } from '../supabase.js';
2
- export async function listLeads(opts = {}) {
3
- const { client } = await getAuthedClient();
4
- let query = client
5
- .from('leads')
6
- .select(`
7
- id,
8
- title,
9
- assigned_to,
10
- created_at,
11
- status:lead_statuses(id, name),
12
- assigned:team_members!leads_assigned_to_fkey(full_name, email),
13
- client:clients!leads_client_id_fkey(id, name, sport)
14
- `)
15
- .order('created_at', { ascending: false })
16
- .limit(opts.limit ?? 50);
17
- if (opts.status) {
18
- // Allow filtering by status name (case-insensitive) via an inner join is tricky;
19
- // easier path: resolve status id first
20
- const { data: statuses, error: statusErr } = await client
21
- .from('lead_statuses')
22
- .select('id, name')
23
- .ilike('name', opts.status)
24
- .limit(1);
25
- if (statusErr)
26
- throw statusErr;
27
- const statusId = statuses?.[0]?.id;
28
- if (!statusId) {
29
- throw new Error(`No lead_status matches "${opts.status}"`);
30
- }
31
- query = query.eq('status_id', statusId);
32
- }
33
- if (opts.assignedTo) {
34
- query = query.eq('assigned_to', opts.assignedTo);
35
- }
36
- const { data, error } = await query;
37
- if (error)
38
- throw error;
39
- return (data ?? []);
40
- }
41
- //# sourceMappingURL=leads.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"leads.js","sourceRoot":"","sources":["../../../src/core/services/leads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAkBhD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAyB,EAAE;IACzD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,eAAe,EAAE,CAAA;IAE1C,IAAI,KAAK,GAAG,MAAM;SACf,IAAI,CAAC,OAAO,CAAC;SACb,MAAM,CACL;;;;;;;;KAQD,CACA;SACA,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;SACzC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;IAE1B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,iFAAiF;QACjF,uCAAuC;QACvC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM;aACtD,IAAI,CAAC,eAAe,CAAC;aACrB,MAAM,CAAC,UAAU,CAAC;aAClB,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;aAC1B,KAAK,CAAC,CAAC,CAAC,CAAA;QACX,IAAI,SAAS;YAAE,MAAM,SAAS,CAAA;QAC9B,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;QAC5D,CAAC;QACD,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IACzC,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IAClD,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAA;IACnC,IAAI,KAAK;QAAE,MAAM,KAAK,CAAA;IACtB,OAAO,CAAC,IAAI,IAAI,EAAE,CAAyB,CAAA;AAC7C,CAAC"}