@bisondesk/core-sdk 1.0.634 → 1.0.636
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/lib/apis/crm.d.ts +1 -0
- package/lib/apis/crm.d.ts.map +1 -1
- package/lib/apis/crm.js +15 -0
- package/lib/apis/crm.js.map +1 -1
- package/lib/types/activities.d.ts +5 -3
- package/lib/types/activities.d.ts.map +1 -1
- package/lib/types/activities.js.map +1 -1
- package/lib/types/crm.d.ts +1 -0
- package/lib/types/crm.d.ts.map +1 -1
- package/lib/types/crm.js.map +1 -1
- package/lib/types/reports-sales.d.ts +8 -0
- package/lib/types/reports-sales.d.ts.map +1 -1
- package/lib/types/reports-sales.js.map +1 -1
- package/lib/types/tenants.d.ts +2 -0
- package/lib/types/tenants.d.ts.map +1 -1
- package/lib/types/tenants.js.map +1 -1
- package/lib/types/user-performance.d.ts +0 -1
- package/lib/types/user-performance.d.ts.map +1 -1
- package/lib/types/user-performance.js.map +1 -1
- package/lib/types/whatsapp.d.ts +37 -0
- package/lib/types/whatsapp.d.ts.map +1 -0
- package/lib/types/whatsapp.js +2 -0
- package/lib/types/whatsapp.js.map +1 -0
- package/package.json +1 -1
- package/src/apis/crm.ts +21 -0
- package/src/types/activities.ts +6 -4
- package/src/types/crm.ts +6 -0
- package/src/types/reports-sales.ts +34 -7
- package/src/types/tenants.ts +12 -0
- package/src/types/user-performance.ts +0 -1
- package/src/types/whatsapp.ts +49 -0
- package/tsconfig.tsbuildinfo +1 -1
package/lib/apis/crm.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export declare const getCrmOrganizationByExternalId: (tenantId: string, external
|
|
|
10
10
|
serviceId: string;
|
|
11
11
|
}) => Promise<Organization | undefined>;
|
|
12
12
|
export declare const getCrmOrganizationsByVatNumber: (tenantId: string, vatNumber: string) => Promise<Organization[]>;
|
|
13
|
+
export declare const getCrmOrganizationsByRegistrationNumber: (tenantId: string, registrationNumber: string) => Promise<Organization[]>;
|
|
13
14
|
export declare const saveCrmOrganization: (tenantId: string, org: Organization | NewOrganization, opts?: {
|
|
14
15
|
serviceId: string;
|
|
15
16
|
}) => Promise<Organization>;
|
package/lib/apis/crm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crm.d.ts","sourceRoot":"/","sources":["apis/crm.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crm.d.ts","sourceRoot":"/","sources":["apis/crm.ts"],"names":[],"mappings":"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"}
|
package/lib/apis/crm.js
CHANGED
|
@@ -57,6 +57,21 @@ export const getCrmOrganizationsByVatNumber = async (tenantId, vatNumber) => {
|
|
|
57
57
|
const body = await response.text();
|
|
58
58
|
throw new XError(response.statusText, { url, body, tenantId, vatNumber });
|
|
59
59
|
};
|
|
60
|
+
export const getCrmOrganizationsByRegistrationNumber = async (tenantId, registrationNumber) => {
|
|
61
|
+
const auth = await getAdminAuth();
|
|
62
|
+
const url = `${process.env.CORE_API_ORIGIN}/admin/crm/organizations/registration-number/${encodeURIComponent(registrationNumber)}`;
|
|
63
|
+
const response = await fetch(url, {
|
|
64
|
+
headers: cleanHeaders({
|
|
65
|
+
Authorization: auth,
|
|
66
|
+
[TENANT_ID_ADMIN_HEADER]: tenantId,
|
|
67
|
+
}),
|
|
68
|
+
});
|
|
69
|
+
if (response.ok) {
|
|
70
|
+
return (response.status === 200 ? response.json() : []);
|
|
71
|
+
}
|
|
72
|
+
const body = await response.text();
|
|
73
|
+
throw new XError(response.statusText, { url, body, tenantId, registrationNumber });
|
|
74
|
+
};
|
|
60
75
|
export const saveCrmOrganization = async (tenantId, org, opts) => {
|
|
61
76
|
const auth = await getAdminAuth();
|
|
62
77
|
const url = `${process.env.CORE_API_ORIGIN}/api/crm/organizations`;
|
package/lib/apis/crm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crm.js","sourceRoot":"/","sources":["apis/crm.ts"],"names":[],"mappings":"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","sourcesContent":["import { SERVICE_ID_ADMIN_HEADER, TENANT_ID_ADMIN_HEADER } from '@bisondesk/commons-sdk/constants';\nimport { XError } from '@bisondesk/commons-sdk/errors';\nimport { cleanHeaders, getAdminAuth } from '@bisondesk/commons-sdk/fetch';\nimport { PaginatedList } from '@bisondesk/commons-sdk/types';\nimport type { Patch } from 'immer';\nimport fetch, { Response } from 'node-fetch';\nimport {\n Contact,\n NewContact,\n NewOrganization,\n Organization,\n SearchContact,\n SearchOrganization,\n} from '../types/crm.js';\nimport { SearchRequest } from '../types/search.js';\nimport { ReferenceData } from '../types/utils.js';\n\nconst emptyPaginatedList = {\n meta: {\n recordTitles: {},\n picklistTitles: {},\n },\n results: [],\n totalCount: 0,\n};\n\nexport const getCrmOrganization = async (\n tenantId: string,\n organizationId: string,\n opts?: { serviceId: string },\n): Promise<Organization | undefined> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/organizations/${organizationId}`;\n const response: Response = await fetch(url, {\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n });\n\n if (response.ok) {\n return (response.status === 200 ? response.json() : undefined) as Promise<\n Organization | undefined\n >;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { url, body, tenantId, organizationId, opts });\n};\n\nexport const getCrmOrganizationByExternalId = async (\n tenantId: string,\n externalId: string,\n opts?: { serviceId: string },\n): Promise<Organization | undefined> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/organizations/external-id/${externalId}`;\n const response: Response = await fetch(url, {\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n });\n\n if (response.ok) {\n return (response.status === 200 ? response.json() : undefined) as Promise<\n Organization | undefined\n >;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { url, body, tenantId, externalId, opts });\n};\n\nexport const getCrmOrganizationsByVatNumber = async (\n tenantId: string,\n vatNumber: string,\n): Promise<Organization[]> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/admin/crm/organizations/vat/${encodeURIComponent(vatNumber)}`;\n const response: Response = await fetch(url, {\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n }),\n });\n\n if (response.ok) {\n return (response.status === 200 ? response.json() : []) as Promise<Organization[]>;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { url, body, tenantId, vatNumber });\n};\n\nexport const saveCrmOrganization = async (\n tenantId: string,\n org: Organization | NewOrganization,\n opts?: { serviceId: string },\n): Promise<Organization> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/organizations`;\n const method = 'POST';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n Authorization: auth,\n 'Content-Type': 'application/json',\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n body: JSON.stringify(org),\n });\n\n if (response.ok) {\n return response.json() as Promise<Organization>;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { method, url, body, tenantId, org, opts });\n};\n\nexport const patchCrmOrganization = async (\n tenantId: string,\n organizationId: string,\n changes: Patch[],\n opts?: { serviceId: string },\n): Promise<Organization> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/organizations/${organizationId}`;\n const method = 'PATCH';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n Authorization: auth,\n 'Content-Type': 'application/json',\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n body: JSON.stringify(changes),\n });\n\n if (response.ok) {\n return response.json() as Promise<Organization>;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, {\n method,\n url,\n tenantId,\n organizationId,\n changes,\n body,\n opts,\n });\n};\n\nexport const searchCrmOrganizations = async (\n tenantId: string,\n req: SearchRequest,\n opts?: { serviceId: string },\n): Promise<PaginatedList<SearchOrganization, ReferenceData>> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/organizations/search/results`;\n const method = 'POST';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n 'Content-Type': 'application/json',\n }),\n body: JSON.stringify(req),\n });\n\n if (response.ok) {\n return response.status === 200 ? (response.json() as any) : emptyPaginatedList;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { method, url, body, tenantId, req, opts });\n};\n\nexport const listUsedBranchIdsForOrganization = async (\n tenantId: string,\n organizationId: string,\n): Promise<string[]> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/organizations/${organizationId}/branches`;\n const method = 'GET';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n 'Content-Type': 'application/json',\n }),\n });\n\n if (response.ok) {\n return response.json() as any;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { method, url, body, tenantId });\n};\n\nexport const searchCrmContacts = async (\n tenantId: string,\n req: SearchRequest,\n opts?: { serviceId: string },\n): Promise<PaginatedList<SearchContact, ReferenceData>> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/contacts/search/results`;\n const method = 'POST';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n Authorization: auth,\n 'Content-Type': 'application/json',\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n body: JSON.stringify(req),\n });\n\n if (response.ok) {\n return response.status === 200 ? (response.json() as any) : emptyPaginatedList;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { method, url, body, tenantId, req, opts });\n};\n\nexport const deleteCrmOrganization = async (\n tenantId: string,\n orgId: string,\n opts?: { serviceId: string },\n): Promise<void> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/organizations/${orgId}`;\n const method = 'DELETE';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n });\n\n if (!response.ok) {\n const body = await response.text();\n throw new XError(response.statusText, { method, url, body, tenantId, orgId, opts });\n }\n};\n\nexport const listCrmContacts = async (\n tenantId: string,\n organizationId: string,\n opts?: { serviceId: string },\n): Promise<Contact[]> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/admin/crm/organizations/${organizationId}/contacts`;\n const response: Response = await fetch(url, {\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n });\n\n if (response.ok) {\n return response.status === 200 ? (response.json() as any) : [];\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { url, body, tenantId, organizationId, opts });\n};\n\nexport const listPotentialDuplicateOrgs = async (\n tenantId: string,\n org: Partial<Organization>,\n opts?: { serviceId?: string; limit?: number; offset?: number },\n): Promise<PaginatedList<SearchOrganization, ReferenceData>> => {\n const auth = await getAdminAuth();\n const limit = opts?.limit ?? '';\n const offset = opts?.offset ?? '';\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/organizations/duplicate-check?limit=${limit}&offset=${offset}`;\n const method = 'POST';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n 'Content-Type': 'application/json',\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n body: JSON.stringify(org),\n });\n\n if (response.ok) {\n return response.status === 200 ? (response.json() as any) : emptyPaginatedList;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { method, url, body, tenantId, org, opts });\n};\n\nexport const getCrmContact = async (\n tenantId: string,\n contactId: string,\n opts?: { serviceId: string },\n): Promise<Contact | undefined> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/contacts/${contactId}`;\n const response: Response = await fetch(url, {\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n });\n\n if (response.ok) {\n return response.status === 200 ? (response.json() as any) : undefined;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { url, body, tenantId, contactId, opts });\n};\n\nexport const saveCrmContact = async (\n tenantId: string,\n contact: Contact | NewContact,\n opts?: { serviceId: string },\n): Promise<Contact> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/contacts`;\n const method = 'POST';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n Authorization: auth,\n 'Content-Type': 'application/json',\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n body: JSON.stringify(contact),\n });\n\n if (response.ok) {\n return response.json() as any;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { method, url, body, contact, tenantId, opts });\n};\n\nexport const deleteCrmContact = async (\n tenantId: string,\n contactId: string,\n orgId: string = '',\n opts?: { serviceId: string },\n): Promise<void> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/contacts/${contactId}?orgId=${orgId}`;\n const method = 'DELETE';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n });\n\n if (!response.ok) {\n const body = await response.text();\n throw new XError(response.statusText, { method, url, body, tenantId, contactId, orgId, opts });\n }\n};\n"]}
|
|
1
|
+
{"version":3,"file":"crm.js","sourceRoot":"/","sources":["apis/crm.ts"],"names":[],"mappings":"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","sourcesContent":["import { SERVICE_ID_ADMIN_HEADER, TENANT_ID_ADMIN_HEADER } from '@bisondesk/commons-sdk/constants';\nimport { XError } from '@bisondesk/commons-sdk/errors';\nimport { cleanHeaders, getAdminAuth } from '@bisondesk/commons-sdk/fetch';\nimport { PaginatedList } from '@bisondesk/commons-sdk/types';\nimport type { Patch } from 'immer';\nimport fetch, { Response } from 'node-fetch';\nimport {\n Contact,\n NewContact,\n NewOrganization,\n Organization,\n SearchContact,\n SearchOrganization,\n} from '../types/crm.js';\nimport { SearchRequest } from '../types/search.js';\nimport { ReferenceData } from '../types/utils.js';\n\nconst emptyPaginatedList = {\n meta: {\n recordTitles: {},\n picklistTitles: {},\n },\n results: [],\n totalCount: 0,\n};\n\nexport const getCrmOrganization = async (\n tenantId: string,\n organizationId: string,\n opts?: { serviceId: string },\n): Promise<Organization | undefined> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/organizations/${organizationId}`;\n const response: Response = await fetch(url, {\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n });\n\n if (response.ok) {\n return (response.status === 200 ? response.json() : undefined) as Promise<\n Organization | undefined\n >;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { url, body, tenantId, organizationId, opts });\n};\n\nexport const getCrmOrganizationByExternalId = async (\n tenantId: string,\n externalId: string,\n opts?: { serviceId: string },\n): Promise<Organization | undefined> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/organizations/external-id/${externalId}`;\n const response: Response = await fetch(url, {\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n });\n\n if (response.ok) {\n return (response.status === 200 ? response.json() : undefined) as Promise<\n Organization | undefined\n >;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { url, body, tenantId, externalId, opts });\n};\n\nexport const getCrmOrganizationsByVatNumber = async (\n tenantId: string,\n vatNumber: string,\n): Promise<Organization[]> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/admin/crm/organizations/vat/${encodeURIComponent(vatNumber)}`;\n const response: Response = await fetch(url, {\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n }),\n });\n\n if (response.ok) {\n return (response.status === 200 ? response.json() : []) as Promise<Organization[]>;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { url, body, tenantId, vatNumber });\n};\n\nexport const getCrmOrganizationsByRegistrationNumber = async (\n tenantId: string,\n registrationNumber: string,\n): Promise<Organization[]> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/admin/crm/organizations/registration-number/${encodeURIComponent(registrationNumber)}`;\n const response: Response = await fetch(url, {\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n }),\n });\n\n if (response.ok) {\n return (response.status === 200 ? response.json() : []) as Promise<Organization[]>;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { url, body, tenantId, registrationNumber });\n};\n\nexport const saveCrmOrganization = async (\n tenantId: string,\n org: Organization | NewOrganization,\n opts?: { serviceId: string },\n): Promise<Organization> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/organizations`;\n const method = 'POST';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n Authorization: auth,\n 'Content-Type': 'application/json',\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n body: JSON.stringify(org),\n });\n\n if (response.ok) {\n return response.json() as Promise<Organization>;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { method, url, body, tenantId, org, opts });\n};\n\nexport const patchCrmOrganization = async (\n tenantId: string,\n organizationId: string,\n changes: Patch[],\n opts?: { serviceId: string },\n): Promise<Organization> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/organizations/${organizationId}`;\n const method = 'PATCH';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n Authorization: auth,\n 'Content-Type': 'application/json',\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n body: JSON.stringify(changes),\n });\n\n if (response.ok) {\n return response.json() as Promise<Organization>;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, {\n method,\n url,\n tenantId,\n organizationId,\n changes,\n body,\n opts,\n });\n};\n\nexport const searchCrmOrganizations = async (\n tenantId: string,\n req: SearchRequest,\n opts?: { serviceId: string },\n): Promise<PaginatedList<SearchOrganization, ReferenceData>> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/organizations/search/results`;\n const method = 'POST';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n 'Content-Type': 'application/json',\n }),\n body: JSON.stringify(req),\n });\n\n if (response.ok) {\n return response.status === 200 ? (response.json() as any) : emptyPaginatedList;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { method, url, body, tenantId, req, opts });\n};\n\nexport const listUsedBranchIdsForOrganization = async (\n tenantId: string,\n organizationId: string,\n): Promise<string[]> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/organizations/${organizationId}/branches`;\n const method = 'GET';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n 'Content-Type': 'application/json',\n }),\n });\n\n if (response.ok) {\n return response.json() as any;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { method, url, body, tenantId });\n};\n\nexport const searchCrmContacts = async (\n tenantId: string,\n req: SearchRequest,\n opts?: { serviceId: string },\n): Promise<PaginatedList<SearchContact, ReferenceData>> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/contacts/search/results`;\n const method = 'POST';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n Authorization: auth,\n 'Content-Type': 'application/json',\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n body: JSON.stringify(req),\n });\n\n if (response.ok) {\n return response.status === 200 ? (response.json() as any) : emptyPaginatedList;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { method, url, body, tenantId, req, opts });\n};\n\nexport const deleteCrmOrganization = async (\n tenantId: string,\n orgId: string,\n opts?: { serviceId: string },\n): Promise<void> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/organizations/${orgId}`;\n const method = 'DELETE';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n });\n\n if (!response.ok) {\n const body = await response.text();\n throw new XError(response.statusText, { method, url, body, tenantId, orgId, opts });\n }\n};\n\nexport const listCrmContacts = async (\n tenantId: string,\n organizationId: string,\n opts?: { serviceId: string },\n): Promise<Contact[]> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/admin/crm/organizations/${organizationId}/contacts`;\n const response: Response = await fetch(url, {\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n });\n\n if (response.ok) {\n return response.status === 200 ? (response.json() as any) : [];\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { url, body, tenantId, organizationId, opts });\n};\n\nexport const listPotentialDuplicateOrgs = async (\n tenantId: string,\n org: Partial<Organization>,\n opts?: { serviceId?: string; limit?: number; offset?: number },\n): Promise<PaginatedList<SearchOrganization, ReferenceData>> => {\n const auth = await getAdminAuth();\n const limit = opts?.limit ?? '';\n const offset = opts?.offset ?? '';\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/organizations/duplicate-check?limit=${limit}&offset=${offset}`;\n const method = 'POST';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n 'Content-Type': 'application/json',\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n body: JSON.stringify(org),\n });\n\n if (response.ok) {\n return response.status === 200 ? (response.json() as any) : emptyPaginatedList;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { method, url, body, tenantId, org, opts });\n};\n\nexport const getCrmContact = async (\n tenantId: string,\n contactId: string,\n opts?: { serviceId: string },\n): Promise<Contact | undefined> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/contacts/${contactId}`;\n const response: Response = await fetch(url, {\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n });\n\n if (response.ok) {\n return response.status === 200 ? (response.json() as any) : undefined;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { url, body, tenantId, contactId, opts });\n};\n\nexport const saveCrmContact = async (\n tenantId: string,\n contact: Contact | NewContact,\n opts?: { serviceId: string },\n): Promise<Contact> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/contacts`;\n const method = 'POST';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n Authorization: auth,\n 'Content-Type': 'application/json',\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n body: JSON.stringify(contact),\n });\n\n if (response.ok) {\n return response.json() as any;\n }\n\n const body = await response.text();\n throw new XError(response.statusText, { method, url, body, contact, tenantId, opts });\n};\n\nexport const deleteCrmContact = async (\n tenantId: string,\n contactId: string,\n orgId: string = '',\n opts?: { serviceId: string },\n): Promise<void> => {\n const auth = await getAdminAuth();\n const url = `${process.env.CORE_API_ORIGIN}/api/crm/contacts/${contactId}?orgId=${orgId}`;\n const method = 'DELETE';\n const response: Response = await fetch(url, {\n method,\n headers: cleanHeaders({\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n });\n\n if (!response.ok) {\n const body = await response.text();\n throw new XError(response.statusText, { method, url, body, tenantId, contactId, orgId, opts });\n }\n};\n"]}
|
|
@@ -71,16 +71,18 @@ export type ActivityDeleteEvent = BaseActivityEvent & {
|
|
|
71
71
|
data: undefined;
|
|
72
72
|
previousData: Activity;
|
|
73
73
|
};
|
|
74
|
-
export type ActivityV2Meta = EmailDebtorsDossierActivityPayload | CallActivityPayload |
|
|
74
|
+
export type ActivityV2Meta = EmailDebtorsDossierActivityPayload | CallActivityPayload | MeetingActivityPayload | ChatActivityPayload;
|
|
75
75
|
export type EmailDebtorsDossierActivityPayload = {};
|
|
76
76
|
export type CallActivityPayload = {
|
|
77
77
|
didNotAnswer: boolean;
|
|
78
78
|
durationSeconds?: number;
|
|
79
79
|
};
|
|
80
|
-
export type
|
|
81
|
-
export type
|
|
80
|
+
export type MeetingActivityPayload = {};
|
|
81
|
+
export type ChatActivityPayload = {
|
|
82
82
|
message: string;
|
|
83
83
|
platform: 'whatsapp' | 'sms';
|
|
84
|
+
templateName?: string;
|
|
85
|
+
language?: string;
|
|
84
86
|
};
|
|
85
87
|
export {};
|
|
86
88
|
//# sourceMappingURL=activities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activities.d.ts","sourceRoot":"/","sources":["types/activities.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"activities.d.ts","sourceRoot":"/","sources":["types/activities.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activities.js","sourceRoot":"/","sources":["types/activities.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,+BAAe,CAAA;IACf,6BAAa,CAAA;IACb,2BAAW,CAAA;AACb,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB;AAED,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,gCAAa,CAAA;AACf,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B","sourcesContent":["import { BusinessEntityIds } from '../constants.js';\nimport { BaseEvent } from './internal-events.js';\n\nexport enum ActivityType {\n CALL = 'call',\n MEETING = 'meeting',\n EMAIL = 'email',\n CHAT = 'chat',\n SMS = 'sms',\n}\n\nexport enum ActivityActions {\n DELETE = 'delete',\n EDIT = 'edit',\n}\n\nexport type ActivityContact = {\n id?: string;\n phoneNumber?: string;\n email?: string;\n};\n\nexport interface BaseActivity<Meta = ActivityV2Meta> {\n type: ActivityType;\n businessEntityId: BusinessEntityIds;\n recordId: string;\n organizationId?: string;\n description?: string;\n readonly?: boolean;\n meta?: Meta;\n // The people called/emailed/etc in this activity.\n contacts?: ActivityContact[];\n}\n\nexport type NewActivity<Meta = ActivityV2Meta> = BaseActivity<Meta> & {\n id?: undefined;\n createdAt?: undefined;\n createdBy?: undefined;\n modifiedAt?: undefined;\n modifiedBy?: undefined;\n activityAt?: string;\n};\n\nexport type Activity<Meta = ActivityV2Meta> = BaseActivity<Meta> & {\n id: string;\n createdAt: string;\n createdBy: string;\n modifiedAt: string;\n modifiedBy: string;\n activityAt: string;\n};\n\nexport type ActivityUpdate = {\n description?: string;\n type?: ActivityType;\n activityAt?: string;\n contacts?: ActivityContact[];\n};\n\nexport type ActivityEvent = BaseEvent &\n (ActivityCreateEvent | ActivityUpdateEvent | ActivityDeleteEvent);\n\ntype BaseActivityEvent = {\n actionAt: string;\n userId: string;\n tenantId: string;\n businessEntityId: BusinessEntityIds;\n recordId: string;\n};\n\nexport type ActivityCreateEvent = BaseActivityEvent & {\n action: 'create';\n data: Activity;\n previousData?: undefined;\n};\n\nexport type ActivityUpdateEvent = BaseActivityEvent & {\n action: 'update';\n data: Activity;\n previousData: Activity;\n};\n\nexport type ActivityDeleteEvent = BaseActivityEvent & {\n action: 'delete';\n data: undefined;\n previousData: Activity;\n};\n\n/************\n * ActivityV2Meta Types\n * These types are used to define the structure of the metadata for different activity types.\n ************/\n\nexport type ActivityV2Meta =\n | EmailDebtorsDossierActivityPayload\n | CallActivityPayload\n |
|
|
1
|
+
{"version":3,"file":"activities.js","sourceRoot":"/","sources":["types/activities.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,+BAAe,CAAA;IACf,6BAAa,CAAA;IACb,2BAAW,CAAA;AACb,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB;AAED,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,gCAAa,CAAA;AACf,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B","sourcesContent":["import { BusinessEntityIds } from '../constants.js';\nimport { BaseEvent } from './internal-events.js';\n\nexport enum ActivityType {\n CALL = 'call',\n MEETING = 'meeting',\n EMAIL = 'email',\n CHAT = 'chat',\n SMS = 'sms',\n}\n\nexport enum ActivityActions {\n DELETE = 'delete',\n EDIT = 'edit',\n}\n\nexport type ActivityContact = {\n id?: string;\n phoneNumber?: string;\n email?: string;\n};\n\nexport interface BaseActivity<Meta = ActivityV2Meta> {\n type: ActivityType;\n businessEntityId: BusinessEntityIds;\n recordId: string;\n organizationId?: string;\n description?: string;\n readonly?: boolean;\n meta?: Meta;\n // The people called/emailed/etc in this activity.\n contacts?: ActivityContact[];\n}\n\nexport type NewActivity<Meta = ActivityV2Meta> = BaseActivity<Meta> & {\n id?: undefined;\n createdAt?: undefined;\n createdBy?: undefined;\n modifiedAt?: undefined;\n modifiedBy?: undefined;\n activityAt?: string;\n};\n\nexport type Activity<Meta = ActivityV2Meta> = BaseActivity<Meta> & {\n id: string;\n createdAt: string;\n createdBy: string;\n modifiedAt: string;\n modifiedBy: string;\n activityAt: string;\n};\n\nexport type ActivityUpdate = {\n description?: string;\n type?: ActivityType;\n activityAt?: string;\n contacts?: ActivityContact[];\n};\n\nexport type ActivityEvent = BaseEvent &\n (ActivityCreateEvent | ActivityUpdateEvent | ActivityDeleteEvent);\n\ntype BaseActivityEvent = {\n actionAt: string;\n userId: string;\n tenantId: string;\n businessEntityId: BusinessEntityIds;\n recordId: string;\n};\n\nexport type ActivityCreateEvent = BaseActivityEvent & {\n action: 'create';\n data: Activity;\n previousData?: undefined;\n};\n\nexport type ActivityUpdateEvent = BaseActivityEvent & {\n action: 'update';\n data: Activity;\n previousData: Activity;\n};\n\nexport type ActivityDeleteEvent = BaseActivityEvent & {\n action: 'delete';\n data: undefined;\n previousData: Activity;\n};\n\n/************\n * ActivityV2Meta Types\n * These types are used to define the structure of the metadata for different activity types.\n ************/\n\nexport type ActivityV2Meta =\n | EmailDebtorsDossierActivityPayload\n | CallActivityPayload\n | MeetingActivityPayload\n | ChatActivityPayload;\n\nexport type EmailDebtorsDossierActivityPayload = {\n /* from: { email: string; name?: string; external?: boolean };\n to: { email: string; name?: string }[];\n cc?: { email: string; name?: string }[];\n bcc?: { email: string; name?: string }[];\n subject?: string;\n attachments?: AttachmentValue[]; */\n};\n\nexport type CallActivityPayload = {\n didNotAnswer: boolean;\n durationSeconds?: number;\n /* from: { phone: string; name?: string; external?: boolean };\n to: string;\n recordingUrl?: string;\n transcription?: string; */\n};\n\nexport type MeetingActivityPayload = {\n /* organizer: string;\n participants: string[];\n location?: string;\n startTime: string;\n endTime: string; */\n};\n\nexport type ChatActivityPayload = {\n /* from: { phone: string; name?: string; external?: boolean };\n to: string[]; */\n message: string;\n platform: 'whatsapp' | 'sms';\n templateName?: string;\n language?: string;\n};\n"]}
|
package/lib/types/crm.d.ts
CHANGED
package/lib/types/crm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crm.d.ts","sourceRoot":"/","sources":["types/crm.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"crm.d.ts","sourceRoot":"/","sources":["types/crm.ts"],"names":[],"mappings":"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"}
|
package/lib/types/crm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crm.js","sourceRoot":"/","sources":["types/crm.ts"],"names":[],"mappings":"AAWA,MAAM,CAAN,IAAY,mBAYX;AAZD,WAAY,mBAAmB;IAC7B,gEAAyC,CAAA;IACzC,8CAAuB,CAAA;IACvB,gEAAyC,CAAA;IACzC,4CAAqB,CAAA;IACrB,0DAAmC,CAAA;IACnC,oDAA6B,CAAA;IAC7B,oEAA6C,CAAA;IAC7C,wCAAiB,CAAA;IACjB,gDAAyB,CAAA;IACzB,kFAA2D,CAAA;IAC3D,gEAAyC,CAAA;AAC3C,CAAC,EAZW,mBAAmB,KAAnB,mBAAmB,QAY9B;AAED,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;AACnB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC7B,oDAA6B,CAAA;IAC7B,wCAAiB,CAAA;IACjB,wCAAiB,CAAA;IACjB,oEAA6C,CAAA;AAC/C,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,QAK9B;AAuMD,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,yCAAqB,CAAA;IACrB,+BAAW,CAAA;IACX,mCAAe,CAAA;AACjB,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAWD,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,wCAAwB,CAAA;IACxB,gCAAgB,CAAA;IAChB,oCAAoB,CAAA;IACpB,oCAAoB,CAAA;AACtB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AA+DD,MAAM,CAAN,IAAY,qBAGX;AAHD,WAAY,qBAAqB;IAC/B,+DAAsC,CAAA;IACtC,6DAAoC,CAAA;AACtC,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,QAGhC;AAED,MAAM,CAAN,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,2DAAsC,CAAA;IACtC,yDAAoC,CAAA;AACtC,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,QAG5B;AAED,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,+CAA6B,CAAA;AAC/B,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,sCAAiB,CAAA;IACjB,4CAAuB,CAAA;IACvB,oDAA+B,CAAA;IAC/B,oCAAe,CAAA;AACjB,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B","sourcesContent":["import {\n LocationValue,\n PhoneNumberRawValue,\n PhoneNumberValue,\n SearchPermissions,\n} from '@bisondesk/commons-sdk/types';\nimport { PublicSearchDefinition } from './definitions.js';\nimport { Interest } from './interests.js';\nimport { BaseEvent } from './internal-events.js';\nimport { ReferenceData } from './utils.js';\n\nexport enum OrganizatioRiskTags {\n BAD_FINANCIAL_INFO = 'BAD_FINANCIAL_INFO',\n WRITE_OFF = 'WRITE_OFF',\n VAT_NUMBER_INVALID = 'VAT_NUMBER_INVALID',\n INSTINCT = 'INSTINCT',\n INVALID_ADDRESS = 'INVALID_ADDRESS',\n NEW_CUSTOMER = 'NEW_CUSTOMER',\n BANK_ACCOUNT_BLOCKED = 'BANK_ACCOUNT_BLOCKED',\n NO_GPS = 'NO_GPS',\n BANKRUPTCY = 'BANKRUPTCY',\n JUDICIAL_REORGANISATION_WCO = 'JUDICIAL_REORGANISATION_WCO',\n NO_DRIVING_LICENSE = 'NO_DRIVING_LICENSE',\n}\n\nexport enum ContactActions {\n UPSERT = 'upsert',\n DELETE = 'delete',\n}\n\nexport enum OrganizationActions {\n ADD_ACTIVITY = 'add_activity',\n UPSERT = 'upsert',\n DELETE = 'delete',\n SELL_TO_ORGANIZATION = 'sell_to_organization',\n}\n\nexport type CrmEvent = CrmOrganizationEvent | CrmContactEvent;\n\ntype BaseContactEvent = BaseEvent & {\n contactId: string;\n organizationId?: string;\n actionAt: string;\n userId: string;\n tenantId: string;\n};\n\nexport type ContactCreateEvent = BaseContactEvent & {\n action: 'create';\n contact: Contact;\n previousContact?: undefined;\n};\n\nexport type ContactUpdateEvent = BaseContactEvent & {\n action: 'update';\n contact: Contact;\n previousContact: Contact;\n};\n\nexport type ContactDeleteEvent = BaseContactEvent & {\n action: 'delete';\n contact?: undefined;\n previousContact: Contact;\n};\n\nexport type CrmContactEvent = ContactCreateEvent | ContactUpdateEvent | ContactDeleteEvent;\n\ntype BaseOrgEvent = BaseEvent & {\n organizationId: string;\n actionAt: string;\n userId: string;\n tenantId: string;\n};\n\nexport type OrgCreateEvent = BaseOrgEvent & {\n action: 'create';\n org: Organization;\n previousOrg?: undefined;\n};\n\nexport type OrgUpdateEvent = BaseOrgEvent & {\n action: 'update';\n org: Organization;\n previousOrg: Organization;\n};\n\nexport type OrgDeleteEvent = BaseOrgEvent & {\n action: 'delete';\n org?: undefined;\n previousOrg: Organization;\n};\n\nexport type CrmOrganizationEvent = OrgCreateEvent | OrgUpdateEvent | OrgDeleteEvent;\n\ntype BaseOrganization = {\n usages: {\n [tenantId: string]: string[]; // branchIds that are using this organization\n };\n countryCode: string;\n name: string;\n segment?: string;\n /**\n * Client sector — Tier 1 of the industry taxonomy (what business the client is in).\n * Free string validated against the `ORG_INDUSTRY_PICKLIST_ID` picklist. Orthogonal to\n * `segment`, which records the client's ROLE (end customer, trader, dealer, …).\n */\n industry?: string;\n /**\n * Sub-industry — Tier 2 of the industry taxonomy: a finer classification within the chosen\n * `industry`. Generic and reusable across industries; each picklist value\n * (`SUB_INDUSTRY_PICKLIST_ID`) declares which parent `industry` it belongs to. Today only\n * `transport-logistics` has sub-values (the cargo type: reefer, tanker, tipper, …).\n */\n subIndustry?: string;\n type?: 'COMPANY' | 'INDIVIDUAL' | 'GOVERNMENT';\n vatNumber?: string;\n /**\n * Registered share capital (capital social), in the currency it was registered in. Registry\n * data like `vatNumber`, kept because the legal documents print it — the Ivory Coast\n * cautionnement names the customer by capital alongside its trade-register number.\n */\n shareCapital?: string;\n addresses?: {\n legal?: LocationValue;\n transport?: LocationValue;\n };\n conglomerate?: boolean;\n riskTags?: string[];\n\n // general contact — main switchboard / info address, distinct from billing\n generalEmail?: string;\n\n // billing\n billingEmails?: string[];\n skipPaymentReminders?: boolean;\n skipInvoiceEmails?: boolean;\n trustworthy?: boolean;\n // meta\n slbPartner?: boolean;\n\n tags?: string[]; // custom tags for the organization\n};\n\nexport type NewOrganization = BaseOrganization & {\n id?: undefined;\n externalId?: undefined;\n createdAt?: undefined;\n createdBy?: undefined;\n billingPhone?: PhoneNumberValue | PhoneNumberRawValue;\n generalPhone?: PhoneNumberValue | PhoneNumberRawValue;\n};\n\nexport type ValidatedNewOrganization = Omit<NewOrganization, 'billingPhone' | 'generalPhone'> & {\n billingPhone?: PhoneNumberValue;\n generalPhone?: PhoneNumberValue;\n};\n\nexport type Organization = BaseOrganization & {\n createdAt: string;\n externalId: number;\n createdBy: string;\n id: string;\n\n debt?: OrganizationDebtInfo;\n\n billingPhone?: PhoneNumberValue;\n generalPhone?: PhoneNumberValue;\n\n disabled?: boolean;\n disabledAt?: string;\n disabledBy?: string;\n disabledReason?: string;\n};\n\nexport type OrganizationDebtInfo = {\n overdueSince?: string;\n overdueInvoices: number;\n overdueAmount: string;\n unpaidInvoices: number;\n unpaidAmount: string;\n};\n\nexport type OrgLeasingContract = {\n id: string;\n contractNumber?: string;\n vehicle: {\n id: string;\n stockNumber: string;\n administrativeNumber?: string;\n };\n};\n\nexport type SearchOrganization = {\n org: Organization;\n contract: OrgLeasingContract[]; // important for the logic regarding leasing overdue reminders\n interests?: Interest[];\n custom: {\n inUse: boolean; // is this organization in use by any of the branches of this tenant, or is it an organization from another tenant.\n lastActivityAt: string | undefined; // last activity at this organization\n lastActivityBy: string | undefined; // user that did the last activity at this organization\n engagementTypes: OrgEngagementType[] | undefined; // types of engagements this organization has in the tenant\n\n accountManagers: string[]; // dynamically determined account managers for this organization\n };\n};\n\nexport type PotentialDuplicatesReferenceData = ReferenceData & { blockIgnore?: boolean };\n\nexport type InputSearchOrganization = SearchOrganization & {\n permissions: SearchPermissions | undefined;\n};\n\nexport type SearchContact = {\n contact: Contact;\n org?: Organization;\n interests?: Interest[];\n custom: {\n accountManagers: string[]; // dynamically determined account managers for this contact\n classification: 'prospect' | 'customer';\n hasOrganization: boolean;\n lastActivityAt: string | undefined;\n lastActivityBy: string | undefined;\n };\n};\n\nexport type InputSearchContact = SearchContact & {\n permissions: SearchPermissions | undefined;\n};\n\nexport type CrmPublicSearchDefinitions = {\n searchOrg: PublicSearchDefinition;\n searchContact: PublicSearchDefinition;\n};\n\nexport enum MarketingChannel {\n Email = 'email',\n Whatsapp = 'whatsapp',\n Sms = 'sms',\n Phone = 'phone',\n}\n\nexport type MarketingPreferenceEntry = {\n optedOut: boolean;\n updatedAt: string;\n};\n\nexport type MarketingPreferences = {\n [channel in MarketingChannel]?: MarketingPreferenceEntry;\n};\n\nexport enum PartnerLevel {\n Internal = '05-internal',\n Gold = '10-gold',\n Silver = '20-silver',\n Bronze = '30-bronze',\n}\n\ntype BaseContact = {\n accountManager?: string;\n countryCode?: string; // TODO review if this should be required (UI says it is)\n language?: string;\n emails: string[];\n job?: string;\n /** free-text job title; only meaningful when `job === JOB_CATEGORY_OTHER_ID` */\n jobOther?: string;\n /** either firstName or lastName should be filled in */\n firstName?: string;\n lastName?: string;\n /** yyyy-mm-dd */\n birthDate?: string;\n /** National identity document number (e.g. CNI in Côte d'Ivoire). */\n nationalId?: string;\n organizationId?: string;\n /** will not be filled if organizationId is present */\n orgName?: string;\n marketingPreferences?: MarketingPreferences;\n clientLevel?: PartnerLevel;\n\n disabledAt?: string;\n disabledBy?: string;\n disabledReason?: string;\n\n tags?: string[]; // custom tags for the contact\n\n channels?: {\n telegram?: MessagingChannelEntry;\n whatsapp?: MessagingChannelEntry;\n };\n};\n\nexport type MessagingChannelEntry = {\n id: string;\n sessionId?: string;\n};\n\nexport type NewContact = BaseContact & {\n id?: undefined;\n createdAt?: undefined;\n createdBy?: undefined;\n phones: Array<PhoneNumberValue | PhoneNumberRawValue>;\n organizationId?: string;\n};\n\nexport type NewContactValidated = BaseContact & {\n id?: undefined;\n createdAt?: undefined;\n createdBy?: undefined;\n organizationId?: string;\n phones: PhoneNumberValue[];\n};\n\nexport type Contact = BaseContact & {\n id: string;\n createdAt: string;\n createdBy: string;\n phones: PhoneNumberValue[];\n};\n\nexport enum SaveContactResolution {\n IgnoreDuplicates = 'IGNORE_DUPLICATES',\n BlockDuplicates = 'BLOCK_DUPLICATES',\n}\n\nexport enum SaveOrgResolution {\n IgnoreDuplicates = 'IGNORE_DUPLICATES',\n BlockDuplicates = 'BLOCK_DUPLICATES',\n}\n\nexport enum CrmSearchScope {\n Tenant = 'tenant',\n Conglomerate = 'conglomerate',\n}\n\nexport enum OrgEngagementType {\n offers = 'offers',\n purchases = 'purchases',\n opportunities = 'opportunities',\n sales = 'sales',\n}\n"]}
|
|
1
|
+
{"version":3,"file":"crm.js","sourceRoot":"/","sources":["types/crm.ts"],"names":[],"mappings":"AAWA,MAAM,CAAN,IAAY,mBAYX;AAZD,WAAY,mBAAmB;IAC7B,gEAAyC,CAAA;IACzC,8CAAuB,CAAA;IACvB,gEAAyC,CAAA;IACzC,4CAAqB,CAAA;IACrB,0DAAmC,CAAA;IACnC,oDAA6B,CAAA;IAC7B,oEAA6C,CAAA;IAC7C,wCAAiB,CAAA;IACjB,gDAAyB,CAAA;IACzB,kFAA2D,CAAA;IAC3D,gEAAyC,CAAA;AAC3C,CAAC,EAZW,mBAAmB,KAAnB,mBAAmB,QAY9B;AAED,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;AACnB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC7B,oDAA6B,CAAA;IAC7B,wCAAiB,CAAA;IACjB,wCAAiB,CAAA;IACjB,oEAA6C,CAAA;AAC/C,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,QAK9B;AA6MD,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,yCAAqB,CAAA;IACrB,+BAAW,CAAA;IACX,mCAAe,CAAA;AACjB,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAWD,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,wCAAwB,CAAA;IACxB,gCAAgB,CAAA;IAChB,oCAAoB,CAAA;IACpB,oCAAoB,CAAA;AACtB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AA+DD,MAAM,CAAN,IAAY,qBAGX;AAHD,WAAY,qBAAqB;IAC/B,+DAAsC,CAAA;IACtC,6DAAoC,CAAA;AACtC,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,QAGhC;AAED,MAAM,CAAN,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,2DAAsC,CAAA;IACtC,yDAAoC,CAAA;AACtC,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,QAG5B;AAED,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,+CAA6B,CAAA;AAC/B,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,sCAAiB,CAAA;IACjB,4CAAuB,CAAA;IACvB,oDAA+B,CAAA;IAC/B,oCAAe,CAAA;AACjB,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B","sourcesContent":["import {\n LocationValue,\n PhoneNumberRawValue,\n PhoneNumberValue,\n SearchPermissions,\n} from '@bisondesk/commons-sdk/types';\nimport { PublicSearchDefinition } from './definitions.js';\nimport { Interest } from './interests.js';\nimport { BaseEvent } from './internal-events.js';\nimport { ReferenceData } from './utils.js';\n\nexport enum OrganizatioRiskTags {\n BAD_FINANCIAL_INFO = 'BAD_FINANCIAL_INFO',\n WRITE_OFF = 'WRITE_OFF',\n VAT_NUMBER_INVALID = 'VAT_NUMBER_INVALID',\n INSTINCT = 'INSTINCT',\n INVALID_ADDRESS = 'INVALID_ADDRESS',\n NEW_CUSTOMER = 'NEW_CUSTOMER',\n BANK_ACCOUNT_BLOCKED = 'BANK_ACCOUNT_BLOCKED',\n NO_GPS = 'NO_GPS',\n BANKRUPTCY = 'BANKRUPTCY',\n JUDICIAL_REORGANISATION_WCO = 'JUDICIAL_REORGANISATION_WCO',\n NO_DRIVING_LICENSE = 'NO_DRIVING_LICENSE',\n}\n\nexport enum ContactActions {\n UPSERT = 'upsert',\n DELETE = 'delete',\n}\n\nexport enum OrganizationActions {\n ADD_ACTIVITY = 'add_activity',\n UPSERT = 'upsert',\n DELETE = 'delete',\n SELL_TO_ORGANIZATION = 'sell_to_organization',\n}\n\nexport type CrmEvent = CrmOrganizationEvent | CrmContactEvent;\n\ntype BaseContactEvent = BaseEvent & {\n contactId: string;\n organizationId?: string;\n actionAt: string;\n userId: string;\n tenantId: string;\n};\n\nexport type ContactCreateEvent = BaseContactEvent & {\n action: 'create';\n contact: Contact;\n previousContact?: undefined;\n};\n\nexport type ContactUpdateEvent = BaseContactEvent & {\n action: 'update';\n contact: Contact;\n previousContact: Contact;\n};\n\nexport type ContactDeleteEvent = BaseContactEvent & {\n action: 'delete';\n contact?: undefined;\n previousContact: Contact;\n};\n\nexport type CrmContactEvent = ContactCreateEvent | ContactUpdateEvent | ContactDeleteEvent;\n\ntype BaseOrgEvent = BaseEvent & {\n organizationId: string;\n actionAt: string;\n userId: string;\n tenantId: string;\n};\n\nexport type OrgCreateEvent = BaseOrgEvent & {\n action: 'create';\n org: Organization;\n previousOrg?: undefined;\n};\n\nexport type OrgUpdateEvent = BaseOrgEvent & {\n action: 'update';\n org: Organization;\n previousOrg: Organization;\n};\n\nexport type OrgDeleteEvent = BaseOrgEvent & {\n action: 'delete';\n org?: undefined;\n previousOrg: Organization;\n};\n\nexport type CrmOrganizationEvent = OrgCreateEvent | OrgUpdateEvent | OrgDeleteEvent;\n\ntype BaseOrganization = {\n usages: {\n [tenantId: string]: string[]; // branchIds that are using this organization\n };\n countryCode: string;\n name: string;\n segment?: string;\n /**\n * Client sector — Tier 1 of the industry taxonomy (what business the client is in).\n * Free string validated against the `ORG_INDUSTRY_PICKLIST_ID` picklist. Orthogonal to\n * `segment`, which records the client's ROLE (end customer, trader, dealer, …).\n */\n industry?: string;\n /**\n * Sub-industry — Tier 2 of the industry taxonomy: a finer classification within the chosen\n * `industry`. Generic and reusable across industries; each picklist value\n * (`SUB_INDUSTRY_PICKLIST_ID`) declares which parent `industry` it belongs to. Today only\n * `transport-logistics` has sub-values (the cargo type: reefer, tanker, tipper, …).\n */\n subIndustry?: string;\n type?: 'COMPANY' | 'INDIVIDUAL' | 'GOVERNMENT';\n vatNumber?: string;\n /**\n * Registered share capital (capital social), in the currency it was registered in. Registry\n * data like `vatNumber`, kept because the legal documents print it — the Ivory Coast\n * cautionnement names the customer by capital alongside its trade-register number.\n */\n shareCapital?: string;\n /**\n * National business registration number. For FR orgs this is a SIREN (9 digits) or a SIRET\n * (14 digits = SIREN + 5-digit NIC) — whichever is available; needed for annuaire routing of\n * FR B2B e-invoices. A SIREN is derivable from a valid FR VAT (digits 3–11).\n */\n registrationNumber?: string;\n addresses?: {\n legal?: LocationValue;\n transport?: LocationValue;\n };\n conglomerate?: boolean;\n riskTags?: string[];\n\n // general contact — main switchboard / info address, distinct from billing\n generalEmail?: string;\n\n // billing\n billingEmails?: string[];\n skipPaymentReminders?: boolean;\n skipInvoiceEmails?: boolean;\n trustworthy?: boolean;\n // meta\n slbPartner?: boolean;\n\n tags?: string[]; // custom tags for the organization\n};\n\nexport type NewOrganization = BaseOrganization & {\n id?: undefined;\n externalId?: undefined;\n createdAt?: undefined;\n createdBy?: undefined;\n billingPhone?: PhoneNumberValue | PhoneNumberRawValue;\n generalPhone?: PhoneNumberValue | PhoneNumberRawValue;\n};\n\nexport type ValidatedNewOrganization = Omit<NewOrganization, 'billingPhone' | 'generalPhone'> & {\n billingPhone?: PhoneNumberValue;\n generalPhone?: PhoneNumberValue;\n};\n\nexport type Organization = BaseOrganization & {\n createdAt: string;\n externalId: number;\n createdBy: string;\n id: string;\n\n debt?: OrganizationDebtInfo;\n\n billingPhone?: PhoneNumberValue;\n generalPhone?: PhoneNumberValue;\n\n disabled?: boolean;\n disabledAt?: string;\n disabledBy?: string;\n disabledReason?: string;\n};\n\nexport type OrganizationDebtInfo = {\n overdueSince?: string;\n overdueInvoices: number;\n overdueAmount: string;\n unpaidInvoices: number;\n unpaidAmount: string;\n};\n\nexport type OrgLeasingContract = {\n id: string;\n contractNumber?: string;\n vehicle: {\n id: string;\n stockNumber: string;\n administrativeNumber?: string;\n };\n};\n\nexport type SearchOrganization = {\n org: Organization;\n contract: OrgLeasingContract[]; // important for the logic regarding leasing overdue reminders\n interests?: Interest[];\n custom: {\n inUse: boolean; // is this organization in use by any of the branches of this tenant, or is it an organization from another tenant.\n lastActivityAt: string | undefined; // last activity at this organization\n lastActivityBy: string | undefined; // user that did the last activity at this organization\n engagementTypes: OrgEngagementType[] | undefined; // types of engagements this organization has in the tenant\n\n accountManagers: string[]; // dynamically determined account managers for this organization\n };\n};\n\nexport type PotentialDuplicatesReferenceData = ReferenceData & { blockIgnore?: boolean };\n\nexport type InputSearchOrganization = SearchOrganization & {\n permissions: SearchPermissions | undefined;\n};\n\nexport type SearchContact = {\n contact: Contact;\n org?: Organization;\n interests?: Interest[];\n custom: {\n accountManagers: string[]; // dynamically determined account managers for this contact\n classification: 'prospect' | 'customer';\n hasOrganization: boolean;\n lastActivityAt: string | undefined;\n lastActivityBy: string | undefined;\n };\n};\n\nexport type InputSearchContact = SearchContact & {\n permissions: SearchPermissions | undefined;\n};\n\nexport type CrmPublicSearchDefinitions = {\n searchOrg: PublicSearchDefinition;\n searchContact: PublicSearchDefinition;\n};\n\nexport enum MarketingChannel {\n Email = 'email',\n Whatsapp = 'whatsapp',\n Sms = 'sms',\n Phone = 'phone',\n}\n\nexport type MarketingPreferenceEntry = {\n optedOut: boolean;\n updatedAt: string;\n};\n\nexport type MarketingPreferences = {\n [channel in MarketingChannel]?: MarketingPreferenceEntry;\n};\n\nexport enum PartnerLevel {\n Internal = '05-internal',\n Gold = '10-gold',\n Silver = '20-silver',\n Bronze = '30-bronze',\n}\n\ntype BaseContact = {\n accountManager?: string;\n countryCode?: string; // TODO review if this should be required (UI says it is)\n language?: string;\n emails: string[];\n job?: string;\n /** free-text job title; only meaningful when `job === JOB_CATEGORY_OTHER_ID` */\n jobOther?: string;\n /** either firstName or lastName should be filled in */\n firstName?: string;\n lastName?: string;\n /** yyyy-mm-dd */\n birthDate?: string;\n /** National identity document number (e.g. CNI in Côte d'Ivoire). */\n nationalId?: string;\n organizationId?: string;\n /** will not be filled if organizationId is present */\n orgName?: string;\n marketingPreferences?: MarketingPreferences;\n clientLevel?: PartnerLevel;\n\n disabledAt?: string;\n disabledBy?: string;\n disabledReason?: string;\n\n tags?: string[]; // custom tags for the contact\n\n channels?: {\n telegram?: MessagingChannelEntry;\n whatsapp?: MessagingChannelEntry;\n };\n};\n\nexport type MessagingChannelEntry = {\n id: string;\n sessionId?: string;\n};\n\nexport type NewContact = BaseContact & {\n id?: undefined;\n createdAt?: undefined;\n createdBy?: undefined;\n phones: Array<PhoneNumberValue | PhoneNumberRawValue>;\n organizationId?: string;\n};\n\nexport type NewContactValidated = BaseContact & {\n id?: undefined;\n createdAt?: undefined;\n createdBy?: undefined;\n organizationId?: string;\n phones: PhoneNumberValue[];\n};\n\nexport type Contact = BaseContact & {\n id: string;\n createdAt: string;\n createdBy: string;\n phones: PhoneNumberValue[];\n};\n\nexport enum SaveContactResolution {\n IgnoreDuplicates = 'IGNORE_DUPLICATES',\n BlockDuplicates = 'BLOCK_DUPLICATES',\n}\n\nexport enum SaveOrgResolution {\n IgnoreDuplicates = 'IGNORE_DUPLICATES',\n BlockDuplicates = 'BLOCK_DUPLICATES',\n}\n\nexport enum CrmSearchScope {\n Tenant = 'tenant',\n Conglomerate = 'conglomerate',\n}\n\nexport enum OrgEngagementType {\n offers = 'offers',\n purchases = 'purchases',\n opportunities = 'opportunities',\n sales = 'sales',\n}\n"]}
|
|
@@ -58,11 +58,18 @@ export type SalesReportHistogramBucket = {
|
|
|
58
58
|
month: string;
|
|
59
59
|
count: number;
|
|
60
60
|
};
|
|
61
|
+
export type SalesReportProjection = {
|
|
62
|
+
month: string;
|
|
63
|
+
salesPerBusinessDay: number;
|
|
64
|
+
businessDaysLeft: number;
|
|
65
|
+
projectedRemaining: number;
|
|
66
|
+
};
|
|
61
67
|
export declare const STOCK_AGE_BANDS: readonly ['0-30', '31-90', '91-180', '180+'];
|
|
62
68
|
export type StockAgeBand = (typeof STOCK_AGE_BANDS)[number];
|
|
63
69
|
export type StockAgePoint = {
|
|
64
70
|
date: string;
|
|
65
71
|
counts: Record<StockAgeBand, number>;
|
|
72
|
+
purchaseCosts: Record<StockAgeBand, number>;
|
|
66
73
|
};
|
|
67
74
|
export type SalesReportResponse = {
|
|
68
75
|
period: {
|
|
@@ -90,6 +97,7 @@ export type SalesReportResponse = {
|
|
|
90
97
|
returning: TenureBucket[];
|
|
91
98
|
conglomerate: SalesReportConglomerate;
|
|
92
99
|
histogram: SalesReportHistogramBucket[];
|
|
100
|
+
projection: SalesReportProjection;
|
|
93
101
|
stockAge: StockAgePoint[];
|
|
94
102
|
concentration: number | null;
|
|
95
103
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reports-sales.d.ts","sourceRoot":"/","sources":["types/reports-sales.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,iBAAiB,YAC5B,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,WAAW,EACX,KAAK,EACL,KAAK,EACL,UAAU,EACV,KAAK,CACG,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE,eAAO,MAAM,oBAAoB,EAAE,cAAsB,CAAC;AAE1D,MAAM,MAAM,kBAAkB,GAAG;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC;AAS5D,MAAM,MAAM,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAG1F,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAE5D,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,eAAe,CAAC;IAExB,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAE/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IAEnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAE7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAE5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAGF,MAAM,MAAM,iBAAiB,GAAG;IAE9B,EAAE,EAAE,MAAM,CAAC;IAEX,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAGF,MAAM,MAAM,0BAA0B,GAAG;IAEvC,EAAE,EAAE,MAAM,CAAC;IAEX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAEpC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,IAAI,EAAE,0BAA0B,EAAE,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IAEvC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAMF,eAAO,MAAM,eAAe,YAAI,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAE5E,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"reports-sales.d.ts","sourceRoot":"/","sources":["types/reports-sales.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reports-sales.js","sourceRoot":"/","sources":["types/reports-sales.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,WAAW;IACX,KAAK;IACL,KAAK;IACL,UAAU;IACV,KAAK;CACG,CAAC;AAIX,MAAM,CAAC,MAAM,oBAAoB,GAAmB,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"reports-sales.js","sourceRoot":"/","sources":["types/reports-sales.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,WAAW;IACX,KAAK;IACL,KAAK;IACL,UAAU;IACV,KAAK;CACG,CAAC;AAIX,MAAM,CAAC,MAAM,oBAAoB,GAAmB,KAAK,CAAC;AAiH1D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC","sourcesContent":["/**\n * Sales report — the payload for the `Reports → Sales` tab. Sales-side metrics\n * are computed from the per-tenant `opportunities` OpenSearch index, keyed on\n * `opportunity.reviewedAt` (the moment an opportunity ENTERS Preparation — our\n * \"sale\" event; `preparedAt` is when it leaves Preparation into Delivery). The\n * buyer ranking comes from the vehicles index, keyed on `purchase.purchaseAgreedAt`.\n *\n * The API returns raw numbers only; the client formats (€, %, pp, \"younger\") and\n * colors the deltas.\n */\n\n/**\n * Period presets driving every metric except the fixed 18-month histogram, in\n * selector order. Single source of truth — `SalesPeriodKey` is derived from it.\n * `mtd`/`ytd` are to-date ranges (start of month/year → now); `lastMonth`/`lastYear`\n * are the previous complete calendar month/year.\n */\nexport const SALES_PERIOD_KEYS = [\n '30d',\n '45d',\n '60d',\n '90d',\n 'lastMonth',\n 'mtd',\n 'ytd',\n 'lastYear',\n '12m',\n] as const;\n\nexport type SalesPeriodKey = (typeof SALES_PERIOD_KEYS)[number];\n\nexport const DEFAULT_SALES_PERIOD: SalesPeriodKey = 'mtd';\n\nexport type SalesReportRequest = { period: SalesPeriodKey };\n\n/**\n * A metric for the selected window with its year-over-year counterpart.\n * - `value`: current window (null when undefined, e.g. no data / no median).\n * - `prev`: same metric in the window shifted back exactly one year.\n * - `pct`: fractional change `(value - prev) / prev` (null when prev is 0 or\n * either side is undefined). The client renders/colors the delta.\n */\nexport type YoyMetric = { value: number | null; prev: number | null; pct: number | null };\n\n/** Tenure buckets for returning-customer analysis (share of buyers in the window). */\nexport type TenureBucketKey = '2y' | '1-2y' | '<1y' | 'new';\n\nexport type TenureBucket = {\n bucket: TenureBucketKey;\n /** Share of buyers in this bucket, 0–100. */\n sharePct: number;\n /** Year-over-year change in this share, as a fractional relative change (null when no prior data). */\n yoyPct: number | null;\n};\n\nexport type SalesReportCountry = {\n /** ISO country code (lowercase) from `org.countryCode`. */\n code: string;\n units: number;\n yoyPct: number | null;\n};\n\nexport type SalesReportSalesperson = {\n /** User id from `opportunity.accountManager`; the client resolves name + avatar. */\n id: string;\n units: number;\n yoyPct: number | null;\n};\n\nexport type SalesReportBuyer = {\n /** User id from `purchase.purchasedBy`; the client resolves name + avatar. */\n id: string;\n units: number;\n yoyPct: number | null;\n};\n\nexport type SalesReportMake = {\n /** Vehicle make name from `vehicle.external.general.make` (stored verbatim, e.g. \"DAF\"). */\n make: string;\n units: number;\n yoyPct: number | null;\n};\n\n/** A ranked organization row for the top-clients / top-suppliers cards. */\nexport type SalesReportTopOrg = {\n /** Organization id (`org.id` for clients; `purchase.organizationId` for suppliers). */\n id: string;\n /** Organization name (resolved server-side); falls back to the id when missing. */\n name: string;\n /** The org's ISO country code (lowercase); null when not recorded. */\n countryCode: string | null;\n units: number;\n yoyPct: number | null;\n};\n\n/** A conglomerate-flagged organization (there is no group/parent model — each org stands alone). */\nexport type SalesReportConglomerateOrg = {\n /** `org.id`. */\n id: string;\n /** `org.name` (resolved server-side); falls back to the id when missing. */\n name: string;\n units: number;\n yoyPct: number | null;\n};\n\nexport type SalesReportConglomerate = {\n /** Share of units going to conglomerate-flagged customers, 0–100 (null when no sales). */\n sharePct: number | null;\n /** Year-over-year change in that share, as a fractional relative change (null when no prior data). */\n yoyPct: number | null;\n /** The conglomerate share in the year-ago window, 0–100. */\n lastYearPct: number | null;\n /** Top conglomerate-flagged organizations by units in the current window. */\n orgs: SalesReportConglomerateOrg[];\n};\n\nexport type SalesReportHistogramBucket = {\n /** Calendar month, `YYYY-MM`. */\n month: string;\n count: number;\n};\n\n/**\n * Current-month sales projection for the histogram's last bucket: the average sales\n * per business day over the last 5 business days, extended over the business days\n * left in the month. Business days are UTC weekdays (Mon–Fri) — no holiday calendar.\n * Today is excluded on both sides: it is still filling up (its sales land in the\n * month's actual count as they happen).\n */\nexport type SalesReportProjection = {\n /** The projected month, `YYYY-MM` — always the histogram's last bucket. */\n month: string;\n /** Average sales per business day over the last 5 business days. */\n salesPerBusinessDay: number;\n /** Business days (Mon–Fri, UTC) left in the month after today. */\n businessDaysLeft: number;\n /** Expected further sales this month: `salesPerBusinessDay × businessDaysLeft` (unrounded). */\n projectedRemaining: number;\n};\n\n/**\n * Age-of-stock bands, in days of capital tied up. Cut points at 30 / 90 / 180 days,\n * upper bound inclusive; the last band is open-ended, so `180+` means \"181 and over\".\n */\nexport const STOCK_AGE_BANDS = ['0-30', '31-90', '91-180', '180+'] as const;\n\nexport type StockAgeBand = (typeof STOCK_AGE_BANDS)[number];\n\n/**\n * One monthly snapshot on the stock-age charts, measured by capital tied up in\n * inventory. A vehicle counts on `date` when the supplier was fully paid on or before\n * that day and it had not been sold yet; its age is `date − supplierFullyPaidAt` in\n * days. Used vehicles only.\n */\nexport type StockAgePoint = {\n /** Snapshot day — the 1st of a month, `YYYY-MM-DD` (UTC). */\n date: string;\n /** In-stock vehicle count per age band on that day. */\n counts: Record<StockAgeBand, number>;\n /**\n * Sum of those vehicles' purchase costs per age band on that day (`deal.purchase`,\n * excl VAT, tenant currency). A vehicle without a recorded purchase cost still counts\n * in `counts` but contributes 0 here.\n */\n purchaseCosts: Record<StockAgeBand, number>;\n};\n\nexport type SalesReportResponse = {\n period: {\n key: SalesPeriodKey;\n /** Current window, half-open `[start, end)` (ISO strings). */\n start: string;\n end: string;\n /** Number of days in the window (the `salesPerDay` denominator). */\n days: number;\n /** Year-ago window `[yoyStart, yoyEnd)`. */\n yoyStart: string;\n yoyEnd: string;\n };\n /** All-types overview KPIs. `medianAge` is in years (a decrease is good — younger stock). */\n overview: {\n salesPerDay: YoyMetric;\n salesTotal: YoyMetric;\n medianRoi: YoyMetric;\n medianPrice: YoyMetric;\n medianAge: YoyMetric;\n uniqueCustomers: YoyMetric;\n };\n /** Top countries by units in the current window. */\n countries: SalesReportCountry[];\n /** Top vehicle makes by units in the current window (the client slices to its top N). */\n makes: SalesReportMake[];\n /** All sales people with units in either window (capped; the client list scrolls). */\n salespeople: SalesReportSalesperson[];\n /** All purchasers with vehicles bought in the current window (capped; the client list scrolls). */\n buyers: SalesReportBuyer[];\n /** Top client organizations by units bought from us in the current window. */\n topClients: SalesReportTopOrg[];\n /** Top supplier organizations by used vehicles purchased from them in the current window. */\n topSuppliers: SalesReportTopOrg[];\n /** Returning-customer tenure shares (4 buckets). */\n returning: TenureBucket[];\n conglomerate: SalesReportConglomerate;\n /** Fixed last-18-calendar-months histogram of opps into Preparation (period-independent). */\n histogram: SalesReportHistogramBucket[];\n /** Current-month projection, stacked on the histogram's last bucket by the client. */\n projection: SalesReportProjection;\n /**\n * Stock-age evolution measured as capital tied up in inventory: one snapshot per\n * month-1st of vehicles by days from supplier-fully-paid to sold (used vehicles).\n * Fixed to the last 24 months, period-independent.\n */\n stockAge: StockAgePoint[];\n /**\n * Customer concentration: the 10 largest customers' share of units in the window, as a\n * fraction (0–1); null when there are no sales. A risk signal — over-reliance on a few\n * buyers.\n */\n concentration: number | null;\n};\n"]}
|
package/lib/types/tenants.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenants.d.ts","sourceRoot":"/","sources":["types/tenants.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tenants.d.ts","sourceRoot":"/","sources":["types/tenants.ts"],"names":[],"mappings":"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"}
|
package/lib/types/tenants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenants.js","sourceRoot":"/","sources":["types/tenants.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAN,IAAY,YAmDX;AAnDD,WAAY,YAAY;IACtB,iDAAiC,CAAA;IACjC,2BAAW,CAAA;IAOX,0CAA0B,CAAA;IAC1B,2BAAW,CAAA;IACX,6BAAa,CAAA;IAMb,0CAA0B,CAAA;IAQ1B,4CAA4B,CAAA;IAC5B,+BAAe,CAAA;IACf,mCAAmB,CAAA;IACnB,yEAAyD,CAAA;IACzD,uCAAuB,CAAA;IACvB,qCAAqB,CAAA;IAQrB,6CAA6B,CAAA;IAC7B,+CAA+B,CAAA;IAC/B,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;IACrB,+BAAe,CAAA;IACf,iDAAiC,CAAA;IACjC,uCAAuB,CAAA;IACvB,gEAAgD,CAAA;IAChD,+BAAe,CAAA;IACf,8DAA8C,CAAA;IAC9C,uCAAuB,CAAA;IACvB,mCAAmB,CAAA;IACnB,uCAAuB,CAAA;AACzB,CAAC,EAnDW,YAAY,KAAZ,YAAY,QAmDvB;AAGD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,CAAU,CAAC","sourcesContent":["import { CognitoInfo, LocationValue, Region } from '@bisondesk/commons-sdk/types';\nimport { OpportunityType } from '../constants.js';\n\nexport type PublicTenant = {\n defaultCountry: string;\n defaultCurrency: string;\n defaultLanguage: string;\n id: string; // the id is provided on creation bc we assume tenants will be created by someone on the team\n name: string;\n region: Region;\n subdomains: [string, ...string[]];\n\n // Pay attention to what information is added here since\n // the tenant can be obtained without authentication\n};\n\nexport enum TenantModule {\n Administration = 'administration',\n App = 'app',\n /**\n * The tenant's users can put the app into client mode, hiding the internal-only pages while\n * showing a screen to a customer. Left off for a tenant whose users are themselves the\n * customer: it would hide their sign-out to no purpose, and turning it back off needs a PIN\n * they were never given.\n */\n ClientMode = 'client_mode',\n CRM = 'crm',\n Docs = 'docs',\n /**\n * The app may send email on behalf of this tenant's users, e.g. sharing a vehicle: the\n * sender is the requesting user's own address, so the tenant's email domain must be one we\n * can deliver from. Absent on client tenants — we do not send mail as outsiders.\n */\n EmailShare = 'email_share',\n /**\n * The tenant's users can sign in with Google. It is a tenant fact rather than a user one:\n * `googleEmail` is only filled when the Google address differs from the BisonDesk one, and\n * every pool carries the Google provider regardless, so neither can tell who actually uses it.\n * Absent means password-only, which is what routes those users an emailed invite with a\n * genuine temporary password.\n */\n GoogleLogin = 'google_login',\n Leads = 'leads',\n Leasing = 'leasing',\n LeasingContractGeneration = 'leasing_contract_generation',\n Marketing = 'marketing',\n Insights = 'insights',\n /**\n * The tenant has agreed to exchange deal data through BisonDesk automatically, on top of the\n * bare vehicle distribution: it may be named as the buyer on an intercompany sale, which lets\n * the invoice sync and the purchase reconciliation write a purchase onto its copy. Read on the\n * BUYER only. All group tenants have it today; a supplier or client tenant that wants deal\n * data pushed too joins the exchange by being granted it.\n */\n Intercompany = 'intercompany',\n Opportunities = 'opportunities',\n Offers = 'offers',\n Vehicles = 'vehicles',\n Tasks = 'tasks',\n TrackAndTrace = 'track_and_trace',\n Bootstrap = 'bootstrap',\n WhatsappNotifications = 'whatsapp_notifications',\n Hexon = 'hexon',\n DeliveryConfirmation = 'delivery_confirmation',\n Transport = 'transport',\n Reports = 'reports',\n Prospects = 'prospects',\n}\n\n/** Report tabs a tenant can enable, in canonical order. */\nexport const REPORT_TAB_KEYS = ['sales', 'leasing', 'purchases'] as const;\n\nexport type ReportTabKey = (typeof REPORT_TAB_KEYS)[number];\n\nexport type Tenant = PublicTenant & {\n cognito?: CognitoInfo;\n languages: [string, ...string[]];\n conglomerate?: string;\n emailDomain: string;\n hyperdmsIds?: string[];\n hyperportalId?: string;\n\n /* deprecated */\n exactAccounting?: boolean;\n\n branches: [Branch, ...Branch[]];\n modules: TenantModule[];\n /**\n * Reports page configuration. `tabs` lists the visible tabs in display order;\n * absent or empty means no reports are configured for the tenant (the page\n * shows a notice instead of tabs).\n */\n reports?: {\n tabs: ReportTabKey[];\n };\n test?: boolean;\n opportunities: {\n types: OpportunityType[];\n };\n /**\n * Reservation expiry for this tenant's OWN vehicles (ADR-0026): the truck's owner sets the\n * clock, wherever the deal runs — for a cross-tenant copy the chain origin's policy\n * applies, whatever opportunity type the tenant selling to the end customer uses.\n * Absent = the default\n * business-day tiers; the tier is still picked by the local customer org's\n * trustworthy/conglomerate flags.\n */\n reservationExpiry?: ReservationExpiryPolicy;\n crm?: {\n vatNumberRequiredForCompanies?: boolean;\n };\n accounting?: {\n costCenterPerLine?: boolean;\n };\n // E.164 Twilio caller ID used as a fallback when a user has no own number configured\n defaultTwilioPhoneNumber?: string;\n deliveryEmail?: string;\n};\n\nexport type ReservationExpiryPolicy =\n | { policy: 'disabled' }\n | { policy: 'days'; generic: number; trustworthy: number; conglomerate: number };\n\nexport type AccountingProvider = 'exact' | 'odoo';\n\nexport type Branch = {\n id: string;\n name: string;\n country: string;\n language: string;\n /* deprecated — use `accounting === 'exact'` instead. Kept until prod cutover. */\n exactAccounting?: boolean;\n accounting?: AccountingProvider;\n currency: string;\n adminNumberPrefix: string;\n stockNumberPrefix: string;\n vatNumber: string;\n contactPerson?: { firstName: string; lastName: string };\n vatRates: {\n standard: string; //percentage value (e.g. 21)\n };\n location: LocationValue;\n\n storecoveExternalId?: number;\n externalQuote?: boolean;\n hyperdmsId?: string;\n internalDealsEnabled?: boolean;\n /** The source invoices the end customer directly; this branch collects payment and earns\n * commission. Intercompany source opportunities for this branch's deals take the buyer\n * deal's own client instead of the branch counterparty org. */\n dropshipping?: boolean;\n};\n\nexport type HdmsVehiclesSync = {\n active: boolean;\n};\n\nexport type HdmsCrmSync = {\n active: boolean;\n};\n\nexport type HdmsDocumentSync = {\n active: boolean;\n};\n\nexport type TenantSyncSettings = {\n tenantId: string;\n hdmsVehicles: HdmsVehiclesSync | undefined;\n hdmsCrm: HdmsCrmSync | undefined;\n hdmsDocuments: HdmsDocumentSync | undefined;\n};\n\nexport type WhatsappStateResponse = {\n enabled: boolean;\n};\n\n/**\n * What the login page is told about a tenant before anyone has signed in. Reached by subdomain\n * on the one public tenant endpoint, so it carries only what an anonymous visitor may see —\n * mind that when adding to it.\n *\n * The two booleans are answers the page cannot work out for itself: it has no session, so no\n * modules to read. They say which sign-in options to offer and whether WhatsApp sharing is on.\n */\nexport type TenantInfoResponse = {\n tenant: PublicTenant;\n whatsapp: boolean;\n googleLogin: boolean;\n cognito: CognitoInfo;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"tenants.js","sourceRoot":"/","sources":["types/tenants.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAN,IAAY,YAmDX;AAnDD,WAAY,YAAY;IACtB,iDAAiC,CAAA;IACjC,2BAAW,CAAA;IAOX,0CAA0B,CAAA;IAC1B,2BAAW,CAAA;IACX,6BAAa,CAAA;IAMb,0CAA0B,CAAA;IAQ1B,4CAA4B,CAAA;IAC5B,+BAAe,CAAA;IACf,mCAAmB,CAAA;IACnB,yEAAyD,CAAA;IACzD,uCAAuB,CAAA;IACvB,qCAAqB,CAAA;IAQrB,6CAA6B,CAAA;IAC7B,+CAA+B,CAAA;IAC/B,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;IACrB,+BAAe,CAAA;IACf,iDAAiC,CAAA;IACjC,uCAAuB,CAAA;IACvB,gEAAgD,CAAA;IAChD,+BAAe,CAAA;IACf,8DAA8C,CAAA;IAC9C,uCAAuB,CAAA;IACvB,mCAAmB,CAAA;IACnB,uCAAuB,CAAA;AACzB,CAAC,EAnDW,YAAY,KAAZ,YAAY,QAmDvB;AAGD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,CAAU,CAAC","sourcesContent":["import { CognitoInfo, LocationValue, Region } from '@bisondesk/commons-sdk/types';\nimport { OpportunityType } from '../constants.js';\n\nexport type PublicTenant = {\n defaultCountry: string;\n defaultCurrency: string;\n defaultLanguage: string;\n id: string; // the id is provided on creation bc we assume tenants will be created by someone on the team\n name: string;\n region: Region;\n subdomains: [string, ...string[]];\n\n // Pay attention to what information is added here since\n // the tenant can be obtained without authentication\n};\n\nexport enum TenantModule {\n Administration = 'administration',\n App = 'app',\n /**\n * The tenant's users can put the app into client mode, hiding the internal-only pages while\n * showing a screen to a customer. Left off for a tenant whose users are themselves the\n * customer: it would hide their sign-out to no purpose, and turning it back off needs a PIN\n * they were never given.\n */\n ClientMode = 'client_mode',\n CRM = 'crm',\n Docs = 'docs',\n /**\n * The app may send email on behalf of this tenant's users, e.g. sharing a vehicle: the\n * sender is the requesting user's own address, so the tenant's email domain must be one we\n * can deliver from. Absent on client tenants — we do not send mail as outsiders.\n */\n EmailShare = 'email_share',\n /**\n * The tenant's users can sign in with Google. It is a tenant fact rather than a user one:\n * `googleEmail` is only filled when the Google address differs from the BisonDesk one, and\n * every pool carries the Google provider regardless, so neither can tell who actually uses it.\n * Absent means password-only, which is what routes those users an emailed invite with a\n * genuine temporary password.\n */\n GoogleLogin = 'google_login',\n Leads = 'leads',\n Leasing = 'leasing',\n LeasingContractGeneration = 'leasing_contract_generation',\n Marketing = 'marketing',\n Insights = 'insights',\n /**\n * The tenant has agreed to exchange deal data through BisonDesk automatically, on top of the\n * bare vehicle distribution: it may be named as the buyer on an intercompany sale, which lets\n * the invoice sync and the purchase reconciliation write a purchase onto its copy. Read on the\n * BUYER only. All group tenants have it today; a supplier or client tenant that wants deal\n * data pushed too joins the exchange by being granted it.\n */\n Intercompany = 'intercompany',\n Opportunities = 'opportunities',\n Offers = 'offers',\n Vehicles = 'vehicles',\n Tasks = 'tasks',\n TrackAndTrace = 'track_and_trace',\n Bootstrap = 'bootstrap',\n WhatsappNotifications = 'whatsapp_notifications',\n Hexon = 'hexon',\n DeliveryConfirmation = 'delivery_confirmation',\n Transport = 'transport',\n Reports = 'reports',\n Prospects = 'prospects',\n}\n\n/** Report tabs a tenant can enable, in canonical order. */\nexport const REPORT_TAB_KEYS = ['sales', 'leasing', 'purchases'] as const;\n\nexport type ReportTabKey = (typeof REPORT_TAB_KEYS)[number];\n\nexport type Tenant = PublicTenant & {\n cognito?: CognitoInfo;\n languages: [string, ...string[]];\n conglomerate?: string;\n emailDomain: string;\n hyperdmsIds?: string[];\n hyperportalId?: string;\n\n /* deprecated */\n exactAccounting?: boolean;\n\n branches: [Branch, ...Branch[]];\n modules: TenantModule[];\n /**\n * Reports page configuration. `tabs` lists the visible tabs in display order;\n * absent or empty means no reports are configured for the tenant (the page\n * shows a notice instead of tabs).\n */\n reports?: {\n tabs: ReportTabKey[];\n };\n test?: boolean;\n opportunities: {\n types: OpportunityType[];\n };\n /**\n * Reservation expiry for this tenant's OWN vehicles (ADR-0026): the truck's owner sets the\n * clock, wherever the deal runs — for a cross-tenant copy the chain origin's policy\n * applies, whatever opportunity type the tenant selling to the end customer uses.\n * Absent = the default\n * business-day tiers; the tier is still picked by the local customer org's\n * trustworthy/conglomerate flags.\n */\n reservationExpiry?: ReservationExpiryPolicy;\n crm?: {\n vatNumberRequiredForCompanies?: boolean;\n };\n accounting?: {\n costCenterPerLine?: boolean;\n };\n // E.164 Twilio caller ID used as a fallback when a user has no own number configured\n defaultTwilioPhoneNumber?: string;\n deliveryEmail?: string;\n};\n\nexport type ReservationExpiryPolicy =\n | { policy: 'disabled' }\n | { policy: 'days'; generic: number; trustworthy: number; conglomerate: number };\n\nexport type AccountingProvider = 'exact' | 'odoo';\n\nexport type Branch = {\n id: string;\n name: string;\n country: string;\n language: string;\n /* deprecated — use `accounting === 'exact'` instead. Kept until prod cutover. */\n exactAccounting?: boolean;\n accounting?: AccountingProvider;\n currency: string;\n adminNumberPrefix: string;\n stockNumberPrefix: string;\n vatNumber: string;\n contactPerson?: { firstName: string; lastName: string };\n vatRates: {\n standard: string; //percentage value (e.g. 21)\n };\n location: LocationValue;\n\n storecoveExternalId?: number;\n // true if the branch is for a company where VAT is due when the invoice\n // is issued not when the payment is collected (e.g. France, Italy, Spain)\n vatOnDebits?: boolean;\n /**\n * The French issuing duties — e-invoicing, e-reporting and the Encaissée status — are switched\n * on for this branch. Receiving is unaffected and always active.\n *\n * Kept separate from `storecoveExternalId` on purpose: registering a Storecove legal entity only\n * makes a branch reachable, it does not mean the French duties have started. As a PME those\n * duties begin 2027-09-01, so this stays off until then or until a deliberate earlier adoption.\n */\n frIssuingEnabled?: boolean;\n externalQuote?: boolean;\n hyperdmsId?: string;\n internalDealsEnabled?: boolean;\n /** The source invoices the end customer directly; this branch collects payment and earns\n * commission. Intercompany source opportunities for this branch's deals take the buyer\n * deal's own client instead of the branch counterparty org. */\n dropshipping?: boolean;\n};\n\nexport type HdmsVehiclesSync = {\n active: boolean;\n};\n\nexport type HdmsCrmSync = {\n active: boolean;\n};\n\nexport type HdmsDocumentSync = {\n active: boolean;\n};\n\nexport type TenantSyncSettings = {\n tenantId: string;\n hdmsVehicles: HdmsVehiclesSync | undefined;\n hdmsCrm: HdmsCrmSync | undefined;\n hdmsDocuments: HdmsDocumentSync | undefined;\n};\n\nexport type WhatsappStateResponse = {\n enabled: boolean;\n};\n\n/**\n * What the login page is told about a tenant before anyone has signed in. Reached by subdomain\n * on the one public tenant endpoint, so it carries only what an anonymous visitor may see —\n * mind that when adding to it.\n *\n * The two booleans are answers the page cannot work out for itself: it has no session, so no\n * modules to read. They say which sign-in options to offer and whether WhatsApp sharing is on.\n */\nexport type TenantInfoResponse = {\n tenant: PublicTenant;\n whatsapp: boolean;\n googleLogin: boolean;\n cognito: CognitoInfo;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-performance.d.ts","sourceRoot":"/","sources":["types/user-performance.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,oBAAY,iBAAiB;IAC3B,uBAAuB,4BAA4B;IACnD,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;CACxC;AAED,oBAAY,cAAc;IACxB,IAAI,cAAc;IAClB,YAAY,sBAAsB;IAClC,OAAO,iBAAiB;CACzB;AAED,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,MAAM,CAAC;AAGnD,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC;IAClC,
|
|
1
|
+
{"version":3,"file":"user-performance.d.ts","sourceRoot":"/","sources":["types/user-performance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-performance.js","sourceRoot":"/","sources":["types/user-performance.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,wEAAmD,CAAA;IACnD,0DAAqC,CAAA;IACrC,4DAAuC,CAAA;AACzC,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAED,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,oCAAkB,CAAA;IAClB,oDAAkC,CAAA;IAClC,0CAAwB,CAAA;AAC1B,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;
|
|
1
|
+
{"version":3,"file":"user-performance.js","sourceRoot":"/","sources":["types/user-performance.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,wEAAmD,CAAA;IACnD,0DAAqC,CAAA;IACrC,4DAAuC,CAAA;AACzC,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAED,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,oCAAkB,CAAA;IAClB,oDAAkC,CAAA;IAClC,0CAAwB,CAAA;AAC1B,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAyCD,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,8BAAW,CAAA;IACX,wCAAqB,CAAA;AACvB,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B","sourcesContent":["// The commission can be expressed either as a percentage (for profit-based metrics)\n// or as an amount per unit (for unit-based metrics).\nimport { AttachmentValue } from '@bisondesk/commons-sdk/types';\n\nexport enum CommissionSetting {\n INBOUND_USED_TEAM_USERS = 'inbound_used_team_users',\n TEAM_MEMBERSHIPS = 'team_memberships',\n LEASING_COMPANIES = 'leasing_companies',\n}\n\nexport enum CommissionTeam {\n USED = 'used_team',\n NEW_TRAILERS = 'new_trailers_team',\n LEASING = 'leasing_team',\n}\n\nexport type CommissionType = 'percentage' | 'unit';\n\n// Comprehensive metric configuration\nexport type MetricConfig = {\n id: string;\n commissionType: CommissionType;\n personal: boolean; // if true, this metric is personal to the user\n format?: Intl.NumberFormatOptions;\n defaultTarget?: number; // default target for the metric, useful for showing metrics to users w/o a commission plan\n autoHide?: boolean; // hide in UI when annual value is 0\n manualEntry?: boolean; // if true, data comes from manually added entries instead of vehicle_business_overviews\n settings?: CommissionSetting[]; // commission settings this metric depends on\n};\n\n// A tier defines a range of performance (using lower and optional upper bounds)\n// along with the associated commission rate. For example, 0–100 units, then 100–400 units, etc.\nexport type CommissionTier = {\n lowerBound: number; // inclusive\n upperBound?: number; // inclusive (omit for the last tier)\n commissionRate: number;\n default?: boolean; // if true, this tier's upper bound is used as reference for dashboards visualizations\n};\n\n// Each target (metric) has one or more tiers.\n// For example, for UnitsSold you might have three tiers corresponding to bare minimum, normal, and above average.\nexport type TargetCommission = {\n metricId: string;\n tiers: CommissionTier[];\n autoHide?: boolean; // overrides MetricConfig.autoHide for this user\n};\n\nexport type UserCommissionPlan = {\n userId: string;\n year: number;\n startDate?: string; // in case the commission plan is only valid from this date onwards, not the whole year\n targets: TargetCommission[];\n showCommissionToUser?: boolean; // if true, the user can see their own commission amounts\n};\n\nexport enum CommissionGrade {\n TooLow = 'tooLow',\n Low = 'low',\n OnTarget = 'onTarget',\n}\n\nexport type UserCommissionStatus = {\n userId: string;\n createdAt: string; // iso date string\n year: number;\n performance: {\n [metricId: string]: {\n value: string; // actual metric achieved\n estimated?: string; // estimated commission for the metric, based on the current trend\n grade?: CommissionGrade; // grade for the metric\n target?: string; // the upper bound of the default tier\n };\n };\n commission?: {\n total: string;\n potential?: string;\n estimated?: string; // estimated commission for the year, based on the current trend\n grade?: CommissionGrade;\n detailed?: {\n [metricId: string]: {\n earned: string; // commission amount for each target\n potential?: string; // potential commission for the metric, based on the actual metric achieved and the commission tiers\n };\n };\n };\n payments?: {\n total: string;\n yearly?: {\n // details for each year for which the outstanding commission is > 0\n [year: number]: {\n paid: string;\n };\n };\n };\n outstanding?: {\n total: string;\n // details for each year for which the outstanding commission is > 0\n yearly?: {\n [year: number]: {\n outstanding: string;\n };\n };\n };\n};\n\nexport type NewUserCommissionPayment = {\n userId: string; // who was the payment made to\n paidBy: string;\n paidAt: string;\n amount: string;\n comments?: string; // optional comment\n};\n\nexport type UserCommissionPayment = {\n id: string;\n} & NewUserCommissionPayment;\n\nexport type UserCommissionsPaymentRequest = {\n limit?: number;\n nextToken?: string;\n};\n\nexport type UserCommissionInfo = {\n manager?: boolean;\n canViewCommission?: boolean;\n performance: boolean;\n planYears: number[];\n};\n\nexport type UserCommissionListInfo = {\n users: { userId: string }[];\n};\n\nexport type MonthlyPerformanceData = {\n month: number; // 1-12\n metrics: Record<string, number>;\n};\n\nexport type PerformanceVehicle = {\n stockNumber: string;\n profit?: string;\n vehicleId: string;\n title: string;\n year: number;\n km?: number;\n configuration: string;\n euronorm?: string;\n mainPicture?: AttachmentValue;\n saleAt?: string;\n sellerId?: string;\n purchaseAt?: string;\n purchaserId?: string;\n customerName?: string;\n};\n\nexport type PerformanceVehiclesRequest = {\n userId: string;\n targetId: string;\n year?: number;\n offset?: number;\n limit?: number;\n month?: number;\n};\n\nexport type NewManualPerformanceEntry = {\n userId: string;\n metricId: string;\n reference: string;\n year: number;\n};\n\nexport type ManualPerformanceEntry = {\n id: string;\n createdBy: string;\n createdAt: string;\n} & NewManualPerformanceEntry;\n"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { WhatsappActivityTemplateName, WhatsappTemplateTranslation } from '@bisondesk/commons-sdk/notifications-whatsapp';
|
|
2
|
+
import { BusinessEntityIds } from '../constants.js';
|
|
3
|
+
import { Activity } from './activities.js';
|
|
4
|
+
import { DataRecord } from './utils.js';
|
|
5
|
+
export type { WhatsappActivityTemplateName };
|
|
6
|
+
export type WhatsappTemplateLanguage = {
|
|
7
|
+
language: string;
|
|
8
|
+
status: string;
|
|
9
|
+
};
|
|
10
|
+
export type WhatsappTemplateSummary = {
|
|
11
|
+
name: WhatsappActivityTemplateName;
|
|
12
|
+
languages: WhatsappTemplateLanguage[];
|
|
13
|
+
};
|
|
14
|
+
export type WhatsappActivityTemplateTranslation = WhatsappTemplateTranslation<WhatsappActivityTemplateName>;
|
|
15
|
+
export type WhatsappTemplatePreview = {
|
|
16
|
+
sent: WhatsappActivityTemplateTranslation;
|
|
17
|
+
canonical?: WhatsappActivityTemplateTranslation;
|
|
18
|
+
};
|
|
19
|
+
export type WhatsappRecipient = {
|
|
20
|
+
contactId?: string;
|
|
21
|
+
organizationId?: string;
|
|
22
|
+
phone: string;
|
|
23
|
+
countryLanguage?: string;
|
|
24
|
+
};
|
|
25
|
+
export type WhatsappActivityContext = {
|
|
26
|
+
businessEntityId: BusinessEntityIds;
|
|
27
|
+
recordId: string;
|
|
28
|
+
organizationId?: string;
|
|
29
|
+
};
|
|
30
|
+
export type SendWhatsappActivityTemplateRequest = {
|
|
31
|
+
templateName: WhatsappActivityTemplateName;
|
|
32
|
+
language: string;
|
|
33
|
+
recipient: Pick<WhatsappRecipient, 'contactId' | 'phone'>;
|
|
34
|
+
context: WhatsappActivityContext;
|
|
35
|
+
};
|
|
36
|
+
export type SendWhatsappActivityTemplateResponse = DataRecord<Activity>;
|
|
37
|
+
//# sourceMappingURL=whatsapp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whatsapp.d.ts","sourceRoot":"/","sources":["types/whatsapp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC5B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,YAAY,EAAE,4BAA4B,EAAE,CAAC;AAE7C,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,4BAA4B,CAAC;IACnC,SAAS,EAAE,wBAAwB,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAC7C,2BAA2B,CAAC,4BAA4B,CAAC,CAAC;AAE5D,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,mCAAmC,CAAC;IAC1C,SAAS,CAAC,EAAE,mCAAmC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAChD,YAAY,EAAE,4BAA4B,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC;IAC1D,OAAO,EAAE,uBAAuB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC"}
|