eggi-ai-db-schema-2 12.54.2

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.
Files changed (188) hide show
  1. package/CHANGELOG.md +750 -0
  2. package/README.md +655 -0
  3. package/dist/config/database.d.ts +28 -0
  4. package/dist/config/database.d.ts.map +1 -0
  5. package/dist/config/database.js +72 -0
  6. package/dist/config/database.js.map +1 -0
  7. package/dist/index.d.ts +28 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +199 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/lib/database-service.d.ts +689 -0
  12. package/dist/lib/database-service.d.ts.map +1 -0
  13. package/dist/lib/database-service.js +1362 -0
  14. package/dist/lib/database-service.js.map +1 -0
  15. package/dist/lib/db-types.d.ts +167 -0
  16. package/dist/lib/db-types.d.ts.map +1 -0
  17. package/dist/lib/db-types.js +28 -0
  18. package/dist/lib/db-types.js.map +1 -0
  19. package/dist/lib/db.d.ts +58 -0
  20. package/dist/lib/db.d.ts.map +1 -0
  21. package/dist/lib/db.js +292 -0
  22. package/dist/lib/db.js.map +1 -0
  23. package/dist/lib/index.d.ts +11 -0
  24. package/dist/lib/index.d.ts.map +1 -0
  25. package/dist/lib/index.js +26 -0
  26. package/dist/lib/index.js.map +1 -0
  27. package/dist/lib/pg-client.d.ts +50 -0
  28. package/dist/lib/pg-client.d.ts.map +1 -0
  29. package/dist/lib/pg-client.js +106 -0
  30. package/dist/lib/pg-client.js.map +1 -0
  31. package/dist/lib/schema.d.ts +298 -0
  32. package/dist/lib/schema.d.ts.map +1 -0
  33. package/dist/lib/schema.js +12 -0
  34. package/dist/lib/schema.js.map +1 -0
  35. package/dist/migration-manager.d.ts +49 -0
  36. package/dist/migration-manager.d.ts.map +1 -0
  37. package/dist/migration-manager.js +282 -0
  38. package/dist/migration-manager.js.map +1 -0
  39. package/dist/queries/minimal-connections.d.ts +31 -0
  40. package/dist/queries/minimal-connections.d.ts.map +1 -0
  41. package/dist/queries/minimal-connections.js +143 -0
  42. package/dist/queries/minimal-connections.js.map +1 -0
  43. package/dist/schema.ts +340 -0
  44. package/dist/seed.d.ts +8 -0
  45. package/dist/seed.d.ts.map +1 -0
  46. package/dist/seed.js +40 -0
  47. package/dist/seed.js.map +1 -0
  48. package/dist/types/index.d.ts +7 -0
  49. package/dist/types/index.d.ts.map +1 -0
  50. package/dist/types/index.js +23 -0
  51. package/dist/types/index.js.map +1 -0
  52. package/dist/types/types.d.ts +77 -0
  53. package/dist/types/types.d.ts.map +1 -0
  54. package/dist/types/types.js +3 -0
  55. package/dist/types/types.js.map +1 -0
  56. package/dist/utils/authenticated-user-operations.d.ts +110 -0
  57. package/dist/utils/authenticated-user-operations.d.ts.map +1 -0
  58. package/dist/utils/authenticated-user-operations.js +292 -0
  59. package/dist/utils/authenticated-user-operations.js.map +1 -0
  60. package/dist/utils/authentication-operations.d.ts +48 -0
  61. package/dist/utils/authentication-operations.d.ts.map +1 -0
  62. package/dist/utils/authentication-operations.js +172 -0
  63. package/dist/utils/authentication-operations.js.map +1 -0
  64. package/dist/utils/company-mapping-job-operations.d.ts +103 -0
  65. package/dist/utils/company-mapping-job-operations.d.ts.map +1 -0
  66. package/dist/utils/company-mapping-job-operations.js +413 -0
  67. package/dist/utils/company-mapping-job-operations.js.map +1 -0
  68. package/dist/utils/company-sheet-upload-operations.d.ts +53 -0
  69. package/dist/utils/company-sheet-upload-operations.d.ts.map +1 -0
  70. package/dist/utils/company-sheet-upload-operations.js +135 -0
  71. package/dist/utils/company-sheet-upload-operations.js.map +1 -0
  72. package/dist/utils/contact-operations.d.ts +70 -0
  73. package/dist/utils/contact-operations.d.ts.map +1 -0
  74. package/dist/utils/contact-operations.js +294 -0
  75. package/dist/utils/contact-operations.js.map +1 -0
  76. package/dist/utils/forager-linkedin-operations.d.ts +74 -0
  77. package/dist/utils/forager-linkedin-operations.d.ts.map +1 -0
  78. package/dist/utils/forager-linkedin-operations.js +778 -0
  79. package/dist/utils/forager-linkedin-operations.js.map +1 -0
  80. package/dist/utils/ghost-genius-linkedin-operations.d.ts +23 -0
  81. package/dist/utils/ghost-genius-linkedin-operations.d.ts.map +1 -0
  82. package/dist/utils/ghost-genius-linkedin-operations.js +282 -0
  83. package/dist/utils/ghost-genius-linkedin-operations.js.map +1 -0
  84. package/dist/utils/index.d.ts +29 -0
  85. package/dist/utils/index.d.ts.map +1 -0
  86. package/dist/utils/index.js +77 -0
  87. package/dist/utils/index.js.map +1 -0
  88. package/dist/utils/introduction-request-operations.d.ts +159 -0
  89. package/dist/utils/introduction-request-operations.d.ts.map +1 -0
  90. package/dist/utils/introduction-request-operations.js +481 -0
  91. package/dist/utils/introduction-request-operations.js.map +1 -0
  92. package/dist/utils/invitation-operations.d.ts +141 -0
  93. package/dist/utils/invitation-operations.d.ts.map +1 -0
  94. package/dist/utils/invitation-operations.js +749 -0
  95. package/dist/utils/invitation-operations.js.map +1 -0
  96. package/dist/utils/linkedin-account-operations.d.ts +45 -0
  97. package/dist/utils/linkedin-account-operations.d.ts.map +1 -0
  98. package/dist/utils/linkedin-account-operations.js +279 -0
  99. package/dist/utils/linkedin-account-operations.js.map +1 -0
  100. package/dist/utils/linkedin-account-relationship-operations.d.ts +77 -0
  101. package/dist/utils/linkedin-account-relationship-operations.d.ts.map +1 -0
  102. package/dist/utils/linkedin-account-relationship-operations.js +274 -0
  103. package/dist/utils/linkedin-account-relationship-operations.js.map +1 -0
  104. package/dist/utils/linkedin-data-operations.d.ts +102 -0
  105. package/dist/utils/linkedin-data-operations.d.ts.map +1 -0
  106. package/dist/utils/linkedin-data-operations.js +613 -0
  107. package/dist/utils/linkedin-data-operations.js.map +1 -0
  108. package/dist/utils/linkedin-identifier-utils.d.ts +31 -0
  109. package/dist/utils/linkedin-identifier-utils.d.ts.map +1 -0
  110. package/dist/utils/linkedin-identifier-utils.js +63 -0
  111. package/dist/utils/linkedin-identifier-utils.js.map +1 -0
  112. package/dist/utils/linkedin-profile-cache.d.ts +131 -0
  113. package/dist/utils/linkedin-profile-cache.d.ts.map +1 -0
  114. package/dist/utils/linkedin-profile-cache.js +418 -0
  115. package/dist/utils/linkedin-profile-cache.js.map +1 -0
  116. package/dist/utils/llm-inference-job-operations.d.ts +116 -0
  117. package/dist/utils/llm-inference-job-operations.d.ts.map +1 -0
  118. package/dist/utils/llm-inference-job-operations.js +266 -0
  119. package/dist/utils/llm-inference-job-operations.js.map +1 -0
  120. package/dist/utils/mapping-job-operations.d.ts +272 -0
  121. package/dist/utils/mapping-job-operations.d.ts.map +1 -0
  122. package/dist/utils/mapping-job-operations.js +833 -0
  123. package/dist/utils/mapping-job-operations.js.map +1 -0
  124. package/dist/utils/mapping-operations.d.ts +80 -0
  125. package/dist/utils/mapping-operations.d.ts.map +1 -0
  126. package/dist/utils/mapping-operations.js +318 -0
  127. package/dist/utils/mapping-operations.js.map +1 -0
  128. package/dist/utils/on-demand-mapping-operations.d.ts +199 -0
  129. package/dist/utils/on-demand-mapping-operations.d.ts.map +1 -0
  130. package/dist/utils/on-demand-mapping-operations.js +728 -0
  131. package/dist/utils/on-demand-mapping-operations.js.map +1 -0
  132. package/dist/utils/onboarding-operations.d.ts +53 -0
  133. package/dist/utils/onboarding-operations.d.ts.map +1 -0
  134. package/dist/utils/onboarding-operations.js +223 -0
  135. package/dist/utils/onboarding-operations.js.map +1 -0
  136. package/dist/utils/organization-assignment-job-operations.d.ts +258 -0
  137. package/dist/utils/organization-assignment-job-operations.d.ts.map +1 -0
  138. package/dist/utils/organization-assignment-job-operations.js +881 -0
  139. package/dist/utils/organization-assignment-job-operations.js.map +1 -0
  140. package/dist/utils/organization-assignment-operations.d.ts +59 -0
  141. package/dist/utils/organization-assignment-operations.d.ts.map +1 -0
  142. package/dist/utils/organization-assignment-operations.js +130 -0
  143. package/dist/utils/organization-assignment-operations.js.map +1 -0
  144. package/dist/utils/organization-operations.d.ts +275 -0
  145. package/dist/utils/organization-operations.d.ts.map +1 -0
  146. package/dist/utils/organization-operations.js +993 -0
  147. package/dist/utils/organization-operations.js.map +1 -0
  148. package/dist/utils/organization-relationship-operations.d.ts +59 -0
  149. package/dist/utils/organization-relationship-operations.d.ts.map +1 -0
  150. package/dist/utils/organization-relationship-operations.js +240 -0
  151. package/dist/utils/organization-relationship-operations.js.map +1 -0
  152. package/dist/utils/quota-operations.d.ts +107 -0
  153. package/dist/utils/quota-operations.d.ts.map +1 -0
  154. package/dist/utils/quota-operations.js +692 -0
  155. package/dist/utils/quota-operations.js.map +1 -0
  156. package/dist/utils/recursive-mapping-job-operations.d.ts +42 -0
  157. package/dist/utils/recursive-mapping-job-operations.d.ts.map +1 -0
  158. package/dist/utils/recursive-mapping-job-operations.js +169 -0
  159. package/dist/utils/recursive-mapping-job-operations.js.map +1 -0
  160. package/dist/utils/relationship-operations.d.ts +130 -0
  161. package/dist/utils/relationship-operations.d.ts.map +1 -0
  162. package/dist/utils/relationship-operations.js +329 -0
  163. package/dist/utils/relationship-operations.js.map +1 -0
  164. package/dist/utils/sales-pipeline-operations.d.ts +143 -0
  165. package/dist/utils/sales-pipeline-operations.d.ts.map +1 -0
  166. package/dist/utils/sales-pipeline-operations.js +649 -0
  167. package/dist/utils/sales-pipeline-operations.js.map +1 -0
  168. package/dist/utils/skills-operations.d.ts +117 -0
  169. package/dist/utils/skills-operations.d.ts.map +1 -0
  170. package/dist/utils/skills-operations.js +487 -0
  171. package/dist/utils/skills-operations.js.map +1 -0
  172. package/dist/utils/subscription-operations.d.ts +123 -0
  173. package/dist/utils/subscription-operations.d.ts.map +1 -0
  174. package/dist/utils/subscription-operations.js +391 -0
  175. package/dist/utils/subscription-operations.js.map +1 -0
  176. package/dist/utils/unipile-account-operations.d.ts +96 -0
  177. package/dist/utils/unipile-account-operations.d.ts.map +1 -0
  178. package/dist/utils/unipile-account-operations.js +255 -0
  179. package/dist/utils/unipile-account-operations.js.map +1 -0
  180. package/dist/utils/user-industry-operations.d.ts +80 -0
  181. package/dist/utils/user-industry-operations.d.ts.map +1 -0
  182. package/dist/utils/user-industry-operations.js +237 -0
  183. package/dist/utils/user-industry-operations.js.map +1 -0
  184. package/dist/utils/user-operations.d.ts +87 -0
  185. package/dist/utils/user-operations.d.ts.map +1 -0
  186. package/dist/utils/user-operations.js +212 -0
  187. package/dist/utils/user-operations.js.map +1 -0
  188. package/package.json +98 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-operations.js","sourceRoot":"","sources":["../../src/utils/organization-operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * =============================================================================
