import { request } from "./client"; import type { MapObject, MapObjectCreate, MapObjectUpdate, ObjectMedia } from "../types/object"; export function fetchObjects(): Promise { return request("/objects"); } export function fetchObject(id: number): Promise { return request(`/objects/${id}`); } export function createObject(payload: MapObjectCreate): Promise { return request("/objects", { method: "POST", body: JSON.stringify(payload), }); } export function updateObject(id: number, payload: MapObjectUpdate): Promise { return request(`/objects/${id}`, { method: "PATCH", body: JSON.stringify(payload), }); } export function deleteObject(id: number): Promise { return request(`/objects/${id}`, { method: "DELETE", }); } export function fetchObjectMedia(objectId: number): Promise { return request(`/objects/${objectId}/media`); } export function uploadObjectMedia(objectId: number, file: File): Promise { const form = new FormData(); form.append("file", file); return request(`/objects/${objectId}/media`, { method: "POST", body: form, }); } export function deleteObjectMedia(mediaId: number): Promise { return request(`/media/${mediaId}`, { method: "DELETE", }); } export function formatFileSize(bytes: number): string { if (bytes < 1024) return `${bytes} Б`; if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} КБ`; return `${(bytes / (1024 * 1024)).toFixed(1)} МБ`; }