import type { AccountLocationDto, LocationGetListQuery, LocationUpsertInput, } from './account-types'; import type { FlPagedResult } from './types'; import { requestClient } from '#/api/request'; const PATH = '/location'; function trimOrNullHours(v: string | null | undefined): string | null { const t = (v ?? '').trim(); return t || null; } function buildLocationBody(input: LocationUpsertInput) { return { partner: input.partner, groupName: input.groupName, locationCode: input.locationCode, locationName: input.locationName, street: input.street, city: input.city, stateCode: input.stateCode, country: input.country, zipCode: input.zipCode, phone: input.phone, email: input.email, latitude: input.latitude, longitude: input.longitude, state: input.state ?? true, operatingHours: trimOrNullHours(input.operatingHours ?? undefined), }; } export function locationCrudList(params?: LocationGetListQuery) { return requestClient.get>(PATH, { params, errorMessageMode: 'message', }); } export function locationCrudInfo(id: string) { return requestClient.get( `${PATH}/${encodeURIComponent(id)}`, { errorMessageMode: 'message' }, ); } export function locationCrudAdd(data: LocationUpsertInput) { return requestClient.postWithMsg( PATH, buildLocationBody(data), ); } export function locationCrudUpdate(id: string, data: LocationUpsertInput) { return requestClient.putWithMsg( `${PATH}/${encodeURIComponent(id)}`, buildLocationBody(data), ); } export function locationCrudRemove(id: string) { return requestClient.deleteWithMsg( `${PATH}/${encodeURIComponent(id)}`, ); }