3
+ * ORGANIZATION RELATIONSHIP ASSIGNMENT OPERATIONS
4
+ * =============================================================================
5
+ * Utility functions for assigning LinkedIn relationships to organizations
6
+ *
7
+ * When a mapping job completes, all discovered relationships are assigned to
8
+ * the target organization.
9
+ */
10
+ import { Pool, PoolClient } from 'pg';
11
+ import type { Database, DatabaseOrTransaction } from "../lib/db";
12
+ /**
13
+ * Process mapping job completion: Assign all relationships to organization
14
+ *
15
+ * This is the main function to be called when a mapping job completes.
16
+ * Workflow:
17
+ * 1. Find the LinkedIn account that was mapped (from mapping_jobs.linkedin_account_id)
18
+ * 2. Get the associated user
19
+ * 3. Add user to organization as CONTRIBUTOR (if not already a member)
20
+ * 4. Get all relationships from linkedin.relationships WHERE mapping_job_id = X
21
+ * 5. Assign all those relationships to the organization in organization_user_relationships_assignments
22
+ */
23
+ export declare function processMappingJobCompletion(db: DatabaseOrTransaction | Pool | PoolClient, params: {
24
+ mappingJobId: number;
25
+ organizationId: number;
26
+ }): Promise<{
27
+ success: boolean;
28
+ userId?: number;
29
+ organizationMemberId?: number | undefined;
30
+ assignmentsCreated: number;
31
+ assignmentsSkipped: number;
32
+ error?: string;
33
+ }>;
34
+ /**
35
+ * Get all relationship assignments for an organization
36
+ */
37
+ export declare function getOrganizationRelationshipAssignments(db: Database | Pool | PoolClient, params: {
38
+ organizationId: number;
39
+ limit?: number;
40
+ }): Promise<Array<{
41
+ id: number;
42
+ createdAt: Date;
43
+ linkedinRelationshipId: number;
44
+ }>>;
45
+ /**
46
+ * Delete all relationship assignments for a LinkedIn account in an organization
47
+ *
48
+ * This is used to clear old assignments when a new mapping job completes,
49
+ * ensuring we always show the most recent relationships from the latest job.
50
+ *
51
+ * @param db - Database instance
52
+ * @param params - Organization ID and LinkedIn account ID
53
+ * @returns Number of assignments deleted
54
+ */
55
+ export declare function deleteOrganizationUserRelationshipAssignmentsByLinkedInAccount(db: DatabaseOrTransaction | Pool | PoolClient, params: {
56
+ organizationId: number;
57
+ linkedinAccountId: number;
58
+ }): Promise<number>;
59
+ //# sourceMappingURL=organization-relationship-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-relationship-operations.d.ts","sourceRoot":"","sources":["../../src/utils/organization-relationship-operations.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEtC,OAAO,KAAK,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAGjE;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,CAC/C,EAAE,EAAE,qBAAqB,GAAG,IAAI,GAAG,UAAU,EAC7C,MAAM,EAAE;IACN,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB,GACA,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAoLD;AAED;;GAEG;AACH,wBAAsB,sCAAsC,CAC1D,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,MAAM,EAAE;IACN,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,OAAO,CACR,KAAK,CAAC;IACJ,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,sBAAsB,EAAE,MAAM,CAAC;CAChC,CAAC,CACH,CAqCA;AAED;;;;;;;;;GASG;AACH,wBAAsB,8DAA8D,CAClF,EAAE,EAAE,qBAAqB,GAAG,IAAI,GAAG,UAAU,EAC7C,MAAM,EAAE;IACN,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,GACA,OAAO,CAAC,MAAM,CAAC,CAoDjB"}
@@ -0,0 +1,240 @@
1
+ "use strict";
2
+ /**
3
+ * =============================================================================
4
+ * ORGANIZATION RELATIONSHIP ASSIGNMENT OPERATIONS
5
+ * =============================================================================
6
+ * Utility functions for assigning LinkedIn relationships to organizations
7
+ *
8
+ * When a mapping job completes, all discovered relationships are assigned to
9
+ * the target organization.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.processMappingJobCompletion = processMappingJobCompletion;
13
+ exports.getOrganizationRelationshipAssignments = getOrganizationRelationshipAssignments;
14
+ exports.deleteOrganizationUserRelationshipAssignmentsByLinkedInAccount = deleteOrganizationUserRelationshipAssignmentsByLinkedInAccount;
15
+ const pg_client_1 = require("../lib/pg-client");
16
+ const db_1 = require("../lib/db");
17
+ /**
18
+ * Process mapping job completion: Assign all relationships to organization
19
+ *
20
+ * This is the main function to be called when a mapping job completes.
21
+ * Workflow:
22
+ * 1. Find the LinkedIn account that was mapped (from mapping_jobs.linkedin_account_id)
23
+ * 2. Get the associated user
24
+ * 3. Add user to organization as CONTRIBUTOR (if not already a member)
25
+ * 4. Get all relationships from linkedin.relationships WHERE mapping_job_id = X
26
+ * 5. Assign all those relationships to the organization in organization_user_relationships_assignments
27
+ */
28
+ async function processMappingJobCompletion(db, params) {
29
+ const { mappingJobId, organizationId } = params;
30
+ (0, db_1.debugLogDbOperation)("complex", "mapping_job_completion_processing", { mappingJobId, organizationId }, undefined, {
31
+ operation: "processMappingJobCompletion",
32
+ mappingJobId,
33
+ organizationId,
34
+ });
35
+ try {
36
+ // Step 1: Get the mapping job with LinkedIn account details
37
+ const jobSql = `
38
+ SELECT
39
+ mj.id as mapping_job_id,
40
+ mj.linkedin_account_id,
41
+ la.id as linkedin_account_id,
42
+ la.user_id
43
+ FROM monitoring.mapping_jobs mj
44
+ INNER JOIN linkedin.accounts la ON mj.linkedin_account_id = la.id
45
+ WHERE mj.id = $1
46
+ LIMIT 1
47
+ `;
48
+ const jobWithAccount = await (0, pg_client_1.queryOne)(db, jobSql, [mappingJobId]);
49
+ if (!jobWithAccount) {
50
+ return {
51
+ success: false,
52
+ assignmentsCreated: 0,
53
+ assignmentsSkipped: 0,
54
+ error: `Mapping job ${mappingJobId} not found or has no associated LinkedIn account`,
55
+ };
56
+ }
57
+ // Step 2: Ensure the LinkedIn account has an associated user
58
+ if (!jobWithAccount.user_id) {
59
+ return {
60
+ success: false,
61
+ assignmentsCreated: 0,
62
+ assignmentsSkipped: 0,
63
+ error: `LinkedIn account ${jobWithAccount.linkedin_account_id} has no associated user`,
64
+ };
65
+ }
66
+ const userId = jobWithAccount.user_id;
67
+ // Step 3: Add user to organization as CONTRIBUTOR (if not already a member)
68
+ let organizationMemberId;
69
+ try {
70
+ // Check if already a member
71
+ const existingMemberSql = `
72
+ SELECT id FROM public.organization_members
73
+ WHERE organization_id = $1 AND user_id = $2
74
+ LIMIT 1
75
+ `;
76
+ const existingMember = await (0, pg_client_1.queryOne)(db, existingMemberSql, [organizationId, userId]);
77
+ if (existingMember) {
78
+ organizationMemberId = existingMember.id;
79
+ }
80
+ else {
81
+ // Create new member with default roles
82
+ const insertMemberSql = `
83
+ INSERT INTO public.organization_members (organization_id, user_id, contribution_role, permissions_role, created_at)
84
+ VALUES ($1, $2, $3, $4, NOW())
85
+ RETURNING id
86
+ `;
87
+ const createdMember = await (0, pg_client_1.queryOne)(db, insertMemberSql, [organizationId, userId, 'CONTRIBUTOR', 'REGULAR']);
88
+ if (createdMember) {
89
+ organizationMemberId = createdMember.id;
90
+ }
91
+ }
92
+ }
93
+ catch (error) {
94
+ console.error("Error creating organization member:", error);
95
+ // Continue even if member creation fails
96
+ }
97
+ // Step 4: Get all relationships from this mapping job
98
+ const relationshipsSql = `
99
+ SELECT id FROM linkedin.relationships
100
+ WHERE mapping_job_id = $1
101
+ `;
102
+ const relationships = await (0, pg_client_1.query)(db, relationshipsSql, [mappingJobId]);
103
+ if (relationships.length === 0) {
104
+ return {
105
+ success: true,
106
+ userId,
107
+ organizationMemberId,
108
+ assignmentsCreated: 0,
109
+ assignmentsSkipped: 0,
110
+ };
111
+ }
112
+ const relationshipIds = relationships.map(r => r.id);
113
+ // Step 5: Check for existing assignments
114
+ const placeholders = relationshipIds.map((_, i) => `$${i + 2}`).join(', ');
115
+ const existingAssignmentsSql = `
116
+ SELECT linkedin_relationship_id
117
+ FROM public.organization_user_relationships_assignments
118
+ WHERE organization_id = $1 AND linkedin_relationship_id IN (${placeholders})
119
+ `;
120
+ const existingAssignments = await (0, pg_client_1.query)(db, existingAssignmentsSql, [organizationId, ...relationshipIds]);
121
+ const existingRelationshipIds = new Set(existingAssignments.map(a => a.linkedin_relationship_id));
122
+ // Filter out relationships that are already assigned
123
+ const newRelationshipIds = relationshipIds.filter(id => !existingRelationshipIds.has(id));
124
+ if (newRelationshipIds.length === 0) {
125
+ return {
126
+ success: true,
127
+ userId,
128
+ organizationMemberId,
129
+ assignmentsCreated: 0,
130
+ assignmentsSkipped: existingRelationshipIds.size,
131
+ };
132
+ }
133
+ // Step 6: Create new assignments
134
+ const values = [];
135
+ const params = [];
136
+ let paramIndex = 1;
137
+ newRelationshipIds.forEach((relationshipId) => {
138
+ values.push(`($${paramIndex}, $${paramIndex + 1}, NOW())`);
139
+ params.push(organizationId, relationshipId);
140
+ paramIndex += 2;
141
+ });
142
+ const insertSql = `
143
+ INSERT INTO public.organization_user_relationships_assignments (organization_id, linkedin_relationship_id, created_at)
144
+ VALUES ${values.join(', ')}
145
+ `;
146
+ await (0, pg_client_1.execute)(db, insertSql, params);
147
+ return {
148
+ success: true,
149
+ userId,
150
+ organizationMemberId,
151
+ assignmentsCreated: newRelationshipIds.length,
152
+ assignmentsSkipped: existingRelationshipIds.size,
153
+ };
154
+ }
155
+ catch (error) {
156
+ console.error("Error processing mapping job completion:", error);
157
+ return {
158
+ success: false,
159
+ assignmentsCreated: 0,
160
+ assignmentsSkipped: 0,
161
+ error: error instanceof Error ? error.message : String(error),
162
+ };
163
+ }
164
+ }
165
+ /**
166
+ * Get all relationship assignments for an organization
167
+ */
168
+ async function getOrganizationRelationshipAssignments(db, params) {
169
+ const { organizationId, limit = 100 } = params;
170
+ (0, db_1.debugLogDbOperation)("select", "organization_user_relationships_assignments", { organizationId, limit }, undefined, {
171
+ operation: "getOrganizationRelationshipAssignments",
172
+ organizationId,
173
+ });
174
+ try {
175
+ const sql = `
176
+ SELECT id, created_at, linkedin_relationship_id
177
+ FROM public.organization_user_relationships_assignments
178
+ WHERE organization_id = $1
179
+ LIMIT $2
180
+ `;
181
+ const results = await (0, pg_client_1.query)(db, sql, [organizationId, limit]);
182
+ return results.map(r => ({
183
+ id: r.id,
184
+ createdAt: r.created_at,
185
+ linkedinRelationshipId: r.linkedin_relationship_id,
186
+ }));
187
+ }
188
+ catch (error) {
189
+ console.error("Error getting organization relationship assignments:", error);
190
+ throw error;
191
+ }
192
+ }
193
+ /**
194
+ * Delete all relationship assignments for a LinkedIn account in an organization
195
+ *
196
+ * This is used to clear old assignments when a new mapping job completes,
197
+ * ensuring we always show the most recent relationships from the latest job.
198
+ *
199
+ * @param db - Database instance
200
+ * @param params - Organization ID and LinkedIn account ID
201
+ * @returns Number of assignments deleted
202
+ */
203
+ async function deleteOrganizationUserRelationshipAssignmentsByLinkedInAccount(db, params) {
204
+ const { organizationId, linkedinAccountId } = params;
205
+ (0, db_1.debugLogDbOperation)("delete", "organization_user_relationships_assignments", { organizationId, linkedinAccountId }, undefined, {
206
+ operation: "deleteOrganizationUserRelationshipAssignmentsByLinkedInAccount",
207
+ organizationId,
208
+ linkedinAccountId,
209
+ });
210
+ try {
211
+ // First, get all relationship IDs for this LinkedIn account
212
+ const relationshipIdsSql = `
213
+ SELECT id FROM linkedin.relationships
214
+ WHERE linkedin_account_id_a = $1 OR linkedin_account_id_b = $1
215
+ `;
216
+ const allRelationships = await (0, pg_client_1.query)(db, relationshipIdsSql, [linkedinAccountId]);
217
+ const allRelationshipIds = allRelationships.map(r => r.id);
218
+ if (allRelationshipIds.length === 0) {
219
+ return 0;
220
+ }
221
+ // Delete all assignments for these relationships in THIS organization ONLY
222
+ // CRITICAL: The WHERE organization_id = $1 clause ensures we only delete
223
+ // assignments for the target organization. Other organizations' assignments
224
+ // for the same user are NOT affected.
225
+ const placeholders = allRelationshipIds.map((_, i) => `$${i + 2}`).join(', ');
226
+ const deleteSql = `
227
+ DELETE FROM public.organization_user_relationships_assignments
228
+ WHERE organization_id = $1 AND linkedin_relationship_id IN (${placeholders})
229
+ RETURNING id
230
+ `;
231
+ const deleteResult = await (0, pg_client_1.query)(db, deleteSql, [organizationId, ...allRelationshipIds]);
232
+ // Return the actual number of rows deleted
233
+ return deleteResult.length;
234
+ }
235
+ catch (error) {
236
+ console.error("Error deleting organization relationship assignments:", error);
237
+ throw error;
238
+ }
239
+ }
240
+ //# sourceMappingURL=organization-relationship-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-relationship-operations.js","sourceRoot":"","sources":["../../src/utils/organization-relationship-operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * =============================================================================
3
+ * QUOTA OPERATIONS - Mapping Job Quota Management
4
+ * =============================================================================
5
+ *
6
+ * Manages on-demand mapping job quotas per authenticated user and organization.
7
+ * Quota limits are determined by organization subscription_tier:
8
+ * - INDIVIDUAL: Lower quotas for personal workspaces
9
+ * - BUSINESS: Higher quotas for business workspaces
10
+ *
11
+ * Quotas are tracked per period (daily/monthly) and incremented atomically
12
+ * using INSERT ... ON CONFLICT DO UPDATE pattern.
13
+ */
14
+ import { Pool, PoolClient } from "pg";
15
+ import type { Database } from "../lib/db";
16
+ export type WorkspaceType = "INDIVIDUALS" | "BUSINESS";
17
+ export type SubscriptionTier = "PRO_VERSION" | "WAITING_FOR_SUBSCRIPTION_SELECTION";
18
+ export type QuotaPeriod = "daily" | "monthly";
19
+ export declare const QUOTA_LIMITS: Record<WorkspaceType, Record<SubscriptionTier, Record<QuotaPeriod, number>>>;
20
+ export interface QuotaRecord {
21
+ id: number;
22
+ authenticatedUserId: number;
23
+ organizationId: number;
24
+ quotaPeriod: QuotaPeriod;
25
+ periodStart: Date;
26
+ periodEnd: Date;
27
+ quotaLimit: number | null;
28
+ currentUsage: number;
29
+ createdAt: Date;
30
+ updatedAt: Date;
31
+ }
32
+ export interface QuotaCheckResult {
33
+ allowed: boolean;
34
+ quotaRecord: QuotaRecord | null;
35
+ remainingQuota: number | null;
36
+ quotaLimit: number | null;
37
+ period: QuotaPeriod;
38
+ periodStart: Date;
39
+ periodEnd: Date;
40
+ }
41
+ export interface QuotaSummary {
42
+ quotaType: string;
43
+ period: QuotaPeriod;
44
+ currentUsage: number;
45
+ quotaLimit: number | null;
46
+ remainingQuota: number | null;
47
+ periodStart: Date;
48
+ periodEnd: Date;
49
+ organizationId: number;
50
+ }
51
+ /**
52
+ * Get quota limits for a workspace type and subscription tier combination
53
+ * @param workspaceType - Workspace type (INDIVIDUALS or BUSINESS)
54
+ * @param subscriptionTier - Subscription tier
55
+ * @param period - Quota period (daily or monthly)
56
+ * @param subscriptionStatus - Optional subscription status to determine if unlimited (for PRO_VERSION)
57
+ * @returns Quota limit, or null for unlimited
58
+ */
59
+ export declare function getQuotaLimit(workspaceType: WorkspaceType, subscriptionTier: SubscriptionTier, period: QuotaPeriod, subscriptionStatus?: string | null): number | null;
60
+ /**
61
+ * Check and increment quota for a mapping job request
62
+ *
63
+ * This function:
64
+ * 1. Gets the organization's subscription tier
65
+ * 2. Determines quota limits for the tier
66
+ * 3. Gets or creates quota record for current period
67
+ * 4. Atomically increments usage if quota allows
68
+ * 5. Returns whether the operation is allowed
69
+ *
70
+ * @param db - Database instance
71
+ * @param authenticatedUserId - ID from authentication.users table
72
+ * @param organizationId - Organization ID
73
+ * @param period - Quota period to check (daily or monthly)
74
+ * @returns Quota check result with allowance status and quota info
75
+ */
76
+ export declare function checkAndIncrementQuota(db: Database | Pool | PoolClient, authenticatedUserId: number, organizationId: number, period?: QuotaPeriod): Promise<QuotaCheckResult>;
77
+ /**
78
+ * Get current quota status without incrementing
79
+ *
80
+ * @param db - Database instance
81
+ * @param authenticatedUserId - ID from authentication.users table
82
+ * @param organizationId - Organization ID
83
+ * @param period - Quota period to check (daily or monthly)
84
+ * @returns Current quota status or null if no quota record exists
85
+ */
86
+ export declare function getQuotaStatus(db: Database | Pool | PoolClient, authenticatedUserId: number, organizationId: number, period?: QuotaPeriod): Promise<QuotaCheckResult | null>;
87
+ /**
88
+ * Get all quotas for a user across all organizations
89
+ * Returns quotas for all quota types (currently only mapping_jobs, but extensible)
90
+ *
91
+ * @param db - Database instance
92
+ * @param authenticatedUserId - ID from authentication.users table
93
+ * @returns Array of quota summaries grouped by quota type and organization
94
+ */
95
+ export declare function getAllQuotasForUser(db: Database | Pool | PoolClient, authenticatedUserId: number): Promise<QuotaSummary[]>;
96
+ /**
97
+ * Initialize quota records for all organization members when subscription is activated
98
+ *
99
+ * Creates daily and monthly quota records for all authenticated users in the organization
100
+ * with the appropriate quota limits based on subscription tier.
101
+ *
102
+ * @param db - Database instance
103
+ * @param organizationId - Organization ID
104
+ * @returns Number of quota records created
105
+ */
106
+ export declare function initializeQuotasForOrganization(db: Database | Pool | PoolClient, organizationId: number): Promise<number>;
107
+ //# sourceMappingURL=quota-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota-operations.d.ts","sourceRoot":"","sources":["../../src/utils/quota-operations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAO1C,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,UAAU,CAAC;AACvD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,oCAAoC,CAAC;AACpF,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;AAE9C,eAAO,MAAM,YAAY,EAAE,MAAM,CAC/B,aAAa,EACb,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAsB7C,CAAC;AAMX,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,IAAI,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,IAAI,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,IAAI,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAMD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,WAAW,EACnB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,GACjC,MAAM,GAAG,IAAI,CAgBf;AA8CD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,mBAAmB,EAAE,MAAM,EAC3B,cAAc,EAAE,MAAM,EACtB,MAAM,GAAE,WAAqB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAsL3B;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,mBAAmB,EAAE,MAAM,EAC3B,cAAc,EAAE,MAAM,EACtB,MAAM,GAAE,WAAqB,GAC5B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA0JlC;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,YAAY,EAAE,CAAC,CA+OzB;AAED;;;;;;;;;GASG;AACH,wBAAsB,+BAA+B,CACnD,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,CA2IjB"}