This commit is contained in:
2026-03-14 18:46:06 -05:00
parent f1fd2ed979
commit c0cc546e33
15 changed files with 979 additions and 27 deletions

View File

@@ -9,8 +9,11 @@ import type {
LoginResponse,
} from "@mrp/shared";
import type {
CrmContactDto,
CrmContactInput,
CrmContactEntryDto,
CrmContactEntryInput,
CrmCustomerHierarchyOptionDto,
CrmRecordDetailDto,
CrmRecordInput,
CrmRecordStatus,
@@ -132,6 +135,15 @@ export const api = {
getCustomer(token: string, customerId: string) {
return request<CrmRecordDetailDto>(`/api/v1/crm/customers/${customerId}`, undefined, token);
},
getCustomerHierarchyOptions(token: string, excludeCustomerId?: string) {
return request<CrmCustomerHierarchyOptionDto[]>(
`/api/v1/crm/customers/hierarchy-options${buildQueryString({
excludeCustomerId,
})}`,
undefined,
token
);
},
createCustomer(token: string, payload: CrmRecordInput) {
return request<CrmRecordDetailDto>(
"/api/v1/crm/customers",
@@ -162,6 +174,16 @@ export const api = {
token
);
},
createCustomerContact(token: string, customerId: string, payload: CrmContactInput) {
return request<CrmContactDto>(
`/api/v1/crm/customers/${customerId}/contacts`,
{
method: "POST",
body: JSON.stringify(payload),
},
token
);
},
getVendors(token: string, filters?: { q?: string; status?: CrmRecordStatus; state?: string }) {
return request<CrmRecordSummaryDto[]>(
`/api/v1/crm/vendors${buildQueryString({
@@ -206,6 +228,16 @@ export const api = {
token
);
},
createVendorContact(token: string, vendorId: string, payload: CrmContactInput) {
return request<CrmContactDto>(
`/api/v1/crm/vendors/${vendorId}/contacts`,
{
method: "POST",
body: JSON.stringify(payload),
},
token
);
},
getGanttDemo(token: string) {
return request<{ tasks: GanttTaskDto[]; links: GanttLinkDto[] }>("/api/v1/gantt/demo", undefined, token);
},