import { apiRequest } from "@/lib/api/core-http" import type { Facility, FacilityAvailability, FacilityInput, FacilitySession, FacilitySessionInput, } from "@/lib/models/facility" function getFacilities(includeInactive = true) { return apiRequest("client/facilities", { query: { includeInactive } }) } function createFacility(input: FacilityInput) { return apiRequest("client/facilities", { method: "POST", body: input }) } function updateFacility(id: string, input: Partial) { return apiRequest(`client/facilities/${id}`, { method: "PUT", body: input }) } function setFacilityStatus(id: string, isActive: boolean) { return apiRequest(`client/facilities/${id}/status`, { method: "PATCH", body: { isActive }, }) } /** Absorbed from the old PlaceService.AssignDevice — null unassigns the facility's current device. */ function assignFacilityDevice(id: string, deviceId: string | null) { return apiRequest(`client/facilities/${id}/device`, { method: "PUT", body: { deviceId }, }) } function getFacilitySessions(params: { facilityId?: string; fromDate?: string; toDate?: string } = {}) { return apiRequest("client/facilities/sessions", { query: params }) } function createFacilitySession(input: FacilitySessionInput) { return apiRequest("client/facilities/sessions", { method: "POST", body: input }) } function cancelFacilitySession(id: string) { return apiRequest(`client/facilities/sessions/${id}`, { method: "DELETE" }) } function getFacilityAvailability(params: { facilityId?: string; startTime: string; durationMinutes: number }) { return apiRequest("client/facilities/availability", { query: params }) } export { getFacilities, createFacility, updateFacility, setFacilityStatus, assignFacilityDevice, getFacilitySessions, createFacilitySession, cancelFacilitySession, getFacilityAvailability, }