import { request } from "@/lib/api/client" import type { ContactType } from "@/lib/generated/enums" export type AdminCustomerContact = { id: number customerId: number contactType: ContactType | string contactValue: string isPrimary: boolean isVerified: boolean verifiedAt?: string source: string status: number remark: string createdAt: string updatedAt: string } export type CreateCustomerContactPayload = { customerId: number contactType: ContactType | string contactValue: string isPrimary: boolean isVerified: boolean source: string status: number remark: string } export type UpdateCustomerContactPayload = Omit< CreateCustomerContactPayload, "customerId" > & { id: number } function toQueryString(query?: Record) { if (!query) { return "" } const params = new URLSearchParams() Object.entries(query).forEach(([key, value]) => { if (value === undefined || value === "") { return } params.set(key, String(value)) }) const output = params.toString() return output ? `?${output}` : "" } export function fetchCustomerContacts(customerId: number) { return request( `/api/dashboard/customer-contact/list${toQueryString({ customerId })}` ) } export function createCustomerContact(payload: CreateCustomerContactPayload) { return request("/api/dashboard/customer-contact/create", { method: "POST", body: JSON.stringify(payload), }) } export function updateCustomerContact(payload: UpdateCustomerContactPayload) { return request("/api/dashboard/customer-contact/update", { method: "POST", body: JSON.stringify(payload), }) } export function deleteCustomerContact(id: number) { return request("/api/dashboard/customer-contact/delete", { method: "POST", body: JSON.stringify({ id }), }) }