eggi-ai-db-schema-2 12.54.2 → 12.54.3
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.
- package/README.md +38 -33
- package/dist/index.js +1 -1
- package/dist/utils/llm-inference-job-operations.d.ts +5 -5
- package/dist/utils/llm-inference-job-operations.d.ts.map +1 -1
- package/dist/utils/llm-inference-job-operations.js +8 -7
- package/dist/utils/llm-inference-job-operations.js.map +1 -1
- package/dist/utils/sales-pipeline-operations.d.ts.map +1 -1
- package/dist/utils/sales-pipeline-operations.js +49 -7
- package/dist/utils/sales-pipeline-operations.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# eggi-ai-db-schema
|
|
1
|
+
# eggi-ai-db-schema-2
|
|
2
2
|
|
|
3
|
-
[](https://badge.fury.io/js/eggi-ai-db-schema)
|
|
3
|
+
[](https://badge.fury.io/js/eggi-ai-db-schema-2)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
5
|
|
|
6
6
|
Type-safe database schema and client for Eggi.AI with AWS RDS integration using **native PostgreSQL queries**. Perfect for Lambda functions, backend services, and any Node.js application that needs secure, performant database access.
|
|
@@ -8,21 +8,24 @@ Type-safe database schema and client for Eggi.AI with AWS RDS integration using
|
|
|
8
8
|
## 📦 Installation
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
|
-
npm install eggi-ai-db-schema
|
|
11
|
+
npm install eggi-ai-db-schema-2
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
## 🎯 What's New
|
|
15
15
|
|
|
16
16
|
### v12.13.0 - Organizations in Mapping Jobs
|
|
17
|
+
|
|
17
18
|
- ✅ **Organizations Array**: Mapping jobs now include which workspaces they were exported to
|
|
18
19
|
- ✅ **Multiple Organizations**: Support for jobs exported to multiple organizations
|
|
19
20
|
|
|
20
21
|
### v12.12.0 - Unlimited Quota Support
|
|
22
|
+
|
|
21
23
|
- ✅ **Null for Unlimited**: `null` quotaLimit indicates unlimited quotas (PRO_VERSION with active subscription)
|
|
22
24
|
- ✅ **UTC Period Calculations**: Fixed timezone issues - all quota periods use UTC for consistent boundaries
|
|
23
25
|
- ✅ **Always Returns Both**: Daily and monthly quotas always returned for all organizations
|
|
24
26
|
|
|
25
27
|
### v12.0.0 - Native PostgreSQL Migration
|
|
28
|
+
|
|
26
29
|
**🚀 Native PostgreSQL Migration**: Complete removal of Drizzle ORM in favor of native PostgreSQL queries for better performance, flexibility, and control.
|
|
27
30
|
|
|
28
31
|
- ✅ **Direct SQL queries** using the `pg` library
|
|
@@ -89,7 +92,7 @@ npm run migrate:prod:init # Initialize prod migration system
|
|
|
89
92
|
### For Lambda Functions (Recommended Approach)
|
|
90
93
|
|
|
91
94
|
```typescript
|
|
92
|
-
import { dbService } from "eggi-ai-db-schema";
|
|
95
|
+
import { dbService } from "eggi-ai-db-schema-2";
|
|
93
96
|
|
|
94
97
|
// Initialize database connection at module level for reuse across Lambda invocations
|
|
95
98
|
// This ensures optimal connection pooling and prevents race conditions
|
|
@@ -126,7 +129,7 @@ export const handler = async event => {
|
|
|
126
129
|
### Direct Database Access
|
|
127
130
|
|
|
128
131
|
```typescript
|
|
129
|
-
import { initializeDb, getDb } from "eggi-ai-db-schema";
|
|
132
|
+
import { initializeDb, getDb } from "eggi-ai-db-schema-2";
|
|
130
133
|
|
|
131
134
|
export const handler = async event => {
|
|
132
135
|
try {
|
|
@@ -166,7 +169,7 @@ export const handler = async event => {
|
|
|
166
169
|
### Normalized Skills Architecture
|
|
167
170
|
|
|
168
171
|
```typescript
|
|
169
|
-
import { findOrCreateSkill, addProfileSkills, getPopularSkills } from "eggi-ai-db-schema";
|
|
172
|
+
import { findOrCreateSkill, addProfileSkills, getPopularSkills } from "eggi-ai-db-schema-2";
|
|
170
173
|
|
|
171
174
|
// Process LinkedIn profile skills (auto-normalized to lowercase)
|
|
172
175
|
const skillIds = await findOrCreateSkills(db, ["JavaScript", "Machine Learning", "Leadership"]);
|
|
@@ -187,29 +190,32 @@ const popularSkills = await getPopularSkills(db, 50);
|
|
|
187
190
|
This package provides provider-specific operations for LinkedIn accounts:
|
|
188
191
|
|
|
189
192
|
**Forager Provider Operations:**
|
|
193
|
+
|
|
190
194
|
```typescript
|
|
191
195
|
import {
|
|
192
196
|
findLinkedInAccountByForagerId,
|
|
193
197
|
findLinkedInAccountByPublicIdentifier,
|
|
194
198
|
findOrCreateLinkedInAccountByForagerId,
|
|
195
199
|
storeCompleteLinkedInProfileByForagerId,
|
|
196
|
-
} from "eggi-ai-db-schema";
|
|
200
|
+
} from "eggi-ai-db-schema-2";
|
|
197
201
|
```
|
|
198
202
|
|
|
199
203
|
**Ghost Genius Provider Operations:**
|
|
204
|
+
|
|
200
205
|
```typescript
|
|
201
206
|
import {
|
|
202
207
|
findLinkedInAccountByAcoa,
|
|
203
208
|
findOrCreateLinkedInAccountByAcoa,
|
|
204
209
|
storeCompleteLinkedInProfileByAcoa,
|
|
205
|
-
} from "eggi-ai-db-schema";
|
|
210
|
+
} from "eggi-ai-db-schema-2";
|
|
206
211
|
```
|
|
207
212
|
|
|
208
213
|
**Shared Operations:**
|
|
214
|
+
|
|
209
215
|
```typescript
|
|
210
216
|
import {
|
|
211
217
|
findLinkedInAccountByAnyIdentifier, // Works with forager_id, ACoA, or public_identifier
|
|
212
|
-
} from "eggi-ai-db-schema";
|
|
218
|
+
} from "eggi-ai-db-schema-2";
|
|
213
219
|
```
|
|
214
220
|
|
|
215
221
|
### LinkedIn Account-Based Relationship Operations
|
|
@@ -219,7 +225,7 @@ import {
|
|
|
219
225
|
upsertLinkedInAccountRelationshipScore,
|
|
220
226
|
getLinkedInAccountRelationships,
|
|
221
227
|
getTopLinkedInAccountConnections,
|
|
222
|
-
} from "eggi-ai-db-schema";
|
|
228
|
+
} from "eggi-ai-db-schema-2";
|
|
223
229
|
|
|
224
230
|
// Create relationship score between LinkedIn accounts
|
|
225
231
|
await upsertLinkedInAccountRelationshipScore(db, {
|
|
@@ -270,7 +276,7 @@ cp env.example .env
|
|
|
270
276
|
### Type-Safe Database Operations
|
|
271
277
|
|
|
272
278
|
```typescript
|
|
273
|
-
import { getDb, query, queryOne } from "eggi-ai-db-schema";
|
|
279
|
+
import { getDb, query, queryOne } from "eggi-ai-db-schema-2";
|
|
274
280
|
|
|
275
281
|
// Get fully-typed database client
|
|
276
282
|
const db = await getDb();
|
|
@@ -330,20 +336,20 @@ const userProfiles = await query(
|
|
|
330
336
|
|
|
331
337
|
## 🗄️ Schema Overview
|
|
332
338
|
|
|
333
|
-
| Table
|
|
334
|
-
|
|
|
335
|
-
| **public.users**
|
|
336
|
-
| **public.authenticated_users**
|
|
337
|
-
| **linkedin.accounts**
|
|
338
|
-
| **linkedin.work_experience**
|
|
339
|
-
| **linkedin.education**
|
|
340
|
-
| **public.contact_infos**
|
|
341
|
-
| **linkedin.relationships**
|
|
342
|
-
| **public.organizations**
|
|
343
|
-
| **monitoring.mapping_jobs**
|
|
344
|
-
| **monitoring.mapping_job_quotas**
|
|
345
|
-
| **monitoring.organization_assignment_jobs** | Org assignment tracking (v12.13.0+) | `id`, `mapping_job_id`, `organization_id`, `completed_at`
|
|
346
|
-
| **public.skills**
|
|
339
|
+
| Table | Purpose | Key Fields |
|
|
340
|
+
| ------------------------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------- |
|
|
341
|
+
| **public.users** | Core user accounts | `id`, `given_name`, `family_name`, `created_at` |
|
|
342
|
+
| **public.authenticated_users** | Authentication records | `user_id`, `cognito_user_id`, `signup_email` |
|
|
343
|
+
| **linkedin.accounts** | LinkedIn platform identifiers | `forager_id` (nullable), `public_identifier`, `linkedin_identifier_acoa` |
|
|
344
|
+
| **linkedin.work_experience** | Professional experience | `linkedin_account_id`, `company_name`, `title` |
|
|
345
|
+
| **linkedin.education** | Educational background | `linkedin_account_id`, `school_name`, `degree` |
|
|
346
|
+
| **public.contact_infos** | User contact information | `user_id`, `type`, `value`, `source` |
|
|
347
|
+
| **linkedin.relationships** | LinkedIn account relationships | `linkedin_account_id_a`, `linkedin_account_id_b`, `score` |
|
|
348
|
+
| **public.organizations** | Workspaces and teams | `id`, `name`, `workspace_type`, `subscription_tier`, `created_by_user_id` |
|
|
349
|
+
| **monitoring.mapping_jobs** | Relationship analysis jobs | `id`, `linkedin_account_id`, `completed_at` |
|
|
350
|
+
| **monitoring.mapping_job_quotas** | Quota tracking (v12.12.0+) | `id`, `authenticated_user_id`, `organization_id`, `quota_period`, `quota_limit` (nullable), `current_usage` |
|
|
351
|
+
| **monitoring.organization_assignment_jobs** | Org assignment tracking (v12.13.0+) | `id`, `mapping_job_id`, `organization_id`, `completed_at` |
|
|
352
|
+
| **public.skills** | Normalized skills library | `id`, `name`, `normalized_name` |
|
|
347
353
|
|
|
348
354
|
### Supported Platforms
|
|
349
355
|
|
|
@@ -429,7 +435,7 @@ npm install
|
|
|
429
435
|
|
|
430
436
|
```typescript
|
|
431
437
|
// OLD (v11.x and earlier with Drizzle)
|
|
432
|
-
import { getDb, eq, users } from "eggi-ai-db-schema";
|
|
438
|
+
import { getDb, eq, users } from "eggi-ai-db-schema-2";
|
|
433
439
|
|
|
434
440
|
const db = await getDb();
|
|
435
441
|
const user = await db.query.users.findFirst({
|
|
@@ -437,8 +443,8 @@ const user = await db.query.users.findFirst({
|
|
|
437
443
|
});
|
|
438
444
|
|
|
439
445
|
// NEW (v12.0.0+ with native SQL)
|
|
440
|
-
import { getDb, queryOne } from "eggi-ai-db-schema";
|
|
441
|
-
import { User } from "eggi-ai-db-schema";
|
|
446
|
+
import { getDb, queryOne } from "eggi-ai-db-schema-2";
|
|
447
|
+
import { User } from "eggi-ai-db-schema-2";
|
|
442
448
|
|
|
443
449
|
const db = await getDb();
|
|
444
450
|
const user = await queryOne<User>(
|
|
@@ -564,7 +570,7 @@ Before publishing, ensure you have:
|
|
|
564
570
|
Monitor publishing progress at:
|
|
565
571
|
|
|
566
572
|
- **GitHub Actions**: `https://github.com/Eggi-AI-Inc/eggi.ai-db-schema/actions`
|
|
567
|
-
- **NPM Package**: `https://www.npmjs.com/package/eggi-ai-db-schema`
|
|
573
|
+
- **NPM Package**: `https://www.npmjs.com/package/eggi-ai-db-schema-2`
|
|
568
574
|
|
|
569
575
|
### 🔧 Package Configuration
|
|
570
576
|
|
|
@@ -593,11 +599,11 @@ Once published, install in your projects:
|
|
|
593
599
|
|
|
594
600
|
```bash
|
|
595
601
|
# Install the package
|
|
596
|
-
npm install eggi-ai-db-schema
|
|
602
|
+
npm install eggi-ai-db-schema-2
|
|
597
603
|
|
|
598
604
|
# Use in Lambda functions
|
|
599
|
-
import { getDb, queryOne } from "eggi-ai-db-schema";
|
|
600
|
-
import { User } from "eggi-ai-db-schema";
|
|
605
|
+
import { getDb, queryOne } from "eggi-ai-db-schema-2";
|
|
606
|
+
import { User } from "eggi-ai-db-schema-2";
|
|
601
607
|
```
|
|
602
608
|
|
|
603
609
|
### 🎯 Version Strategy
|
|
@@ -642,7 +648,6 @@ This project uses **public RDS access** with security controls:
|
|
|
642
648
|
|
|
643
649
|
**🎯 Result**: Production-ready database schema with secure IP-whitelisted access, AWS integration, native PostgreSQL queries, and comprehensive TypeScript support.
|
|
644
650
|
|
|
645
|
-
|
|
646
651
|
## 🆘 Need Help?
|
|
647
652
|
|
|
648
653
|
- **Setup Issues**: Check [Local Development Guide](docs/LOCAL_DEVELOPMENT.md)
|
package/dist/index.js
CHANGED
|
@@ -70,7 +70,7 @@ import {
|
|
|
70
70
|
eq,
|
|
71
71
|
findUserByCognitoId,
|
|
72
72
|
getExistingUnipileAccount
|
|
73
|
-
} from "eggi-ai-db-schema";
|
|
73
|
+
} from "eggi-ai-db-schema-2";
|
|
74
74
|
|
|
75
75
|
// NEW RECOMMENDED APPROACH: Object-Oriented Database Service
|
|
76
76
|
// Auto-initializes on first use - no manual setup required!
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*
|
|
15
15
|
* USAGE (Preparation Handler):
|
|
16
16
|
* ```typescript
|
|
17
|
-
* import { createLlmInferenceJob } from 'eggi-ai-db-schema';
|
|
17
|
+
* import { createLlmInferenceJob } from 'eggi-ai-db-schema-2';
|
|
18
18
|
*
|
|
19
19
|
* // After validating mapping job completion
|
|
20
20
|
* const { llmInferenceJob } = await createLlmInferenceJob(db, {
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
* });
|
|
36
36
|
* ```
|
|
37
37
|
*/
|
|
38
|
-
import { Pool, PoolClient } from
|
|
38
|
+
import { Pool, PoolClient } from "pg";
|
|
39
39
|
import type { DatabaseOrTransaction } from "../lib/db";
|
|
40
40
|
import { type LlmInferenceJob } from "../lib/schema";
|
|
41
41
|
/**
|
|
@@ -65,7 +65,7 @@ export declare function createLlmInferenceJob(db: DatabaseOrTransaction | Pool |
|
|
|
65
65
|
* @returns LLM inference job status or null if no job found
|
|
66
66
|
*/
|
|
67
67
|
export declare function getLlmInferenceJobStatusForMappingJob(db: DatabaseOrTransaction | Pool | PoolClient, mappingJobId: number): Promise<{
|
|
68
|
-
status:
|
|
68
|
+
status: "pending" | "completed" | "not_found";
|
|
69
69
|
llmInferenceJobId: number | null;
|
|
70
70
|
mappingJobId: number | null;
|
|
71
71
|
createdAt: Date | null;
|
|
@@ -88,7 +88,7 @@ export declare function getLlmInferenceJobStatusForContributor(db: DatabaseOrTra
|
|
|
88
88
|
userId: number;
|
|
89
89
|
organizationId: number;
|
|
90
90
|
}): Promise<{
|
|
91
|
-
status:
|
|
91
|
+
status: "pending" | "completed" | "not_found";
|
|
92
92
|
llmInferenceJobId: number | null;
|
|
93
93
|
mappingJobId: number | null;
|
|
94
94
|
createdAt: Date | null;
|
|
@@ -106,7 +106,7 @@ export declare function getLlmInferenceJobStatusForContributor(db: DatabaseOrTra
|
|
|
106
106
|
* @returns Map of user_id to LLM inference job status
|
|
107
107
|
*/
|
|
108
108
|
export declare function getAllLlmInferenceJobStatusesForOrganization(db: DatabaseOrTransaction | Pool | PoolClient, organizationId: number): Promise<Record<number, {
|
|
109
|
-
status:
|
|
109
|
+
status: "pending" | "completed" | "not_found";
|
|
110
110
|
llmInferenceJobId: number | null;
|
|
111
111
|
mappingJobId: number | null;
|
|
112
112
|
createdAt: Date | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-inference-job-operations.d.ts","sourceRoot":"","sources":["../../src/utils/llm-inference-job-operations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAIrD;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,qBAAqB,GAAG,IAAI,GAAG,UAAU,EAC7C,MAAM,EAAE;IACN,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACnC,GACA,OAAO,CAAC;IAAE,eAAe,EAAE,eAAe,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"llm-inference-job-operations.d.ts","sourceRoot":"","sources":["../../src/utils/llm-inference-job-operations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAIrD;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,qBAAqB,GAAG,IAAI,GAAG,UAAU,EAC7C,MAAM,EAAE;IACN,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACnC,GACA,OAAO,CAAC;IAAE,eAAe,EAAE,eAAe,CAAA;CAAE,CAAC,CAqC/C;AAED;;;;;;;;GAQG;AACH,wBAAsB,qCAAqC,CACzD,EAAE,EAAE,qBAAqB,GAAG,IAAI,GAAG,UAAU,EAC7C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IACT,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;IAC9C,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;CAC1B,GAAG,IAAI,CAAC,CA2DR;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,sCAAsC,CAC1D,EAAE,EAAE,qBAAqB,GAAG,IAAI,GAAG,UAAU,EAC7C,MAAM,EAAE;IACN,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB,GACA,OAAO,CAAC;IACT,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;IAC9C,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;CAC1B,GAAG,IAAI,CAAC,CAwCR;AAED;;;;;;;;;GASG;AACH,wBAAsB,4CAA4C,CAChE,EAAE,EAAE,qBAAqB,GAAG,IAAI,GAAG,UAAU,EAC7C,cAAc,EAAE,MAAM,GACrB,OAAO,CACR,MAAM,CACJ,MAAM,EACN;IACE,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;IAC9C,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;CAC1B,CACF,CACF,CAgGA"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*
|
|
16
16
|
* USAGE (Preparation Handler):
|
|
17
17
|
* ```typescript
|
|
18
|
-
* import { createLlmInferenceJob } from 'eggi-ai-db-schema';
|
|
18
|
+
* import { createLlmInferenceJob } from 'eggi-ai-db-schema-2';
|
|
19
19
|
*
|
|
20
20
|
* // After validating mapping job completion
|
|
21
21
|
* const { llmInferenceJob } = await createLlmInferenceJob(db, {
|
|
@@ -73,7 +73,10 @@ async function createLlmInferenceJob(db, params) {
|
|
|
73
73
|
started_at,
|
|
74
74
|
completed_at
|
|
75
75
|
`;
|
|
76
|
-
const llmInferenceJob = await (0, pg_client_1.queryOne)(db, sql, [
|
|
76
|
+
const llmInferenceJob = await (0, pg_client_1.queryOne)(db, sql, [
|
|
77
|
+
mappingJobId,
|
|
78
|
+
JSON.stringify(jobMetadata),
|
|
79
|
+
]);
|
|
77
80
|
if (!llmInferenceJob) {
|
|
78
81
|
throw new Error("Failed to create LLM inference job");
|
|
79
82
|
}
|
|
@@ -112,7 +115,7 @@ async function getLlmInferenceJobStatusForMappingJob(db, mappingJobId) {
|
|
|
112
115
|
const llmJob = await (0, pg_client_1.queryOne)(db, sql, [mappingJobId]);
|
|
113
116
|
if (!llmJob) {
|
|
114
117
|
return {
|
|
115
|
-
status:
|
|
118
|
+
status: "not_found",
|
|
116
119
|
llmInferenceJobId: null,
|
|
117
120
|
mappingJobId: mappingJobId,
|
|
118
121
|
createdAt: null,
|
|
@@ -121,9 +124,7 @@ async function getLlmInferenceJobStatusForMappingJob(db, mappingJobId) {
|
|
|
121
124
|
};
|
|
122
125
|
}
|
|
123
126
|
// Determine status based on completion
|
|
124
|
-
const status = llmJob.completed_at
|
|
125
|
-
? 'completed'
|
|
126
|
-
: 'pending';
|
|
127
|
+
const status = llmJob.completed_at ? "completed" : "pending";
|
|
127
128
|
return {
|
|
128
129
|
status,
|
|
129
130
|
llmInferenceJobId: llmJob.id,
|
|
@@ -162,7 +163,7 @@ async function getLlmInferenceJobStatusForContributor(db, params) {
|
|
|
162
163
|
const orgAssignmentJob = await (0, organization_assignment_job_operations_1.getLatestOrganizationAssignmentJobForUser)(db, userId, organizationId);
|
|
163
164
|
if (!orgAssignmentJob) {
|
|
164
165
|
return {
|
|
165
|
-
status:
|
|
166
|
+
status: "not_found",
|
|
166
167
|
llmInferenceJobId: null,
|
|
167
168
|
mappingJobId: null,
|
|
168
169
|
createdAt: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-inference-job-operations.js","sourceRoot":"","sources":["../../src/utils/llm-inference-job-operations.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;;AAqBH,
|
|
1
|
+
{"version":3,"file":"llm-inference-job-operations.js","sourceRoot":"","sources":["../../src/utils/llm-inference-job-operations.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;;AAqBH,sDA2CC;AAWD,sFAqEC;AAcD,wFAqDC;AAYD,oGA+GC;AA3UD,gDAAmD;AAEnD,kCAAgD;AAGhD,qGAAqG;AAErG;;;;;;;;;;GAUG;AACI,KAAK,UAAU,qBAAqB,CACzC,EAA6C,EAC7C,MAGC;IAED,MAAM,EAAE,YAAY,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAElD,IAAA,wBAAmB,EACjB,QAAQ,EACR,+BAA+B,EAC/B,EAAE,YAAY,EAAE,WAAW,EAAE,EAC7B,SAAS,EACT;QACE,SAAS,EAAE,uBAAuB;QAClC,YAAY;KACb,CACF,CAAC;IAEF,MAAM,GAAG,GAAG;;;;;;;;;;;GAWX,CAAC;IAEF,MAAM,eAAe,GAAG,MAAM,IAAA,oBAAQ,EAAkB,EAAuB,EAAE,GAAG,EAAE;QACpF,YAAY;QACZ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;KAC5B,CAAC,CAAC;IAEH,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,qCAAqC,CACzD,EAA6C,EAC7C,YAAoB;IASpB,IAAA,wBAAmB,EAAC,QAAQ,EAAE,+BAA+B,EAAE,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE;QAC1F,SAAS,EAAE,uCAAuC;QAClD,YAAY;KACb,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,6DAA6D;QAC7D,MAAM,GAAG,GAAG;;;;;;;;;;;;;KAaX,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAQ,EAQ1B,EAAuB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QAEjD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,MAAM,EAAE,WAAW;gBACnB,iBAAiB,EAAE,IAAI;gBACvB,YAAY,EAAE,YAAY;gBAC1B,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC;QACJ,CAAC;QAED,uCAAuC;QACvC,MAAM,MAAM,GAA4B,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAEtF,OAAO;YACL,MAAM;YACN,iBAAiB,EAAE,MAAM,CAAC,EAAE;YAC5B,YAAY,EAAE,MAAM,CAAC,cAAc;YACnC,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,WAAW,EAAE,MAAM,CAAC,YAAY;SACjC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,sCAAsC,CAC1D,EAA6C,EAC7C,MAGC;IASD,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAE1C,IAAA,wBAAmB,EACjB,QAAQ,EACR,+BAA+B,EAC/B,EAAE,MAAM,EAAE,cAAc,EAAE,EAC1B,SAAS,EACT;QACE,SAAS,EAAE,wCAAwC;QACnD,MAAM;QACN,cAAc;KACf,CACF,CAAC;IAEF,IAAI,CAAC;QACH,oDAAoD;QACpD,MAAM,gBAAgB,GAAG,MAAM,IAAA,kFAAyC,EACtE,EAAuB,EACvB,MAAM,EACN,cAAc,CACf,CAAC;QAEF,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO;gBACL,MAAM,EAAE,WAAW;gBACnB,iBAAiB,EAAE,IAAI;gBACvB,YAAY,EAAE,IAAI;gBAClB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC;QACJ,CAAC;QAED,8DAA8D;QAC9D,OAAO,MAAM,qCAAqC,CAAC,EAAE,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACxF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yDAAyD,EAAE,KAAK,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,4CAA4C,CAChE,EAA6C,EAC7C,cAAsB;IActB,IAAA,wBAAmB,EAAC,QAAQ,EAAE,+BAA+B,EAAE,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE;QAC5F,SAAS,EAAE,8CAA8C;QACzD,cAAc;KACf,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,8FAA8F;QAC9F,2HAA2H;QAC3H,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8CX,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAA,iBAAK,EAQxB,EAAuB,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QAEnD,2CAA2C;QAC3C,MAAM,SAAS,GAUX,EAAE,CAAC;QAEP,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG;gBACvB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,iBAAiB,EAAE,GAAG,CAAC,oBAAoB;gBAC3C,YAAY,EAAE,GAAG,CAAC,cAAc;gBAChC,SAAS,EAAE,GAAG,CAAC,UAAU;gBACzB,SAAS,EAAE,GAAG,CAAC,UAAU;gBACzB,WAAW,EAAE,GAAG,CAAC,YAAY;aAC9B,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gEAAgE,EAAE,KAAK,CAAC,CAAC;QACvF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sales-pipeline-operations.d.ts","sourceRoot":"","sources":["../../src/utils/sales-pipeline-operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAG1C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,2BAA2B,EAAE,MAAM,CAAC;IACpC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,wCAAwC,EAAE,MAAM,CAAC;IACjD,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC;IAC5F,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,cAAc,EAAE,MAAM,EACtB,wCAAwC,EAAE,MAAM,EAChD,2BAA2B,EAAE,MAAM,GAClC,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"sales-pipeline-operations.d.ts","sourceRoot":"","sources":["../../src/utils/sales-pipeline-operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAG1C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,2BAA2B,EAAE,MAAM,CAAC;IACpC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,wCAAwC,EAAE,MAAM,CAAC;IACjD,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC;IAC5F,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,cAAc,EAAE,MAAM,EACtB,wCAAwC,EAAE,MAAM,EAChD,2BAA2B,EAAE,MAAM,GAClC,OAAO,CAAC,aAAa,CAAC,CA4DxB;AAyDD;;;;;;;;;GASG;AACH,wBAAsB,qCAAqC,CACzD,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,eAAe,EAAE,MAAM,EACvB,wCAAwC,EAAE,MAAM,EAChD,KAAK,GACD,UAAU,GACV,WAAW,GACX,UAAU,GACV,aAAa,GACb,YAAY,GACZ,aAA0B,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CAyGlC;AAED;;;;;;;GAOG;AACH,wBAAsB,wCAAwC,CAC5D,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;IACT,UAAU,EAAE,uBAAuB,CAAC;IACpC,QAAQ,EAAE,aAAa,CAAC;CACzB,GAAG,IAAI,CAAC,CA0DR;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,cAAc,EAAE,MAAM,EACtB,sBAAsB,EAAE,MAAM,EAC9B,2BAA2B,EAAE,MAAM,GAClC,OAAO,CAAC,uBAAuB,CAAC,CA2ElC;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA6B/B;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAE5C,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4CAA4C,EAAE,MAAM,CAAC;IACrD,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC;IAC5F,qBAAqB,EAAE,IAAI,CAAC;IAC5B,qBAAqB,EAAE,IAAI,CAAC;IAG5B,wBAAwB,EAAE,MAAM,CAAC;IAGjC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IAGxC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;IAG3C,8BAA8B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,4BAA4B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,qCAAqC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrD,mCAAmC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnD,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3C,+BAA+B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAED;;;;;;;;GAQG;AACH,wBAAsB,+BAA+B,CACnD,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,cAAc,EAAE,MAAM,EACtB,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAiW1C;AAED;;;;;;;GAOG;AACH,wBAAsB,kCAAkC,CACtD,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,GAC7F,OAAO,CAAC,uBAAuB,CAAC,CAkClC"}
|
|
@@ -42,7 +42,10 @@ async function createOrGetSalesPipeline(db, organizationId, organizationUserRela
|
|
|
42
42
|
AND spa.organization_user_relationship_assignment_id = $2
|
|
43
43
|
LIMIT 1
|
|
44
44
|
`;
|
|
45
|
-
const existing = await (0, pg_client_1.queryOne)(db, existingSql, [
|
|
45
|
+
const existing = await (0, pg_client_1.queryOne)(db, existingSql, [
|
|
46
|
+
organizationId,
|
|
47
|
+
organizationUserRelationshipAssignmentId,
|
|
48
|
+
]);
|
|
46
49
|
if (existing) {
|
|
47
50
|
return {
|
|
48
51
|
id: existing.id,
|
|
@@ -74,32 +77,37 @@ async function createOrGetSalesPipeline(db, organizationId, organizationUserRela
|
|
|
74
77
|
* @param db - Database instance
|
|
75
78
|
* @param organizationId - Organization ID
|
|
76
79
|
* @param linkedinRelationshipId - LinkedIn relationship ID
|
|
80
|
+
* @param organizationMemberId - Organization member ID (the member whose LinkedIn account is part of the relationship)
|
|
77
81
|
* @returns Organization relationship assignment ID
|
|
78
82
|
*/
|
|
79
|
-
async function getOrCreateOrganizationRelationshipAssignment(db, organizationId, linkedinRelationshipId) {
|
|
80
|
-
// Try to get existing assignment
|
|
83
|
+
async function getOrCreateOrganizationRelationshipAssignment(db, organizationId, linkedinRelationshipId, organizationMemberId) {
|
|
84
|
+
// Try to get existing assignment for this specific organization member
|
|
81
85
|
const existingSql = `
|
|
82
86
|
SELECT id
|
|
83
87
|
FROM public.organization_user_relationships_assignments
|
|
84
|
-
WHERE organization_id = $1
|
|
88
|
+
WHERE organization_id = $1
|
|
89
|
+
AND linkedin_relationship_id = $2
|
|
90
|
+
AND organization_member_id = $3
|
|
85
91
|
LIMIT 1
|
|
86
92
|
`;
|
|
87
93
|
const existing = await (0, pg_client_1.queryOne)(db, existingSql, [
|
|
88
94
|
organizationId,
|
|
89
95
|
linkedinRelationshipId,
|
|
96
|
+
organizationMemberId,
|
|
90
97
|
]);
|
|
91
98
|
if (existing) {
|
|
92
99
|
return existing.id;
|
|
93
100
|
}
|
|
94
101
|
// Create new assignment
|
|
95
102
|
const insertSql = `
|
|
96
|
-
INSERT INTO public.organization_user_relationships_assignments (organization_id, linkedin_relationship_id, created_at)
|
|
97
|
-
VALUES ($1, $2, NOW())
|
|
103
|
+
INSERT INTO public.organization_user_relationships_assignments (organization_id, linkedin_relationship_id, organization_member_id, created_at)
|
|
104
|
+
VALUES ($1, $2, $3, NOW())
|
|
98
105
|
RETURNING id
|
|
99
106
|
`;
|
|
100
107
|
const result = await (0, pg_client_1.queryOne)(db, insertSql, [
|
|
101
108
|
organizationId,
|
|
102
109
|
linkedinRelationshipId,
|
|
110
|
+
organizationMemberId,
|
|
103
111
|
]);
|
|
104
112
|
if (!result) {
|
|
105
113
|
throw new Error("Failed to create organization relationship assignment");
|
|
@@ -256,8 +264,42 @@ async function addToSalesPipeline(db, organizationId, linkedinRelationshipId, ad
|
|
|
256
264
|
linkedinRelationshipId,
|
|
257
265
|
addedByOrganizationMemberId,
|
|
258
266
|
});
|
|
267
|
+
// Find the organization member whose LinkedIn account is part of this relationship
|
|
268
|
+
// The relationship assignment should belong to the member who owns the relationship
|
|
269
|
+
const findOrgMemberSql = `
|
|
270
|
+
SELECT om.id
|
|
271
|
+
FROM linkedin.relationships r
|
|
272
|
+
INNER JOIN linkedin.accounts la ON (la.id = r.linkedin_account_id_a OR la.id = r.linkedin_account_id_b)
|
|
273
|
+
INNER JOIN public.organization_members om ON om.user_id = la.user_id
|
|
274
|
+
WHERE r.id = $1
|
|
275
|
+
AND om.organization_id = $2
|
|
276
|
+
AND om.id = $3
|
|
277
|
+
LIMIT 1
|
|
278
|
+
`;
|
|
279
|
+
const relationshipOwner = await (0, pg_client_1.queryOne)(db, findOrgMemberSql, [linkedinRelationshipId, organizationId, addedByOrganizationMemberId]);
|
|
280
|
+
// If the person adding to pipeline is not the relationship owner, try to find the actual owner
|
|
281
|
+
let organizationMemberId = addedByOrganizationMemberId;
|
|
282
|
+
if (!relationshipOwner) {
|
|
283
|
+
const findAnyOwnerSql = `
|
|
284
|
+
SELECT om.id
|
|
285
|
+
FROM linkedin.relationships r
|
|
286
|
+
INNER JOIN linkedin.accounts la ON (la.id = r.linkedin_account_id_a OR la.id = r.linkedin_account_id_b)
|
|
287
|
+
INNER JOIN public.organization_members om ON om.user_id = la.user_id
|
|
288
|
+
WHERE r.id = $1
|
|
289
|
+
AND om.organization_id = $2
|
|
290
|
+
LIMIT 1
|
|
291
|
+
`;
|
|
292
|
+
const actualOwner = await (0, pg_client_1.queryOne)(db, findAnyOwnerSql, [
|
|
293
|
+
linkedinRelationshipId,
|
|
294
|
+
organizationId,
|
|
295
|
+
]);
|
|
296
|
+
if (actualOwner) {
|
|
297
|
+
organizationMemberId = actualOwner.id;
|
|
298
|
+
}
|
|
299
|
+
// If no owner found, fall back to addedByOrganizationMemberId
|
|
300
|
+
}
|
|
259
301
|
// Get or create the organization relationship assignment first
|
|
260
|
-
const orgRelAssignmentId = await getOrCreateOrganizationRelationshipAssignment(db, organizationId, linkedinRelationshipId);
|
|
302
|
+
const orgRelAssignmentId = await getOrCreateOrganizationRelationshipAssignment(db, organizationId, linkedinRelationshipId, organizationMemberId);
|
|
261
303
|
// Create or get the pipeline entry (checking via assignment)
|
|
262
304
|
const pipeline = await createOrGetSalesPipeline(db, organizationId, orgRelAssignmentId, addedByOrganizationMemberId);
|
|
263
305
|
// Create or update the pipeline assignment with default stage 'prospect'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sales-pipeline-operations.js","sourceRoot":"","sources":["../../src/utils/sales-pipeline-operations.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAwCH,
|
|
1
|
+
{"version":3,"file":"sales-pipeline-operations.js","sourceRoot":"","sources":["../../src/utils/sales-pipeline-operations.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED