23ae7b39d0
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
64 lines
2.0 KiB
TypeScript
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,
|
|
}
|