Files
Client_Fe/src/lib/api/facilities.ts
T
HarithaRandunu 23ae7b39d0 refactor: replace PlacesView with FacilitiesView in MembershipsView and remove PlacesView component
feat: add RfidTagsTab component for managing RFID tags

refactor: update auth API endpoints to use unified auth endpoint

feat: enhance bookings API with AdHoc booking functionality and new booking management features

refactor: update facilities API to include device assignment and availability checks

delete: remove obsolete places API and model definitions

feat: introduce RFID tag management API and model definitions
2026-09-29 13:02:16 +05:30

64 lines
2.0 KiB
TypeScript

import { apiRequest } from "@/lib/api/core-http"
import type {
Facility,
FacilityAvailability,
FacilityInput,
FacilitySession,
FacilitySessionInput,
} from "@/lib/models/facility"
function getFacilities(includeInactive = true) {
return apiRequest<Facility[]>("client/facilities", { query: { includeInactive } })
}
function createFacility(input: FacilityInput) {
return apiRequest<Facility>("client/facilities", { method: "POST", body: input })
}
function updateFacility(id: string, input: Partial<FacilityInput>) {
return apiRequest<Facility>(`client/facilities/${id}`, { method: "PUT", body: input })
}
function setFacilityStatus(id: string, isActive: boolean) {
return apiRequest<Facility>(`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<Facility>(`client/facilities/${id}/device`, {
method: "PUT",
body: { deviceId },
})
}
function getFacilitySessions(params: { facilityId?: string; fromDate?: string; toDate?: string } = {}) {
return apiRequest<FacilitySession[]>("client/facilities/sessions", { query: params })
}
function createFacilitySession(input: FacilitySessionInput) {
return apiRequest<FacilitySession>("client/facilities/sessions", { method: "POST", body: input })
}
function cancelFacilitySession(id: string) {
return apiRequest<unknown>(`client/facilities/sessions/${id}`, { method: "DELETE" })
}
function getFacilityAvailability(params: { facilityId?: string; startTime: string; durationMinutes: number }) {
return apiRequest<FacilityAvailability[]>("client/facilities/availability", { query: params })
}
export {
getFacilities,
createFacility,
updateFacility,
setFacilityStatus,
assignFacilityDevice,
getFacilitySessions,
createFacilitySession,
cancelFacilitySession,
getFacilityAvailability,
}